※ 사전 준비사항
1. AWS Route53에서 도메인 주소 발급
2. AWS EC2 인스턴스
3. AWS EC2 인스턴스에서 Web Application 배포( Health 체크 가능 )
해당 포스팅은 EC2 인스턴스에 SpringBoot 프로젝를 배포하여 두고 진행하였다.
1. AWS - Certificate Manage 인증서 요청하기
AWS Certificate Manager의 사이드 메뉴에서 인증서 나열을 클릭한다.
인증서 [ 요청 ] 버튼을 클릭한다.
인증서 요청 페이지 에서 퍼블릭 인증서 요청을 선택하여 준다.
[ 다음 ] 버튼을 클릭한다.
퍼브릭 인증서 요청 페이지에서 아래 순서대로 작업을 진행한다.
도메인 이름 | Route53에 등록한 도메인 주소를 입력하여 준다. 서브 도메인을 여러개 생성하는 경우 와일드 카드( * )를 사용하는 것을 추천한다. |
검증 방법 | DNS 검증 - 권장 선택 |
키 알고리즘 | 기본 값 RSA 2048을 사용한다. |
[ 요청 ] 버튼을 클릭하여 인증서를 생성한다.
인증서가 생성되면 인증서의 상세내용을 확인 할 수 있다.
도메인에서 [ Route 53에서 레코드 생성 ] 버튼을 찾아 클릭하여 준다.
이후 Amazon Route 53에서 DNS 레코드 생성 페이지로 이동한다.
먼저 Route 53에 생성한 도메인을 검색하여 준다.
일치하는 도메인을 찾고 선택하고 [ 레코드 생성 ] 버튼을 클릭하여 Amazon Route 53에 DNS 레코드를 생성하여 준다.
이후 Route 53의 호스팅 영역으로 이동한다.
사용할 호스팅 영역( 도메인 주소 )를 클릭하여 준다.
호스팅 영역의 레코드 리스트를 살펴보면 Certificate Manage에서 생성한 레코드가 존재한다.
위와 같이 레코드가 생성되었는지 확인을 진행하여 준다.
2. AWS - EC2 보안 그룹 규칙 수정
EC2의 네트워크 및 보안 페이지로 이동한다.
Health Check가 가능한 프로그램이 실행중인 EC2의 인스턴스와 연결된 보안그룹을 찾아 선택하여 준다.
해당 보안그룹의 상세 페이지로 이동한다.
[ 인바운드 규칙 편집 ] 버튼을 클릭하여 준다.
먼저 기본적으로 설정되어 있어야 할 인바운드 규칙을 살펴본다.
위와같이 HTTP( 80 ), HTTPS( 443 ) Port를 사용하는 규칙이 기본적으로 설정되어 있어야 한다.
[ 규칙 추가 ] 버튼을 클릭하고 EC2 인스턴스에서 실행중인 Web Application의 Port 를 입력하여 준다.
유형 | 사용자 지정 TCP |
프로토콜 | TCP |
포트 범위 | EC2 인스턴스에 배포중인 Web Application 포트 번호를 기재하여 준다. |
소스 | 사용자 지정 선택 |
IP 범위 | 0.0.0.0/0 |
이후 [ 규칙 저장 ] 버튼을 클릭하여 준다.
이후 생성한 Port가 인바운드 규칙에 추가되어 있는지 확인하여 준다.
위와같이 지정한 Port가 추가된 것을 확인 할 수 있다.
3. AWS - EC2 대상 그룹 생성
EC2 좌측 메뉴에서 대상 그룹을 선택하여 준다.
[ 대상 그룹 생성 ] 버튼을 클릭하여 대상 그룹을 생성한다.
!!!!! 수정 기본 구성은 Application Load Balancer 용으로 선택하여 다시 글 쓰자.
그룹 세부 정보 지정은 아래 내용과 같이 진행하여 준다.
대상 유형 선택 | 인스턴스 |
대상 그룹 이름 | 대상 그룹 이름 직접 지정 예) 대상_그룹_이름-target-group |
프로토콜 | HTTP |
포트 | 8181 |
IP 주소 유형 | IPv4 |
VPC | 사용중인 VPC를 지정한다. |
프로토콜 버전 | HTTP1 |
상태 검사 프로토콜 | HTTP |
상태 검사 경로 | EC2에 배포된 Web Application의 Health 체크가 가능한 경로를 지정 예) /actuator/health |
작성이 완료되면 [ 다음 ] 버튼을 클릭한다.
그럼 아래와 같이 대상 그룹이 생성된다.
내용을 살펴보면 아직 로드 밸런서 연결이 되어 있지 않은 상태인것을 확인 할 수 있다.
4. AWS - EC2 로드 밸런서 생성
EC2 사이드 메뉴의 로드 밸런싱 카테고리에서 로드 밸런서를 선택한다.
[ 로드 밸런서 생성 ] 버튼을 클릭하여 로드 밸런서를 만들어 본다.
HTTPS 사용을 위한 SSL인증서 발급이 목적이기에 Application Load Balancer를 사용할 것이다.
Application Load Balancer 유형의 [ 생성 ] 버튼을 클릭하여 준다.
Application Load Balancer의 생성을 시작한다.
1. 기본 구성
로드 밸런서 이름 | 로드 밸런서 이름 예) 로드_밸런서_load-balancer |
체계 | 인터넷 경계 |
로드 밸런서 IP 주소 유형 | IPv4 |
2. 네트워크 매핑
VPC | AWS 계정을 새성하면, 각 AWS Region마다 1개의 기본 VPC가 자동으로 생성된다. 자신의 AWS 계정의 VPC를 선택하여 준다. |
매핑 | 서울 리전( ap-northeast-2 )에는 기본적으로 4개의 가용 영역( Availablity Zone )이 제공된다. 4개의 가용영역을 전부 선택하여 준다. |
3. 보안 그룹
보안 그룹 | EC2 인스턴스와 연결된 보안 그룹 선택 HTTP( 80 ), HTTPS( 443 ) 포트와 Web Application 포트를 활성화 해주었던 대상 그룹 사용 |
4. 리스너 및 라우팅
프로토콜 | HTTPS |
포트 | 443 |
기본 작업 | 생성한 EC2 대상 그룹 지정 |
5. 보안 리스너 설정
보안 카테고리 | 모든 보안 정책 |
정책이름 | ELBSecurityPolicy-TLS13-1-2-2021-06( 권장 ) |
기본 SSL / TLS 서버 인증서 소스 | ACM 에서 |
인증서( ACM 에서 ) | 생성한 ACM 인증서 지정 |
모든 설정이 다 되면 Application Load Balancer 생성 페이지 최하단으로 이동한다.
[ 로드 밸런서 생성 ] 버튼을 클릭하여 로드 밸런서를 생성하여 준다.
로드 밸런서가 생성되면 아래와 같이 세부 정보를 확인 할 수 있다.
상태를 보면 아직 '프로비저닝 중' 이라는 메시지를 확인 할 수 있다.
5. AWS - EC2 로드 밸런서 규칙 추가
다시 EC2 페이지에서 로드 밸런서 페이지로 이동한다.
생성한 로드 밸런서의 이름을 클릭하여 상세 정보를 확인해 준다.
하단 Tap 에서 규칙을 선택하여 주면 아직 기본값 만 설정된 것을 확인 할 수 있다.
[ 규칙 추가 ] 버튼을 클릭하여 준다.
1단계 - 규칙 추가
이름 및 태그에 사용할 규칙의 이름을 작성하여 준다.
Name 입력란에 사용할_규칙-rule 이라고 작성하여 준다.
[ 다음 ] 버튼을 클릭하여 준다.
2단계 - 규칙 조건 정의
규칙 조건 정의 페이지에서 [ 조건 추가 ] 버튼을 클릭하여 준다.
조건 추가 팝업 창이 오픈되면 아래와 같이 작업을 진행한다.
규칙 조건 유형 | 호스트 헤더 |
호스트 헤더 | 사용할 도메인 주소 |
[ 확인 ] 버튼을 클릭하여 조건 추가 팝업창을 닫는다.
호스트 헤더(1)이 추가되었다면 [ 다음 ] 버튼을 클릭한다.
3단계 - 규칙 작업 정의
규칙 작업 정의를 아래와 같이 설정하여 준다.
라우팅 액션 | 대상 그룹으로 전달 선택 |
대상 그룹 | 생성한 대상 그룹 지정 |
가중치 | 1( 기본값 ) |
[ 다음 ] 버튼을 클릭하여 규칙 작업 정의를 마무리 한다.
4단계 - 규칙 우선 순위 설정
리스너 규칙 리스트를 확인하면 1단계 규칙 추가에서 생성한 규칙의 이름이 나타나는 것을 알 수 있다.
추가한 규칙이 1개 뿐이니 우선순위를 1로 지정하고 [ 다음 ] 버튼을 클릭하여 준다.
5단계 - 검토 및 생성
모든 과정을 밟아 왔다면 아래와 같이 설정한 값들을 확인 할 수 있다.
[ 생성 ] 버튼을 클릭하여 로드 밸런서에 규칙을 추가하여 준다.
6. AWS - Route53 호스팅 레코드 생성
위 이미지 참고하여 내용 추가
Route 53의 호스팅 영역으로 이동하여 사용할 도메인 주소의 상세 페이지에 들어선다.
[ 레코드 생성 ] 버튼을 클릭하여 레코드를 추가한다.
레코드 생성 페이지에서 아래와 같이 작업을 진행하여 준다.
레코드 이름 | 서브 도메인 이름 작성 |
레코드 유형 | A - IPv4 주소 및 일부 AWS 리소스로 트래픽 라우팅 |
별칭 | 별칭 활성화 |
End Point 선택 | Application / Classice Load Balancer에 대한 별칭 |
Region 선택 | 아시아 태평양( 서울 ) |
Load Balancer 선택 | 생성한 로드밸런서 선택 |
라우팅 정책 | 단순 라우팅 |
대상 상태 평가 | 예 |
이제 [ 레코드 생성 ] 버튼을 클릭하면 레코드가 생성된다.
레코드 목록에서 생성한 레코드가 존재하는지 확인해 준다.
7. AWS - SSL / TLS 인증 결과 확인확인
다시 EC2에서 로드 밸런서 페이지에서 생성한 로드 밸런서를 확인해 보자
로드 밸런서의 상태가 활성 된것을 확인 할 수 있다.
이번에는 생성한 대상 그룹을 확인해 보자.
대상 그룹을 확인해 보면 로드 밸런서와 정상적으로 연결되었으며 Healthy Status를 확인하는 것을 알 수 있다.
마지막으로 Internet Browser를 열고 Route 53에서 발급받은 도메인 주소를 입력하여 준다.
위 그림과 같이 https://도메인_주소.com 으로 접속하여 EC2 인스턴스에 배포중인 Web Application을 확인한다.
'AWS' 카테고리의 다른 글
[AWS] Lmabda + DynamoDB 사용하기 (0) | 2024.04.30 |
---|---|
[AWS] 데이터 베이스 환경 생성 - MariaDB (0) | 2021.12.23 |
[AWS] EC2 - Amazon Linux 2 SSL / TLS 인증 (0) | 2021.11.29 |
[AWS] 버전 관리 시스템 - GIT 원격지 서버 구축 (0) | 2021.07.08 |
[AWS] EC2 - Amazon Linux 2 AMI 서버 구축 (0) | 2021.07.06 |