본문 바로가기
위오의 AWS 이야기

[AWS] AWS EC2에 https, 도메인 적용하기 [4] - [위오의 AWS이야기]

by BaeBae_WIO 2022. 11. 10.
반응형

안녕하세요, 위오의 배배입니다.

 

드디어 AWS를 활용하여 웹서비스를 운영하는 법을 배워보는 마지막 시간입니다.

Step.4 의 경우 제가 가장 많은 시행착오를 겪은 부분이기도 한데요,

제가 겪은 문제들을 여러분들이 또 겪으실 필요가 없으니 천천히 알려드리도록 하겠습니다 ㅎㅎ

 

https://retro.wiodaily.com 

(2023.05.01, 위오 공식 서비스 오픈)

https://wiodaily.com 

 

위오

우리들의 감성 플랫폼 - WIO

wiodaily.com

 

------------------------------------------------------

 

step.1) AWS VPC에 Subnet 구성하기

  -. AWS VPC 구성

  -. 구성한 VPC 내부에 Public Subnet 생성

  -. Internet Gateway를 Public Subnet에 연결

  -. 인터넷 라우팅 테이블 구성

  -. Public 보안 그룹 생성

 

step.2) AWS EC2 기동하여 Putty로 원격접속하기

  -. 구성한 Subnet에서 EC2 기동 

  -. EC2(Linux 서버), Putty를 이용하여 원격 접속

 

step.3) AWS EC2,에 NGINX 설치하여 웹 서비스하기

  -. EC2, Nginx 설치

  -. Nginx 구성 정보 수정

  -. 웹 서비스 확인(https, 도메인 적용 x)

 

step.4) AWS EC2에 https, 도메인 적용하기 

  -. AWS ACM 활용하여 SSL인증서 등록

  -. AWS ALB 구성 및 SSL 연결

  -. Route53에서 도메인 연결하기

  -. AWS를 활용한 정상적 웹 서비스 운영 및 과금정책

 

------------------------------------------------------

 

먼저 오늘 구성할 구조에 대해서 간략한 그림은 아래와 같습니다.

저희 위오에서 운영중인 웹 서비스를 기동하고있는 최종적인 인프라 아키텍쳐 인데요, Step.4 까지 모두 함께하셨다면 아래와 같이 운영중에 있다고 보시면 됩니다. ㅎㅎ

인프라 아키텍쳐

 

 

Step.3 까지 진행되었다면, 서버에 웹이 배포 되었지만, 도메인이 없어 IP로 접근하였고

또한, ssl인증서가 적용되지 않아 https 프로토콜을 사용하여 접근할 수 없는 상태입니다.

 

따라서 도메인을 적용하고 https 프로토콜로 안전하게 트래픽을 오갈 수 있게 해주는 과정이 필요한데요,

그 과정이 step.4라고 봐주시면 됩니다!

 

자, step.4를 보았을때 처음보는 단어들이 대거 등장했습니다. ACM? ALB? Route53?

모두 과정을 밟아보면서 차근차근 배워가보도록 합시다!~

 

참고로 step.4 에서 제시하는 서비스 중 ALB(트래픽)와 Route53(도메인 구매 및 호스팅영역)과금이 발생할 수 있으니 참고 부탁드립니다.

 

1. AWS ACM 활용하여 SSL인증서 등록

  AWS 에서 도메인을 구매하였다고 가정하고 진행하는 부분 참고 부탁드리며, 도메인 구매가 필요하신 분들은 아래 포스팅 참고해주시면 될 것 같습니다!

https://wiodaily.com/9

 

최신! AWS Route53 도메인 구매 방법 및 후기! - [위오의 서버 및 개발환경]

안녕하세요 위오의 배배입니다. 위오의 이름궁합 테스트가 서버 및 도메인 이전을 준비 중에 있습니다. 현재 Netlify의 무료 도메인을 사용하고 있기 때문에 namelovetest 뒤에 .netlify.app이 따라 붙는

wiodaily.com

 

1.1 AWS> Certificate Manager(ACM)> 인증서 요청> 퍼블릭 인증서 요청> 다음

AWS에서 인증서를 쉽게 적용할 수 있도록 ACM이라는 서비스를 제공하는데요, 저희는 이 서비스를 사용하여 https를 적용시키도록 하겠습니다.

인증서 요청

 

퍼블릭 인증서 요청

 

1.2 ssl 인증서를 적용할 도메인을 입력해주고, 저장 (나머지 설정은 그대로 둡니다.)

저같은 경우 테스트용 하위도메인으로 진행을 했는데요,

*.wiodaily.com 과 같이 와일드카드를 사용하여 만들고 하나의 퍼블릭 인증서에 여러 하위도메인을 연결하여 사용하는 방법도 알고계시면 좋을 것 같습니다!

인증서를 적용할 도메인 입력

 

1.3 도메인 레코드 설정

위 과정에서 퍼블릭 인증서를 요청이 완료되면 아래와 같은 상태가 되는데요, 이는 레코드를 생성해주지 않은 상태이기 때문입니다.

 

 

  1.3.1) 자, 그럼 인증서를 클릭하여주세요!

 

인증서 클릭

 

  1.3.2) 레코드 생성을 클릭해줍니다!

레코드 생성

 

  1.3.3) 생성한 레코드를 확인해주세요!

검증 대기중

 

  1.3.4) 생성이 완료되고 수 분이 지나면 아래와 같이 "발급됨"을 확인하실 수 있습니다!

인증서 발급 완료

 

 

2. AWS ALB 구성 및 SSL 연결

퍼블릭 인증서를 만들었다면 이제 서버에 적용시켜줘야 하는데요, 이번 시간에 저희가 사용하는 방식은 퍼블릭 인증서를 서버에 적용시키는 것이 아닌 "로드밸런서"에 적용시키는 방법입니다.

 

AWS에서 제공하는 SSL인증서는 무료이지만, ALB 서비스는 트래픽당 과금이 발생하는 형식인데요,

유료인 사설 ssl인증서를 구매하는 것과 AWS ALB를 이용한 AWS SSL인증서를 이용하는 방식에 대해서는 

각자의 판단에 맞기도록 하겠습니다.

비영리 단체에서 운영하는 무료 ssl  인증서 Let's Encript 에 대해서도 찾아보시는 것을 추천드립니다.

(저희 위오도 Let's Encript 에 대해 고려중에 있습니다.)

 

 

2.1 EC2검색> 왼쪽 네비게이션 바 하단> 로드밸런서> 로드밸런서 생성

로드밸런서 생성

 

2.2 Application Load Balancer(ALB) Create 선택

ALB 생성

 

 

2.3 ALB를 설정해주는 단계입니다. 아래처럼 설정해주세요!

ALB 설정

 

2.4 기존에 만들어둔  VPC 와 subnet을 선택해주세요!

네트워크 세팅

 

이부분은 사실 주의깊게 볼 필요가 있습니다.

제가 일주일동안 고생한 부분이기도 한데요,

 

우선 ALB를 사용하기 위해선 고가용성 구성을 위해 가용영역을 2개 이상으로 체크해야하는데요,

즉, 아래 캡처처럼 저는 2a와 2c의 영역에 있는 subnet을 각각 선택해줬습니다.

(직접 새로 만드셔서 진행하셔야합니다!)

 

고가용성을 위한 가용영역 선택

 

그리고 또 한가지 주의할 점은 새로만든 subnet에도 인터넷 게이트웨이를 붙여줘야한다는 것인데요,

이 부분을 체크안했다가 저는 일주일이란 세월을 보내야했습니다...

 

- question -

나는 2a 영역에만 서버를 두고 웹 서비스를 할 계획인데 2c에도 인터넷 게이트웨이를 붙여야하나요????

-> 네,, 붙여야합니다.. 실제로 저희 서비스 또한, 2c영역에는 서브넷만 존재하고 EC2는 존재하지 않은 채로 운영중입니다.

 

 

2.5 보안그룹 설정

기존에 만들어둔 보안그룹을 설정해줍니다!

보안그룹 설정

 

2.6 리스너 라우팅 설정

리스너를 아래와 같이 HTTP와 HTTPS를 설정해줍니다! 

HTTP와 HTTPS에 대한 트래픽이 들어올 경우 ALB가 누구에게 어떤 방식으로 전달할지 설정하는 부분인데요,

타겟그룹을 생성하여 그 동작을 지정해줍니다.

리스너 설정

 

 

2.6 타겟그룹 생성 및 설정

1. 타겟그룹 생성

 

2. 인스턴스로 타겟 설정

 

vpc는 기존에 구성했던 vpc를 선택하여 줍니다.

3. 타겟그룹 생성

 

4. 인스턴스 확인

인스턴스 선택 후 "Include as pending below" 클릭

5. 인스턴스 적용

 

6. 타겟그룹 생성 완료

 

 

2.7 생성된 타겟그룹 ALB 구성화면에서 적용

이때는 새로고침 해주셔야 방금 생성한 타겟그룹이 보입니다!

타겟그룹 적용

 

 

2.7 기존에 설정한 ssl 인증서 선택 후 저장

ssl 인증서 선택

 

2.8 ALB 설정 완료

ALB 구성 완료

수 분 기다리게 되면 ALB가 활성화가 됩니다.

ALB 활성

 

 

3. Route53에서 도메인 연결하기

이제, 도메인과 https를 적용하기까지 마지막 단계에 도달했습니다.

바로 마지막은 저희가 만든 ALB에 도메인을 적용시켜주는 것인데요, 바로 route53으로 이동하도록 하겠습니다.

 

 

3.1 레코드 생성

레코드 생성

 

3.2 레코드 생성 정보 입력

 

- 레코드 이름 : 만들고자 하는 도메인을 입력해줍니다.

- 레코드 유형 : A 유형으로 선택해주세요.

- 별칭 : 별칭을 체크해주세요.

- 트래픽 라우팅 대상 : 이 부분이 바로 해당 도메인을 ALB에 적용시키겠다는 부분인데요, 아래처럼 설정해주세요.

     -> Application/Classic Load Balancer에 대한 별칭

     -> 지정한 리전

     -> 기존에 구성한 ALB

레코드 생성

 

3.3 위에 정보들을 모두 확인하고 레코드 생성을 눌러주시면 도메인 및 ssl적용이 모두 완료됩니다!

웹 서비스 확인
인증서 확인

 

---------------------------------------------------------------

 

 

네, 길고 길었던 AWS 에서 웹 서비스 운영하기의 시리즈가 마무리가 되었습니다.

참, 많은 내용들을 다룬만큼 개념적으로 부족한 부분들이 많은 것 같습니다.

 

저희가 구축한 AWS의 구조보다 훨씬 더 뛰어난 아키텍쳐들이 많을 텐데요,

저희 위오도 열심히 공부해나가면서 개선해나갈 예정입니다.

 

추가로 개발되고 있는 서비스나 컨텐츠들에 대한 내용도 곧 전달드리도록 하겠습니다 : )

 

배배였습니다.

반응형

댓글