EC2에 HTTPS 적용하는 과정
- 도메인 구매 (가비아)
- Route53에 도메인 등록하기
- ACM(AWS Certificate Manager)에서 SSL/TLS 인증서 발급받기
- 로드 밸런서 설정 - EC2 인스턴스 앞에 ALB 배치 후 ALB에 인증서 설치
추가 작업
- EC2와 ALB 보안 그룹 설정
- DNS 업데이트
1. 도메인 구매 (가비아)
인증서 적용하기 위해 실제 도메인 구매
도메인을 구입할 때 'www'가 붙지 않은 기본 도메인(예:
example.com)을 구입하면 된다. 이렇게 하면 해당 도메인의 서브도메인(예:www.example.com,api.example.com등)을 자유롭게 설정하여 사용할 수 있다.
- 가비아 접속 https://www.gabia.com/
- 소유자 정보 입력, 인증 후 - 기본 설정 그대로 함.

2. Route53
: DNS 서비스. 도메인을 구매하고 호스팅 영역을 생성 및 NS네임서버 구축하여 DNS에 요청할 수 있다.
2-1. Route53 호스트 영역 생성
- Route53 - 호스팅 영역 - 호스팅 영역 생성

- 구매한 도메인 입력 후 - 호스팅 영역 생성

- NS 유형 값 4개가 생성되는데 이를 복사해 가비아 네임서버에 설정해야한다

2-2. 가비아 네임서버(NS) 설정
My 가비아 - 이용중인 서비스에서 도메인 클릭 - 해당 도메인의 관리 클릭
- 네임서버 설정 클릭

- Route53에서 방금 생성된 NS유형 4개를 복사해서 1,2,3,4차에 작성하기
- 붙여넣기할 때 마지막 점
.은 제외하고 작성하기
- 붙여넣기할 때 마지막 점
소유자 인증후적용클릭하면 끝
3. ACM(AWS Certificate Manager) 인증서 요청하기
3-1. 서울 리전 선택 - 인증서 요청
이번엔 로드밸런서로 사용할 것이기 때문에 리전 서울로 선택하기

3-2. 인증서 유형 - 기본 선택 그대로

3-3. 도메인 이름
도메인추가*.도메인추가

-
이하 기본설정 그대로 두고 - 요청
-
인증서 ID 클릭

-
Route53에서 레코드 생성 -> 레코드 생성 클릭

4. EC2 보안그룹 추가
- EC2 인스턴스 - 보안탭 - 보안그룹 클릭 - 인바운드 규칙 편집
- HTTPS 유형, 443 포트, Anywhere-IPv4 추가하기
- TCP 유형, 80 포트(서버 포트번호) -> 는 이전에 지정해뒀었음

5. 로드 밸런서 설정
Load Balancer : 요청을 여러 서버로 분산하는 서비스
5-1. 대상 그룹(Target Group) 생성
- EC2 좌측 메뉴 하단 - 로드 밸런싱 - 대상 그룹 - 대상 그룹 생성

- 대상 유형 - 인스턴스

- 대상 그룹 이름 - 이름 입력 후
- 프로토콜 - 서버 포트번호 8000 사용한다면 80말고
8000입력하기! - Health checks 정상 동작하는 지 테스트하는 것으로, 프로토콜 선택하고 path는 실제 서비스에서 응답 보내는 api를 작성하면 됨
- 이하 밑 옵션은 기본 설정 그대로 두고 다음 클릭

- 인스턴스 ID 체크 - 아래에 보류 중인 것으로 포함 클릭 - 대상 그룹 생성

5-2. 로드 밸런서 생성
- EC2 왼쪽 메뉴 탭 - 로드 밸런싱 - 로드밸런서 - 로드밸런서 생성

1. 기본구성
- 로드 밸런서 이름 작성

2. 네트워크 매핑 : 최소 2개 선택해야 함
- 인스턴스 네트워킹 탭 - 가용 영역에서 마지막 부분 확인 후 해당되는 영역으로 추가
~2a랑~2c체크함
3. 보안그룹
- ec2 인스턴스와 같은 보안그룹으로 선택 (설정안했다면 default)

4. 리스너 및 라우팅
- HTTPS 443 - 위에서 만든 대상그룹 선택
- 리스너 추가 - HTTP 8000 - 위에서 만든 대상그룹 선택

5. 보안 리스너 설정
기본 SSL/TLS 서버 인증서 - ACM에서 - 위에서 만든 인증서 선택

- 로드 밸런서 생성 클릭 - 로드 밸런서 보기
- 상태가 프로비저닝 -> 활성화 바뀌면

5-3. Route53 레코드 추가
- Route53 - 호스팅 영역 - 레코드 생성

- 백엔드 서브도메인을
api.도메인으로 사용할 것이기 때문에- 레코드명
api입력 - 레코드유형 - A 선택
- 별칭 체크
- Application/Classic Load Balancer에 대한 별칭 선택
- 서울 리전 선택
- 위에서 생성한 로드밸런서 선택
- 대상 상태 평가 비활성화

- 레코드명
5-4. 로드 밸런서 리스너 편집하기
-
80 포트 리스너 규칙 편집하기 : HTTP 80(서버)으로 요청이 오면 HTTPS 443으로 리디렉션 해줘야 한다.
-
로드밸런서 - 80 포트 선택 / 리스너 관리 - 리스너 편집
리스너 편집 -
URL로 리디렉션 / URI 부분 / HTTPS 선택 / 443 입력

테스트하기
http://도메인으로 요청오면https://도메인로 바로 리디렉션 함(443 포트는 생략 가능하다)- 예시
http://api.도메인/bible?book=1&chapter=2요청 전송하면https://api.도메인/bible?book=1&chapter=2로 리디렉션 함
참고