AWS Certificate Manager (ACM)
AWS Certificate Manager(ACM) AWS 서비스 및 연결된 내부 리소스에 사용할 공인 및 사설 SSL/TLS(Secure Sockets Layer/전송 계층 보안) 인증서를 손쉽게 프로비저닝, 관리 및 배포할 수 있도록 지원하는 서비스이다.
AWS 가 아닌 다른 인증 기관에서 SSL 인증서를 발급 받아서 등록하는 과정을 거쳐, 사용하는 인스턴스가 여러개면 인스턴스마다 인증서를 받아 등록해서 사용해야 한다. 또한 각 인증서마다 만료 기간을 알고 그 기간에 맞춰 갱신을 해줘야 한다. 갱신하지 못하면 사이트가 접속되지 않기 때문이다.
이러한 불편함을 편리하게 해주는 것이 ACM(Amazon Certificate Manager) 을 이용해서 인증서를 발급받아 사용하는 것이다.
AWS 에서 EC2에 배포한 톰캣에 HTTPS로 접근하는 방법을 알아보고자 한다.
1. ACM 인증서 추가
2,. Route 53 도메인 생성
3. 로드 밸런서 생성
4. DNS 설정
AWS Certificate Manager (ACM) 인증서 추가
인증서에서 요청 버튼을 누른다.
퍼블릭 인증서 요청을 선택하고 인증서 요청을 누른다.
도메인 이름을 작성하고 DNS 검증을 선택 후 요청을 누른다.
인증서가 생성되었는지 확인하고 생성된 인증서로 들어간다.
Route 53 도메인 생성
Route 53 을 사용해 도메인 인증작업을 진행한다.
처음에 생성했을 때는 상태에 검증 대기중으로 나오는데 나는 인증이 되어있는 상태라 성공으로 나온다.
레코드 생성페이지에서 해당 레코드를 선택하고 레코드를 생성하면 된다.
EC2 로드밸런서 생성하기
EC2 메뉴 하단에서 로드밸런싱에서 로드밸런서를 생성한다.
ALB 를 선택해준다.
로드밸런서 이름
리스너 추가를 통해 HTTP / HTTPS 두개의 리스너를 생성한다.
대상그룹
Create target group 을 선택해 대상그룹을 생성해준다.
프로토콜은 HTTP 로 설정해서 사용한다.
프로토콜은 로드밸런서가 대상 그룹에 트래픽을 전달할 때 어떤 포트로 전달할 것인지를 선택할 수 있다. ( 8080 )
본인이 사용하는 프로젝트의 맞게 path를 설정해주면 된다.
Health check path 는 어떤 경로로 상태 검사 요청을 보낼 것인지를 선택하는 것이다.
다음과 같이 지정하면 로드밸런서가 주기적으로 대상그룹 인스턴스들에게 HTTP 형태의 루트 (/) 경로로 보내겠다는 뜻이다.
Health check path 는 단순히 해당 인스턴스들이 잘 작동하고 있는지를 체크하는 역할이다.
Next 를 누르면 사용가능한 인스턴스가 나오고 사용하고자 하는 인스턴스를 선택한다.
추가 버튼을 누르고 target group 을 생성해준다.
방금 만든 대상그룹을 선택해준다
DNS 설정
위의 작업이 끝났으면 Route 53 으로 이동 후 레코드 생성을 해준다.
레코드 이름을 작성하고 레코드 유형을 A 로 선택한다.
여기서 A 는 Address의 약자로 도메인이 IP 주소를 바라보는 것을 뜻한다.
example.com ---------------- IP주소
레코드를 생성하고 나면 이전에 만들었던 대상 그룹에서 Healthy한 상태를 확인할 수 있다.