마이의 개발 블로그

[AWS] Elastic Beanstalk 인스턴스 HTTP에서 HTTPS로 전환하기 본문

개발지식/Web

[AWS] Elastic Beanstalk 인스턴스 HTTP에서 HTTPS로 전환하기

개발자마이 2022. 12. 29. 14:45
반응형

배경

테스트를 위한 도메인 연결을 하던 중 HTTPS로의 전환이 필요하여 절차를 간단히 정리해보았다.

이미 Elastic Beanstalk(EB) 인스턴스 생성, 도메인 연결, SSL인증서 발급이 완료되었다는 가정 하에 내가 지정한 도메인으로 접속 시 HTTP를 HTTPS로 전환하기 위해 필요한 절차를 정리해보았다. application 로드밸런서를 기준으로 한다.

설정을 통해 만들고자 하는 전반적인 플로우

1. (HTTP 리스너를 통해) HTTP로 진입 

2. (HTTP 리스너에서 설정된 규칙을 통해) HTTPS로 리디렉션 

3. (HTTPS 리스너를 통해) HTTPS로 진입

4. (HTTPS 리스너에서 설정된 규칙을 통해) 리디렉션된 페이지에서 해당 인스턴스로 포워드

절차

Elastic Beanstalk

1. AWS -  Elastic Beanstalk 진입 

2. 좌측 환경 이름 - 구성(configuration) - 로드 밸런서 편집 메뉴 진입

3. 리스너 추가 (port: 443, protocol: https, SSL인증서 선택, SSL 정책 선택, process 지정)

4. 하단 프로세스 default는 그대로 놔둠. HTTPS로 전환 x (port: 80, protocol: HTTP)

5. 리스너 추가 완료 후 하단 주황색 적용버튼 클릭 후 작업 완료까지 대기

구성 - 로드밸런스 편집버튼 클릭
리스너 추가 버튼 클릭
리스너 정보 입력 후 저장

EC2 - 리스너 액션 추가

6. 작업 완료 후 AWS - EC2 진입

7. 좌측 메뉴 하단 로드밸런싱 - 로드밸런서 진입 - 테이블에서 앱에 해당하는 로드밸런서 클릭

8. 하단 리스너 탭에서 HTTP : 80, HTTPS : 443 추가여부 확인 (Elastic Beanstalk 로드밸런서에 등록한 항목과 일치해야함)

9. 로드밸런서 메뉴 - HTTP : 80 항목의 체크박스 클릭 - 편집 - Default actions 추가 - Redirect

10. Redirect 메뉴에서 Itemized URL 선택, HTTPS : 443 입력, 옵션값 Original host, path, query 선택, Status code 301 선택 후 저장

11. 로드밸런서 메뉴 - HTTP : 443 항목의 체크박스 클릭 - 편집 - Default actions 추가 - Forward to

12. 타겟 그룹에 해당 인스턴스가 포함된 HTTP 타겟 그룹 설정, SSL인증서 및 정책 일치여부 확인 (Elastic Beanstalk 인스턴스 로드밸런서 443포트 설정 내용과 일치해야 함)

AWS - EC2 - 로드밸런서 메뉴 진입 후 생성되어있는 리스너 편집

 

HTTP 리스너에 액션 추가 - Redirect

 

HTTP 리스너에 액션 추가 - Forward

EC2 - 타겟 그룹에 인스턴스 추가

13. 로드밸런서 메뉴 - HTTPS : 443 항목 우측의 규칙 컬럼 - (다음으로 전달 중:) 타겟그룹 클릭

14. 테이블에서 필터된 타겟 그룹명 클릭

15. 하단 Targets 탭 - Register targets 클릭 - 원하는 인스턴스 체크박스 클릭 후 Include as pending below 버튼 클릭 - 하단 우측 Register pending targets클릭 

16. 타겟그룹에 인스턴스 등록 완료 후 인증서와 연결된 도메인에서 HTTPS 적용 여부 확인

17. 작업 완료

 

HTTPS 리스너에서 포워드하는 타겟그룹 진입
타겟그룹 체크 후 타겟등록 버튼 클릭
포워드시 연결할 Elastic Beanstalk 인스턴스 등록

 

반응형
Comments