네트워크

API 서버 해외 서비스 배포하기(CDN, CloudFront API 서버 적용하는 법)

민초부 2023. 11. 15. 16:34
반응형

 

  • 배경은 https://sunup1992.tistory.com/77 에서 볼 수 있고 해당 글에 이어 구체적으로 어떻게 적용하고 세팅했는지 방법을 정리하였다.

 

  • 구조
    • 현재 구조는 EC2 - ELB - API gateway 로 되어있고 ELB까지 VPC로 막혀있음 
      • CloudFront 배포 시 ELB를 원본 설정을 하면 VPC가 있다하더라도 CloudFront 라우팅을 통해 Request를 받으면 될 것이라 생각해 계속 ELB로 연결한다고 꽤 오래 삽질을 했다. 
       
    • VPC로 막혀있으면 CloudFront 통해 연결하면 origin 닿는데 실패했다고 response가 계속 넘어온다. 그래서 CloudFront의 원본을 API Gateway로 설정하였음 
    • Route 53에서 해외 호출용 Domain을 따로 만들어 CloudFront 배포한 것과 연결하였다. 

 

  • 배포 하는 법
    1. 원본은 API Gateway로 해준다. 파란 칸 자리에 검색하면 밑에 카테고리 (S3, ELB, Gateway)별로 나옴
      • ELB가 VPC로 감싸져있지 않다면 API Gateway가 아닌 ELB를 원본 도메인으로 둬도 문제가 없다.
      • 프로토콜은 API Gateway가 HTTPS만 받기에 저렇게 설정해주면 된다.
    2. 캐시 동작 설정
      • 프론트가 CloudFront를 사용하는 것과 다르게 API Server는 다양한 Method를 받아야하기에 HTTP 방법은 전부 풀어준다.
      • 캐시 정책은 API Gateway를 사용하면서 Header에 토큰 정보와 GET 호출할 때의 쿼리 문자열 전부 가져와서 API Gateway에 그대로 라우팅 해줘야하기 때문에 별도 정책을 내가 만들어서 설정하였다. (가려진게 내가 만든 정책)
    3. 캐시 정책 설정하기
      • Token 전달을 위해 헤더에 다음 값을 넣었고 쿼리 문자열은 모두 전달하도록 설정해서 정책을 만들었다.
       
    4. 나머지 설정하고 배포하면 끝! 
      • 일단 중동에만 서비스를 제공할 예정이기에 가격 분류는 저렇게 하였다
      • 대체 도매인은 Route53에서 내가 만든 도메인을 넣고 거기에 맞는 인증서를 아래 선택하면 된다.

이렇게 최종 배포하고 Route53 도메인으로 API를 호출하면 정상적으로 API가 호출되는 것을 확인했다. 
이번주 회사 사람들이 카타르로 넘어가서 속도 테스트만 해준다면 문제가 없을 듯 합니다 제발 

반응형

'네트워크' 카테고리의 다른 글

쿠버네티스, 도커, 컨테이너 개념 정리  (0) 2024.08.17
API 서버 해외에도 적용하기 (시작)  (1) 2023.11.02
IP 관련 기술  (0) 2020.10.19