드디어 앵그리박스 프론트 작업이 막바지에 이르렀다. ㅜㅜ
프론트 팀원분이 계속 개인 사정이 생기셔서 상당히 오래 기다렸지만.. 결국 책임감을 갖고 작업해주셔서 감사하게 생각하고 있다.

프론트 작업이 80% 정도 완료 되어서 백엔드 쪽에서도 기능 확인을 위해 한 번 전체적인 체크를 하려고 사이트에 접속해서 이것 저것 해보았다. 근데 하다보니 사이트가 뭘 할 때마다 로딩 속도가 상당히 느렸다. 아니 굉장히 느렸다.... 왜 이러지? 하고 프론트 쪽이랑 같이 얘기해보니까 아마도 API 서버가 응답 속도가 오래 걸리는 것 같다고 결론이 났다. API 에 요청을 보내지 않는 화면은 굉장히 빠르게 로딩이 끝났기 때문이다.

그렇다면... API 응답 속도를 향상 시켜야지!
다른 백엔드 팀원과 둘이서 머리를 맞대고 생각해보았고 원인은 아마 아래의 이유로 추정되었다.

AWS 리전이 캘리포니아에 있어서 물리적으로 거리가 머니까 응답 속도가 느린 것 같다!
→ 그렇다면 서울 리전으로 옮기자!

한국에 살면서 멀쩡한 서울 리전 냅두고 왜 캘리포니아에 만들었냐고 물어본다면...
사실 AWS에 모든 셋팅을 끝내고 나서 서울 리전이 아니라 캘리포니아 리전이라는 것을 알아버렸고 그 당시에는 다시 셋팅할 필요까지는 없다고 생각하고 넘어 갔었다. 하하... 실수였다...

리전 이동 과정을 간략히 정리하면 아래와 같다.

  1. 캘리포니아에 있는 ec2의 이미지 생성
  2. 서울 리전에서 이미지를 사용하여 인스턴스 생성
  3. Route53에서 기존에 설정되어 있던 A, CNAME 레코드 삭제
  4. AWS Certificate Manager에서 SSL 인증서 발급 (발급 요청 후 CNAME을 복사하여 Route53에 CNAME 새로 생성)
  5. 로드밸런서 생성 (타겟 그룹도 같이 생성하고 인스턴스 연결)
  6. Route53에서 A레코드 추가하여 로드밸런서와 연결 (별칭 on 해야 해당 옵션 선택 가능)
  7. 로드밸런서에 타겟 그룹 연결
  8. 그 외 설정은 기존의 ec2에 되어있었고 이미지로 복사해왔기 때문에 바로 완료~~!

리전을 옮긴다 쳐도 얼마나 개선되었는지 수치로 확인하고 싶었기에 Jmeter를 사용하여 간략하게 성능 테스트를 함께 진행 했다.

프로필 조회 리전 이동 후

프로필 조회 리전 이동 전


솔직히 테스트툴 안쓰고 사이트에만 접속해봐도 바로 체감이 느껴질 정도로 차이가 나게 좋아졌다.

사이트만 보면 더 이상 손을 쓰지 않아도 될 정도로 좋아지긴 했지만..
공부 차원에서 다음에는 DB 쿼리를 살펴보고 더 최적화해서 응답 속도를 더 향상 시킬 수 있는지 확인해볼 예정이다.






+ Recent posts