[IMAD] AWS EC2에 HTTPS 적용

NCOOKIE·2023년 6월 13일
0

IMAD 프로젝트

목록 보기
6/11

도입 이유

구글과 애플의 로그인 API를 사용하기 위해서는 https 등록이 선행되어야 한다. 아예 이 둘을 애플리케이션에서 빼고 카카오, 네이버만 지원할까 생각도 해봤지만... 소셜 로그인을 지원하는 서비스는 애플 로그인도 지원하지 않으면 애플의 앱 스토어에 등록이 거절될 수 있다고 한다. (참고링크) 울며 겨자먹기로 할 수 밖에 없었다.

HTTPS 적용하기

AWS에서 도메인 구매, HTTPS 인증서 발급 등을 한 번에 진행할 수 있었기에 도메인을 구매하기 위해 기타 서비스는 이용하지 않았다. 다행히 AWS 프리티어 자격만 충족한다면 도메인 결제 비용을 제외하고 아래 내용은 모두 무료이다.

Route 53

만약 도메인 결제 후 활성화가 오래 걸린다면 이메일을 확인해보자. 메일에 첨부된 링크에 들어가 확인 절차를 거쳐야 한다.

사용하려는 도메인의 이름을 검색하고 구매해준다. imad 관련 도메인은 이미 전부 사용 중이어서 iimad.com 도메인을 구매했다.

도메인 구매 및 결제가 완료되었다면 호스팅 영역이 자동으로 생성되었을 것이다. 설명에 HostedZone created by Route53 Registrar라고 되어있는 호스팅 영역을 선택하고 레코드를 생성해준다.

값 부분에 사용하려는 EC2 퍼블릭 IP를 넣어주면 된다.

Route 53을 통해 도메인을 구매하고 함께 만들어진 호스팅 영역을 위에서 선택해 들어왔다면 레코드 목록에 NS 유형에 4가지 주소가 있을 것이다. 만약 이들이 구매한 도메인의 이름 서버 값들과 다르다면 다른 호스팅 영역을 확인해보거나 값을 수정해주어야 한다. 만약 외부에서 도메인을 구매한 경우 직접 값을 넣어줘야 한다.

Certificate Manager

HTTPS 인증서 요청을 하기 전에 AWS의 리전이 제대로 설정되어 있는지 확인해보자. Route 53에서는 글로벌로 설정되어 있었는데, 직후 다른 서비스를 이용하려고 하니 리전이 버지니아 북부로 되어있었다.

IMAD 프로젝트는 현재 네이티브앱만 개발 중이지만 추후 기회가 된다면 웹에서도 서비스를 제공할 예정이다. 때문에 프론트엔드, 백엔드 주소 모두 고려해야하고, 백엔드 주소는 api.iimad.com을 사용할 것이다. 따라서 정규화된 도메인 이름에는 *.{domain_name}을 넣어준다.

그 이후로는 다른 설정은 따로 해주지 않고 등록을 마친다. 앞에서 레코드 생성을 잘 했다면 얼마 지나지 않아 발급됨 상태가 되는 것을 확인할 수 있을 것이다.

EC2

만약 정적웹 서비스를 제공하기 위해 S3를 사용한다면 거기서 관련 설정을 진행해주어야 한다. 해당 내용은 여러 블로그에서 확인해볼 수 있다.

Target group

[로드 밸런싱] 카테고리의 대상 그룹(Target Group)에서 Create target group 버튼을 눌러준다. target type은 instance, target 이름은 적당히 설정해주고... 주의할 점은 서버 프로그램에서 사용하는 포트 번호로 설정해주어야 한다는 것이다. 나는 스프링에서 8080 포트로 사용 중이기 때문에 해당 값을 넣어주었다.

Security group

로드 밸런서 생성 시 사용하려는 보안그룹을 만들어 줄 것이다.

EC2 인스턴스에서 웹 사이트를 호스팅합니다. 사용자가 HTTP(80) 또는 HTTPS(443)에서 연결하도록 허용하려면 어떻게 해야 하나요?

인바운드 규칙에 HTTP(80)와 HTTPS(443) 두 개 추가해준다.

Load balancer

Application Load Balancer 선택해주자.

Mappings 부분에서 서비스하려는 EC2 인스턴스가 있는 가용영역이 포함되어야 한다. 최소한 2개 골라야된다는데 나머지 하나는 대충 선택해주자.

HTTP와 HTTPS 리스너 설정해주고, 아까 열심히 만들었던 target group을 선택하자.

아까 발급받았던 https 인증서도 설정해주고 로드 밸런서 생성을 마쳐준다.

도메인 설정

Route 53에 돌아가서 아까 선택했던 호스팅 영역에 들어가 레코드 생성을 눌러준다. 레코드 이름에 따라 서브 도메인을 만들 수 있다. 관리자 전용 페이지 등을 만들 때도 응용할 수 있을 것 같다.

위 사진처럼 api를 입력했다면 api.iimad.com에 접속하면 HTTPS가 적용된다. 아까 언급했던 것처럼 백엔드 주소로 사용할 것이다. 모자이크 처리해둔 부분은 아까 만들었던 로드 밸런서를 설정해주면 된다.

적용 확인

끗!

참고링크

EC2 HTTPS로 연결하기
HTTPS 사용하기 (AWS EC2, Route53, Load Balancer)
AWS 프리티어 평생 쓰기 - Migration 시리즈 2. 로드밸런서를 통해 https 적용하기

profile
일단 해보자

0개의 댓글