Spring intializr(Gradle), IntelliJ, AWS EC2를 이용한 동적 웹페이지 만들기 - 9단계 Https 적용하기
Rosie_dev 2021. 7. 27. 02:030. Https의 필요성
웹 페이지가 어느 정도 만들어졌고, 보안을 위해서 기본적으로 https 통신이 가능하게 하기 위해 SSL 인증서를 발급받아야 한다. 기존에 이미 Route 53 서비스를 이용하고 있고, AWS 도메인 구매를 했기 때문에 ACM 무료 사용이 가능하다.
여기서 비용적 측면을 고려해야 하는데 인스턴스 로드밸런스로 인증서를 설정해주면, 로드밸런스는 각 설정 리전에 따른 비용이 발생한다고 한다.
1. ACM으로 인증서 발급받기
ACM 즉, Certificate Manager에 들어간다. 여기서 Zerossl이나 별도 사이드로 ssl을 받은 경우는 '인증서 가져오기'를 이용하고 ACM 발급을 원하면 '공인 인증서 요청'에 들어간다.
1단계 도메인이름 추가
자신이 만든 도메인 이름을 추가해준다. www. 도메인도 만들었을 경우 추가 기입해준다.
2단계 검증방법 선택
검증방법은 선택하면 되는데, 이메일 검증이 간단하다. DNS 검증과정은 5단계 내용을 확인하면 된다.
3단계 태그추가
별도로 설정하지 않았다. 구글링하다보면, value 값만 설정해 주는 경우도 봤던 것 같다.
4단계 검토 및 요청
5단계 검증
2단계에서 DNS 검증을 누른 경우, 레코드를 생성해야한다. Route53 호스팅영역에 도메인마다 설정해야할 레코드 이름과 값이 주어진다. 여기서 설정시 유형은 CNAME으로 한다. 설정후 ACM에서 검증된 것을 볼 수 있다.
+
설정 방식은 이전에 도메인 설정방식에서 설명한 내용과 동일하므로
를 참조하자.
DNS 검증에서 발급완료가 빠르게 뜨려면, 생성된 CNAME 값을 Route53 레코드 생성에서 하는 것보다 바로 ACM의 값 하위 내용에 있는 "Route53 에서 레코드 생성"이라는 버튼을 눌러 적용하는 것이 더 간편하고 빠른 방법이다.
2. 로드밸런서 생성하기
로드밸런서는 서버가 다수의 클라이언트 요청을 일관성 있게 분산해줄 수 있는 기능을 한다. AWS에서는 HTTPS 리스너를 생성해서 ACM 인증서를 지정할 수 있으므로 생성했다.
EC2 인스턴스바에서 로드밸런싱 > 로드밸런서 생성에 들어간다. 여기서 우리는 HTTPS 설정을 위해 ALB(Application Load Balancer)를 선택한다.
1단계 Load Balancer 구성
이름은 임의로 하고, 리스너는 추가해서 HTTPS 443 포트로 생성한다. VPC는 따로 사용하는 것이 없으므로 기본값으로 두고 가용영역은 모두 선택하자. (모두 선택 안해도 하라는 문구가 뜬다.)
2단계 보안 설정 구성
인증서는 ACM에서 인증서 선택으로 하고 인증서 이름은 ACM에서 등록한 것이 뜨므로 선택해준다.
3단계 보안 그룹 설정
새 보안그룹을 생성해준다. 기존에 포트가 등록된 보안그룹(인스턴스 생성시 만든)은 필요없으므로 새로운 보안그룹을 생성하면 80, 443 포트에 대한 보안그룹이 자동생성된다. 기본값을 유지하고 다음 단계로 가자.
4단계 라우팅 구성
여기도 임의의 이름을 설정하고, 상태검사를 위한 부분의 경로를 변경하고 싶다면 경로를 새로 지정해주면 된다. 이번 프로젝트의 경우, 기본 경로(/)로 지정되어 있기 때문에 별도 설정이 필요하지 않았다.
5단계 대상 등록
아래 인스턴스를 보면, 프로젝트를 올린 서버가 있으므로 선택하고, 반드시 등록된 항목에 추가 버튼을 눌러서 등록된 대상에 뜨도록 해야 한다.
+ 503 Service Temporarily Unavailable
대상 등록시 등록된 항목의 추가 버튼을 누르지 않고, 그냥 앞의 체크박스만 선택하고 넘어가면, 모든 설정이 끝나고 나서 503 에러 페이지가 뜬다.
6단계 검토
등록한 로드밸런서 내용이 맞는지 확인하고 다음을 누르면, 생성 완료 화면이 뜬다.
3. http로 연결된 것을 https로! 리디렉션 처리하기
리스너에서 리디렉션 처리를 해줘야 http도 https로 자동 변경되서 들어올 수 있다.
생성된 로드밸런서를 누르면 이하 상세내용이 나오는데 여기서 리스너에 HTTP:80 을 편집해주자. 편집에서 기존 작업을 지우고 작업추가를 해서 리디렉션 대상 > HTTPS 443 포트 값을 설정하면, 다시 리스너 상세 페이지에 리디렉션 설정된 것을 확인할 수 있다.
4. 레코드 유형 A 수정하기
로드밸런서를 만들고 나서 이제 Route53 과 연결해줘야 한다. 먼저 레코드 설정에서 인스턴스 탄력적IP를 연결했던 레코드 A 유형을 수정해야 한다. 레코드 편집에서 트래픽 라우팅 대상(인스턴스 탄력적IP)을 지우고, 별칭을 활성화해준다. 그리고 ALB, 서버 리전, 생성된 로드밸런서를 선택해주고 저장하면 끝이다. 여기서 당연히 www.로 추가한 도메인 레코드 설정까지 변경해줘야 한다. https 설정 끝!
AWS ELB https 설정 [두원공과대학교 메카트로닉스공학과 김동일교수] 6.1.10
AWS ELB 생성 및 ACM 인증서 EC2에 적용하기
[AWS] HTTPS 통신을 위한 SSL 인증서 발급하기 (Route 53, Certificate Manager, Load Balancer)
AWS SSL(HTTPS) 적용 방법 - SSL 적용 ELB(3)
무료 SSL인증서 호스팅 설치방법 ( Ubuntu , Apache2)
'Project > AWS로 Spring 웹페이지 배포하기' 카테고리의 다른 글
- AWS
- putty
- spring
- intellij
- java
- EC2
- 웹페이지만들기
- 호스팅영역
- gradle
- SQLD
- filezila
- 정보처리기사 필기
- 배포
- 노개북
- JIRA
- IT 5분 잡학사전
- 노마드코더
- 기술블로그
- 실용주의프로그래머
- ubuntu
- 독서후기
- 개발도서
- git연동
- LifecycleException
- 오늘의코딩
- 정보처리기사 실기
- 북클럽
- jdbc
- gradle build
- 정보처리기사
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |