보통 웹 서비스를 공개하려고 하면 필수로 여겨지는 것 중에 하나가 도메인 구매와 연동이다.
필자도 매번 이것때문에 고통받고는 했는데 그래서 한번 정리해보았다.
준비물
1. 도메인
( 도메인은 다른 사이트에서도 구매를 할 수 있으나 저는 도메인도 aws에서 구매한 경우)
2. aws ec2 인스턴스
순서
1. 도메인을 구입(AWS route53)
2. 도메인 구입한 것을 AWS route53과 연결
3. AWS ACM을 통해서 구입한 도메인의 SSL Certificate를 발급
4. ELB에 SSL Listener 생성
5. ELB security group 설정
6. 최종 SSL 적용
[1~2 번]
aws에서 ssl(https)를 적용할 때 도메인 단위로 설정이 되기 때문에 적용할 도메인이 필요하다.
"도메인 등록" 버튼을 클릭.
등록하고 싶은 도메인명을 입력한 후 "확인" 버튼을 누르면 하단에 사용 가능한 도메인들이 나열된다.
가격을 보고 결정을 하고 하단에 "계속" 버튼을 누르시면 다음으로 진행된다.
결제정보를 입력.
이메일 검증을 하고 "주문 완료" 버튼을 누르면 도메인 등록이 완료된다.
여기까지 진행하면 얼마 뒤에 결제 문자가 오고 route 53 대시보드에서 등록된 도메인을 확인가능하다.
route 53 대시보드 화면에서 "호스팅 영역" 버튼을 누르게 되면 등록된 도메인을 확인할 수 있다.
[3 번]
다음으로 ACM(AWS Certificate Manager) 페이지로 이동한다.
ACM 페이지에서 왼쪽에 있는 "인증서 프로비저닝"을 선택
"인증서 요청" 버튼을 클릭.
"도메인 이름"란에 도메인을 입력하는데 에스트릭(*)표시로 모든 하부도메인에 설정할 수 있게 해주면 좋다.
(api나 서비스별로 모든 도메인을 커버하려면 이렇게 하는 것이 좋다.)
그리고 "다음" 버튼을 클릭.
"이메일 검증"을 선택하고 "검토" 버튼을 클릭.
그러면 aws 가입시 등록해둔 이메일로 인증 메일이 오고 인증하면 된다.
이 과정을 완료하면 도메인에 SSL 등록이 완료된다.
[4~6 번]
aws에서 SSL을 등록한 도메인을 사용하기 위해서는 로드밸런서를 이용해야 한다
aws ec2에 접속해 대시보드에 들어오면
ec2 대시보드 메뉴에 하단에 보면 로드 밸런서 메뉴가 있다.
로드밸런서 메뉴에 클릭.
로드 밸런서 화면에서 "로드밸런서 생성" 버튼을 클릭하면 다음과 같은 화면이 나온다.
aws 로드밸런서에는 세가지 종류가 있다. OSI 7계층을 기준으로
- Application Load Balancer : 7 layer(HTTP/HTTPS)
- Network Load Balancer : 4 layer(TCP/TLS/UDP)
- Classic Load Balancer
여기서는 Application Load Balancer(7 layer)로 선택하였다.
이번 화면에서는 세가지 항목을 입력해야한다.
1. 임의의 로드밸런서 이름을 지정.
2. 리스너를 설정.
- https 통신은 http + 인증서 확인.
- http 통신에 필요한 포트 한개(본인이 해당 도메인으로 사용할 포트) + https 통신에 필요한 포트 한개(443: 필수)를 열어줘야한다.
(최소 이렇게 두개는 설정해 주어야 한다.)
3. aws 에서 vpc와 가용영역을 설정.
- vpc를 사용하지 않는다면 디폴트 vpc가 설정된다.
- vpc를 사용하고 있다면 사용할 vpc를 설정.
- vpc 안에서 사용할 가용영역을 설정.
위의 세가지 설정을 마쳤다면 "다음:보안 설정 구성" 버튼을 클릭하여 다음으로 넘어간다.
보안 설정 구성 창에서
1. 인증서 유형: ACM에서 인증서 선택(권장) 을 선택하고
2. "인증서 이름"에서 인증서를 선택하여
"다음: 보안 그룹 구성" 버튼을 클릭하여 다음으로 넘어간다.
보안 그룹 구성 창에서는 기존의 보안 그룹을 사용할 수도 있고 새 보안 그룹을 생성할 수도 있지만
저는 모든 작업에 새 보안그룹을 지정해주는 것이 맞다고 생각하여 새로 만들었다.
어떻게 해도 상관 없지만 필수 작업은
1. 프로토콜 : TCP / 포트 범위 : 443 , 프로토콜 : TCP / 포트범위 : {사용할 포트}
아까 설정할 이 설정이 들어가야 통신을 할 수 있다.
"다음: 라우팅 구성" 버튼을 클릭하여 다음으로 넘어간다.
라우팅 구성 창에서는 세가지를 설정해야 한다.
1. 이름 : 임의의 라우팅 이름을 지정
2. 대상 유형 : 세가지 선택지가 있어서 용도에 따라 설정을 해주면 된다.
3. 프로토콜은 HTTP로 하고 사용할 포트를 입력해주면 된다.
"다음: 대상 등록" 버튼을 클릭하여 다음으로 넘어간다.
대상 등록 창에서는 다음과 같은 작업을 한다.
1. 화면 하단에서 적용할 인스턴스를 선택.
2. HTTPS(443) 포트와 HTTP({사용할 포트})를 "등록된 항목에 추가" 버튼을 눌러 추가.
3. 위에 있는 빨간색 동그라미 영역에서 등록된 포트를 확인.
이제 "검토" 버튼을 누르고 검토 창에서 "생성" 버튼을 누르면 로드밸런서가 생성된다.
마지막 작업은 지금 생성한 로드밸런서를 이전에 만든 도메인에 연결해주는 작업이다.
aws 서비스중 Route53 서비스로 이동.
"호스팅 영역" 버튼을 클릭하여 이동.
호스팅 영역 창에서 도메인을 클릭.
상단에 "레코드 생성" 버튼을 누른 후 다음 네가지 작업을 해야한다.
1. 이름 지정(SSL을 적용한 상위 도메인에서 앞에 하위 도메인을 설정하는 작업)
- ex : 상위 도메인 example.com
하위 도메인 news
도메인 : news.example.com
2. 별칭 : 예 클릭
3. 별칭 대상 : 생성한 로드밸런서 이름 선택
4. 대상 상태 평가 : 예 ("예"로 지정하게 될 경우 주기적으로 서버의 상태체크를 해준다.)
여기까지 하게 되면 도메인을 사용하여 SSL을 적용을 완료할 수 있다.
'DevOps > AWS' 카테고리의 다른 글
AWS 에서 카프카 사용해보기 (1) | 2023.12.16 |
---|---|
[해결]Error Code: 1227. Access denied; you need (at least one of) the SUPER or SYSTEM_VARIABLES_ADMIN privilege(s) for this operation (0) | 2023.11.05 |