본문 바로가기

AWS - KOR

#016 ) AWS ACM SSL/TLS 와 ALB 생성하기

https://aws.amazon.com/ko/certificate-manager/

 

인증 관리자 - AWS Certificate Manager - Amazon Web Services

AWS Certificate Manager는 웹 사이트 또는 애플리케이션에 대한 SSL/TLS 인증서를 취득하는 데 필요한 시간 소모적이고 오류가 발생하기 쉬운 단계를 없애줍니다. 키 페어 또는 CSR(Certificate Signing Request)

aws.amazon.com

https://aws.amazon.com/ko/elasticloadbalancing/

 

웹 서버 로드 밸런싱 | 서버 로드 밸런싱 | Amazon Web Services

Application Load Balancer Gateway Load Balancer Network Load Balancer

aws.amazon.com

 

 

SSL/TLS 이란?

트래픽을 암호화하여 주고받는 방식으로 보통 두가지 종류 다 SSL 로 불리고 있습니다.

SSL ( Secure Sockets Layer )

TLS ( Transport Layer Security ) * 새로운 버전

개인정보를 포함하는 쇼핑몰이나 웹사이트에서는 보안성을 위해 꼭 사용해야합니다.

웹 주소창을 보면 자물쇠 로고와 함께 이 사이트는 보안 연결(HTTPS) 이 사용되었습니다 라는 문구를 자주 보았을 것입니다.

 

HTTP  -> HTTPS ( + SSL )

 

이러한 SSL 설정을 위해서는 자격 증명서가 필요합니다.

3rd Party 의 증명서를 유료로 구매해서 사용하거나 본인이 직접만들 수도 있습니다.

이번 챕터에서는 AWS 에서 제공하는 서비스인 ACM ( AWS Certificate Manager ) 를 

로드 밸런싱 종류 중 하나인 ALB 와 사용 해 보겠습니다.

 

 

 

로드밸런싱이란?

트래픽을 적절하게 분산해주는 역할로 많은 접속과 트랙픽양에 서버가 터지거나 쉽게 과부화 되는 일을 막아줍니다. 또한 가용영역을 여러 곳 지정해 한 지점에 문제가 생겼을 때 트래픽을 정상적으로 작동하는 곳으로 보내주므로 그동안 문제를 해결 할 수 있습니다. AWS 의 다양한 서비스들과 웹 목적에 따라 로드밸런싱 기능을 적절하게 사용할 수 있는데 크게 ALB,NLB,GWLB 가 있습니다.


AWS Loadbalancer 3 종류

ALB ( Application Load Balancer ) - OSI 7 Layers 에서 7계층에 해당하는 application 계층에서 해당합니다.  SSL 적용이 가능하고 타켓을 그룹별로 처리할 수 있습니다. IP 주소에 따라 경로기반 라우팅같은 상세한 로드밸런싱이 가능한 것이 큰 장점이지만, 패킷 분석이 동반되어 NLB 보다 속도는 느린 것이 단점입니다.

NLB ( Network Load Balancer ) - OSI 7 Layers 의 4번째 계층인 Network 에 해당합니다. IP 나 Port 별로 빠르게 대량분산을 할수있는게 장점입니다. 많은 사용자가 동시에 접속 할 경우 빠르게 분산해서 처리해야할 경우 사용합니다.

GWLB ( GateWay Load Balancer ) - OSI 7 Layers 의 3번째 계층인 Gateway 에 해당합니다. 큰 규모 서버간의 로드밸런싱을 할 경우 사용합니다. 외부에서 유입되는 트래픽과 유출되는 트래픽의 게이트역할을 해주는 가상어플라이언스로의 라우팅입니다.

 

 

 

1. ACM 인증서 요청하기

SSL/TLS 인증서를 AWS 에서 손쉽게 배포하기 위해 ACM 으로 인증서를 요청 해 보겠습니다.

우측 인증서 요청하기를 눌러줍니다.

 

 

퍼블릭 인증서를 요청해봅니다. / 프라이빗 인증서는 CA ( Certificate Authority ) 가 생성되어야합니다.

 

 

도메인 네임에는 사용할 주소를 바탕으로 모든 상위주소에 적용하기 위해 (*.도메인주소) 로 작성하였습니다.

그리고 도메인에 대한 소유권 확인 방법으로 DNS 검증으로 선택하였습니다.

 

 

도메인 정보 옆 Route 53 에서 레코드 생성하기로 들어가줍니다.

 

 

 

간략한 레코드 정보를 확인하고 바로 생성하기를 눌러줍니다.

 

 

Route53 의 레코드로 가보면 CNAME 레코드가 새로 생성된 것을 확인할 수 있습니다.

이 전 Route53 생성에서 적용한것과 같이 가비아에서 NS 네임서버를 설정도 해 두었습니다.

 

몇 분 기다리다 보면 ACM 인증서가 pending 에서 이슈완료됨으로 상태가 변경됩니다.

 

 

 

2. ALB 생성하기

 

로드밸랜서 생성하기를 눌러줍니다.

 

 

로드밸런서의 종류인 ALB,NLB,GWLB 가 있습니다. 이번에는 ALB 로 생성해서 진행 해 보겠습니다.

( 현재 시점에서 CLB 는 더이상 서비스를 제공하지 않는 것 같습니다.)

 

 

 

로드밸런서의 이름을 설정 해 주고, 인터넷으로 접속가능하도록 internet-facing 옵션을 선택 해 줍니다.

 

 

EC2 를 생성해 놓은 네트워크 환경을 선택 해 주고, 가용성을 위해 2A,2C 를 선택 해 주었습니다.

 

 

EC2 생성 시 동일한 보안그룹을 설정 해 주었습니다.

 

 

HTTP/HTTPS 포트를 리스너로 추가해주었습니다.

각각의 포트가 향할 타켓그룹이 없으니 새로 생성 해 보겠습니다.

 

 

타켓 그룹을 위한 새로운 창이 생겼습니다. 기존에 생성 한 EC2 를 연결하기 위해 인스턴스를 선택 해 줍니다.

 

 

타켓그룹 이름을 적용하고 기본설정으로 진행 해 줍니다.

 

 

타켓 그룹을 생성 한 뒤 생성한 타켓그룹을 눌러서 다음과 같이 80,443 포트를 적어주고

Include as pending below 를 눌러줍니다.

 

다음과 같이 80,443 포트에 대한 타켓 리뷰를 확인할 수 있으며 마무리로 타켓 그룹 생성하기를 완료 해 줍니다.

 

 

타켓 그룹 생성 전 창으로 돌아와서 새로고침 버튼을 눌러주면

다음과 같이 생성 한 타켓그룹을 각각 연결시켜줄 수 있습니다.

 

 

ACM 인증서 적용을 위해 드롭박스를 눌러 초반에 생성한 인증서를 선택 해 줍니다.

 

 

ALB 생성이 완료되고 기본 설정에 리스너로 들어가 추가 편집을 해 보겠습니다.

HTTP 80 만 선택하고 기본 편집기능만 있는 상단의 Edit 말고 우측 끝에있는 편집 설정으로 들어가보겠습니다.

 

기본 설정은 그대로 두고 추가 버튼에 새로운 룰 생성하기를 눌러 Host header 는 도메인 주소로,

이에 해당하는 모든 주소를 https 로 Redirect 시키기 위해 443 포트를 적용시켜 연결 해 주고 완료 해 줍니다.

 

 

마무리 작업으로 route53 으로 가서 A 레코드를 하나 더 만들어 줍니다. 각자 원하는 레코드 네임을 앞에 아무거나 넣어주고 Alias 를 켜주면 드롭박스로 트래픽을 연결할 옵션을 선택할 수 있습니다.

ALB 로 연결시켜주고 지역을 선택한 뒤 생성해 놓은 ALB 이름을 적용시켜줍니다.

 

 

바로 주소를 입력해 보면 SSH SUCCESS 란 문구와 함께 자물쇠가 채워진 아이콘, 즉 https 로 안전하게 사이트가 보안연결이 되어있음을 확인 할 수 있습니다.

 

 

 

 

 

* EC2 생성 후 Apach test page 테스트 페이지 변경하는방법

sudo yum install -y httpd
sudo service httpd start
cd /var/www/html/.
sudo chown -R $USER:$USER /var/www
sudo echo "HELLO" > index.html
# HELLO 문구 삽입 완료