AWS
AWS, Elastic Beanstalk에서 cloudFront이용한 https통신
코린F&F프티
2024. 8. 23. 10:36
2024.01.05 - [AWS] - Elastic Beanstalk에 SpringBoot배포하기
2024.08.20 - [AWS] - ACM ssl 도메인 인증서 발급
2024.01.04 - [AWS] - CloudFront와 S3연결하는 법
일단 백엔드를 EB에 배포하고 프론트를 cloudFront로 배포를 한 상태이며,
ssl인증서를 cloudFront와 연결하였을때 이야기이다.
백엔드와 cloudFront와 연결해주고 cloudFront 도메인 + api를 호출해준다면
https로 호출하고 cloudFront에서 백엔드로 http로 자동으로 넘겨주어 백엔드는 아무것도 구성하지 않아도 https통신이 가능케 해준다.
또한 CloudFront를 통해 API 요청을 프록시하면 API 응답도 캐싱할 수 있어 성능 향상에 도움을 준다.
1. cloudFront에 들어가 원본을 하나 더 만들어 백엔드와 연결시켜준다.
- 백엔드를 배포했던 elastic beanstalk의 도메인을 연결해주고 http만 해당 프로토콜을 선택해준다.
- 이후 헤더추가를 눌러 cors관련 헤더를 설정해준 후 원본을 생성해준다.
2. 동작을 생성하여 cloudFront호출시 /api/* 로 끝나는 호출은 백엔드로 넘겨준다
- 경로 패턴을 /api/*로 설정하고 원본 및 원본 그룹에 자신의 elastic beanstalk의 도메인을 입력해준다
- 무효화 생성을 해주면 빠르게 적용이 된다.
이렇게 했는데 안된다면 백엔드와 연결되어 있는 보안정책의 인바인딩 규칙을 확인하고 필요한 포트를 열어주어 통신이 가능한 상태인지 확인해보도록 하자.
- cors문제가 나타난다면 백엔드의 cors구성을 확인해보자
- 403 forbidden이 나타난다면 S3의 버킷 정책을 확인해보도록 하자(프론트 배포시 나타난 문제)
- net::ERR_CONNECTION_REFUSED이 나타난다면 높은 확률로 원본 및 동작 생성에서 나타난 문제이니 확인해보자
그래도 안될시엔 cloudFront에 대한 유튜브인 https://youtu.be/Z3lxE9rUsZo?t=373 이분 강의를 보며 적용해보자 이 강의가 제일 자세하고 쉽게 정리한것 같다.
※ 결과
- 아래와 같이 http로 api를 호출하던 elasticBeanstalk가 cloudFront를 통해 https로 통신이 가능해진다!
- cloudFront로 호출한 결과