반응형
1. 개요
- AWS SSL 인증서를 발급받아 외부도메인과 연결하고, nginx와 연동하여 적용해본다.
- 필요한 서비스 정보는 아래와 같다.
- 대략적인 아키텍처 환경구성은 아래와 같다.
- https://www.arckwon.com 해당도메인에 ssl을 적용할 것이다.
- 내용이 약긴 길지만 그대로 따라하면 SSL을 쉽게 사이트에 적용할수 있다.
- 아래는 SSL적용된 사이트의 모습이다.
2. AWS SSL 구축에서 필요한 서비스
- ACM : AWS Certificate Manager로 실제 인증서를 생성
- Route53 : 복잡한 구성의 여러 엔드포인트에 대해 정책을 쉽게 생성할 수 있는 시각적 도구
- Load balancers : Amazon Web Services(AWS)에서 제공하는 서비스 유형으로 수신 트래픽을 여러 인스턴스 또는 서버에 분산할 수 있습니다.
3. Route53 설정
- 호스팅 영역 생성 클릭
- 도메인이름/설명/유형(퍼블릭 호스팅 영역) 입력
- 호스팅 영역 생성 클릭
- 아래와 같이 레코드유형 NS와 SOA가 두개가 생성되어 있다.
- 외부도메인 네임서버 정보 등록
- Route 53 목록에서 NS유형항목 값/트래픽 라우팅대상 항목의 1~4차까지의 네임서버 정보를 외부사이트에 등록한다.
- 호스팅서비스 가비아 기준으로 아래처럼 입력한다.
4. ACM 설정과 CNAME등록
- 인증서 요청 클릭
- 퍼블릭 인증서 요청 선택후 다음버튼 클릭
- 도메인이름 / 검증방법(DNS) / 키알고리즘 RSA2048 입력후 아래 요청버튼 클릭
- 상세조회 화면에서 Route 53에서 레코드 생성 버튼 클릭
- Route 53에 CNAME을 등록해야한다. (CNAME은 인증서 검증및 향후 만료시 자동갱신할때 필요하다)
- 아래화면은 이미 적용된 화면이다.
- 주황색 버튼인 레코드생성 버튼을 클릭하고 Route53 관리 화면으로 이동한다.
- Route 53화면목록이다.
- CNAME이 생성되어 있다.
5. 외부사이트 CNAME정보등록
- 해당부분은 호스팅 업체마다 다르겠지만 가비아 기준으로 작성한다.
- 가비아 사이트에서 CNAME정보를 등록한다.
6. AWS ACM에서 인증서 발급 상태확인
- 위모든 작업을 정상적으로 수행시 ACM의 인증서는 아래와 같이 발급되어있다.
- 아직 실제 웹사이트와는 연동되지않아 사용중/갱신자격이 정상적이지는 않다.
여기까지 1차적으로 인증서는 발급받았다.
두번째 작업으로 AWS 로드밸런서를 사용하여 웹사이트와 연동해보자.
7. 로드밸런싱
- EC2 대시보드 화면에서 아래 로드밸런서/대상 그룹 두가지를 설정해야 한다.
- Application Load Balancer Create 버튼클릭
- ALB 항목 아래처럼 작성
- Mapping 부분은 하나만 선택해도 되지만 본인은 4개다 선택한다.
- 보안그룹항목은 EC2생성당시 사용한 보안그룹을 사용하였다.
- 리스너 HTTP 80과 HTTPS 443을 추가한다.
- 아래처럼 셋팅하고 각항목마다 대상그룹을 연결해야된다.
- 참고로 타겟그룹은 하나만 만들면 되고 그하나를 리스너80/리스너443에 연결한다. (타겟 2개생성하는것 아님)
- (create target group) 클릭
8. 로드밸런싱 > 타켓그룹생성
- Instances 선택
- HTTP 80 추가
- VPC는 로드밸런서에서 선택한 VPC
- 프로토콜 버전은는 HTTP1
- /health_check 처럼 별도로 URL을 만들어도 되고 사용해도 되고 그냥 "/"로 표기해도 된다.
- 입력이 완료되면 Next버튼을 클릭해서 생성한다.
- /health_check처럼 별도 URL사용시 nginx기준 아래처럼 한다.
# etc/nginx/nginx.conf
server {
listen 80;
server_name ~.;
client_max_body_size 110M;
#aws health_check 확인용
if ($request_uri = '/health_check'){
return 200 'OK';
}
....
- 생성이 완료되면 아래화면으로 이동한다.
- 생성된 대상그룹을 AWS EC2와 매핑하는 부분이다.
- 해당 EC2를 선택하고 아래 Include as pending below 버튼을 클릭하자.
- 클릭하면 아래 ec2 사이트가 추가되어 있다.
- Create target group 버튼클릭
- 나중에 왼쪽메뉴 로드밸런싱 > 대상그룹에 가보면 아래항목이 등록되어 있다.
9. 다시 순번7번 로드밸런싱 으로 돌아와서 계속진행
- 새로고침 버튼을 클릭하면 방금 생성한 대상그룹이 목록에 표시된다.
- 해당항목을 선택한다.
- 생성한 타켓으로 80리스너/443리스너에 각각 매핑한다.
- 리스너별로 80/443 타켓을 각각 만들지 않고 하나의 타켓으로 매핑한다.
- Security policy는 추천하는것으로 하였다.
- 오른쪽 SSL/TLS부분은 앞서 등록한 ACM정보를 가져온다.
- 선택완료후 아래 보면 Add-on services/tag/summary 탭이 있는데 무시하고 Create load balancer 버튼을 클릭한다.
- 생성완료된 로드밸런서
10. 다시 Route 53으로이동
- 위작업까지 완료하고 다시 Route 53으로 이동한다.
- 여기서 A 유형 즉 로드밸런서를 도메인과 연동해야한다.
- 레코드 생성 버튼을 클릭한다.
- 아래와 같이 앞에서 생성한 항목들을 입력한다.
- 레코드 생성 버튼을 클릭한다.
- 위와 동일한 정보로 www 에 대한 레코드도 하나 만들어준다.
11. 최종완료
반응형
'Cloud > aws' 카테고리의 다른 글
[AWS] RDS 스냅샷 복원방법 및 주의사항 (0) | 2023.06.27 |
---|---|
[AWS] RDS PostgreSQL 생성+방화벽 설정 (0) | 2023.04.03 |
[AWS] EC2 인스턴스 생성 및 접속 (2/2) (0) | 2023.03.30 |
[AWS] EC2 인스턴스 생성 및 접속 (1/2) (0) | 2023.03.29 |