AWS SSL 인증서 발급 및 LoadBalancer로 Https 적용하기
SSL 인증서 발급
1. AWS에 접속하여 ACM을 검색하여 들어갑니다.
2. 인증서 요청을 클릭한 뒤 퍼블릭 인증서 요청에 체크 후 다음 버튼을 누릅니다.
3. 도메인 이름에 구입한 도메인 이름을 작성합니다. 기본적으로 '도메인 이름.com' , 'www.도메인 이름.com'과 같이 설정할 수 있으며, *.도메인 이름.com과 같이 서브 도메인까지 모두 포함할 수 있습니다. 아래와 같이 기본 설정된 대로 두고 요청 버튼을 클릭합니다.
4. 다음과 같이 몇분 뒤 상태가 '발급됨'으로 변경되면 완료입니다.
LoadBalancer 만들기
1. EC2에 들어가서 '로드 밸런서' - '로드 밸런서 생성' 버튼을 클릭합니다.
2. 좌측의 '어플리케이션 로드 밸런서' 생성 버튼을 클릭합니다.
3. 로드 밸런서 이름을 설정하고, 체계에 '인터넷 연결', IP 주소 유형에 'IPv4'를 체크합니다.
4. VPC는 디폴트 값으로 두고, 로드 밸런스가 활성화될 서브넷 영역을 전부 체크해줍니다.
5. 보안 그룹을 설정해줍니다. 보안 그룹에서 반드시 80포트와 443포트를 열어줍니다.
6. 리스너와 라우팅 설정 부분에서 HTTP 80포트와 HTTPS 443포트를 모두 열어줍니다. 아래 인증 정책은 디폴트 값을 사용하면되고, 인증서 유형은 ACM에서, 이름은 아까 만들어 둔 인증서를 선택합니다. 이후 타겟 그룹 생성 버튼을 클릭합니다.
7. 아래와 같이 타겟 그룹 설정 페이지에서 인스턴스 타입을 체크해주고 타겟 그룹 이름을 작성합니다. 그리고 아래 현재 EC2내에서 구동되고 있는 어플리케이션의 export port를 작성합니다. 스프링부트의 경우 기본이 HTTP 8080포트로 어플리케이션을 실행하고 있기 때문에 아래와 같이 작성하였습니다.
8. 방금 만든 그룹에 등록할 인스턴스를 선택하고 등록해준 뒤 타겟 그룹을 생성합니다.
9. 리스너와 라우팅 설정 부분으로 돌아와 우측의 새로고침 버튼 클릭후 방금 전 생성한 타겟 그룹을 선택합니다. 이후 맨 아래로 내려 '로드 밸런스 생성' 버튼을 클릭합니다.
HTTP 요청을 HTTPS로 리다이렉트 하기
1. 로드 밸런서 창에서 생성한 로드 밸런스를 클릭한 뒤 리스너에서 HTTP:80을 클릭합니다.
2. 우측 상단의 편집 버튼을 클릭합니다.
3. 기존의 포워딩은 삭제해줍니다.
4. HTTP 80포트로 들어오는 요청을 HTTPS 443포트로 리다이렉트하게 설정 후 저장합니다.
ROUTE53에서 로드밸런서 연결하기
1. 라우트53의 호스팅 영역에서 등록해둔 도메인을 클릭합니다.
2. 레코드 생성 버튼을 클릭합니다.
3. 단순 라우팅을 선택한 뒤 다음 버튼을 클릭합니다.
4. 단순 레코드를 정의합니다. 레코드 이름은 서브 도메인으로 라우팅할 수 있으며, 비워두면 기본 레코드 이름이 도메인 이름이 설정됩니다. 아래와 같이 설정하고 아까 만든 로드 밸런서를 선택합니다. 단순 레코드 정의 버튼을 클릭 후 레코드를 생성합니다.
작업은 모두 끝났으며 적용되는데 까지 약간의 시간이 소요됩니다.