쪼렙 as! 풀스택

Elastic Beanstalk 로 서버운영하기 - #2. 도메인 연결, HTTPS 연결 본문

개발 일지/AWS

Elastic Beanstalk 로 서버운영하기 - #2. 도메인 연결, HTTPS 연결

코코앱 2017. 5. 16. 16:48

0. 준비물 - Route53 에 내 도메인이 등록되어 있어야 한다.


1. Route53 - Hosted zones - 내 도메인 선택 - Create Record Set 을 누른다.


Type 은 - A 타입을 선택.

Name - 서브 도메인을 입력할 수 있는데, 루트 도메인 그대로 쓰려면 비워두면 된다.

Alias - AWS 내부의 리소스를 연결할 때는 Alias 를 선택한다.

Alias Target - 눌러보면 AWS 에서 내가 사용하고 있는, 연결가능한 자원들이 표시된다. 처음에는 Loading... 상태로 좀 시간이 걸릴 수 도 있으나, 차근차근 기다리거나 다시 눌러보거나 해보자.





여기서 주의 할 점은, Alias 목록중에보면, Load Balancer 와, Elastic Beanstalk 두개가 모두 보인다는 점이다. 무엇을 선택해야 할까. 우리는 LoadBalancer 에 연결하도록 한다. 왜냐하면, ACM 에서 무료로 발급받은 HTTPS 인증서는 로드 밸런서에만 사용할 수 있기 때문이다. BeansTalk 에 바로 연결해버리면, ACM 에서 발급받은 인증서는 사용할 수 없고, 서버내에서 직접 인증서를 설치해줘야 한다. 여기서는 로드밸런서를 이용한 HTTPS 연결을 할것이기 때문에 로드밸런서 밑에 있는 환경을 선택하도록 하겠다.







2. 만약  연결할 로드밸런서의 목록이 여러개가 나온다면, Beanstalk 에 연결된 로드밸런서인지 확인을 해야 한다. 아래와 같이 확인하면 된다.

AWS 서비스 목록중에 - EC2 선택 - 좌측 Load Balancers -

지금 사용하고 있는 로드밸런서들의 목록의 Tags 들을 확인해보면, 내가 BeansTalk 에서 만들었던 myapplication-env 태그를 확인한다. 그 로드밸런서의 이름을 기억해두고, Route53 에서 Alias 목록에서 선택해주면 된다.

 




3. 이제부터 HTTPS 연결을 해보도록 하겠습니다.

AWS - Elastic Beanstalk 에서, 만들어두었던 아래화면이 나올때까지 MyApplication의 환경을 선택합니다.  좌측에 Configuration 을 선택.

 




4. 여러 설중중에 Network Tier - Load Balancing 의 설정을 누릅니다.

 



5. Secure Listener port 를 443 으로 변경. SSL Certificate ID 에는, ACM 에서 발급받은 인증서를 선택해 줍니다.

Apply 를 누르면, Health 가 Pending 상태로 돌아가기 시작할것입니다.

 



6. 로드밸런서의 Listener 를 설정해줘야 합니다. 서비스들 중, EC2 선택.

 




7.  좌 하단에 Load Balancers, 목록중에서 지금 사용하는 로드밸런서 선택 - 중간에 Listeners 탭 - Edit 클릭.

 




8. Add 를 누르고, protocol은 HTTPS 로 선택해줍니다. 그리고 SSL Certificate 에 Change 버튼을 누릅니다.

 





9. Certificate Type -  ACM 을 이용한 인증서 - Certificate 목록에서, 발급받은 도메인의 인증서를 선택하고 - Save - Save 

 



완료 되었습니다.



그러면 HTTP 통신, HTTPS 통신 둘다 되는데요, HTTP으로 접근했을 때, HTTPS 로 리다이렉트 시키는 부분은 참... 몇가지 문제가 있습니다.




Comments