Nodejs

LINE Bot 만들기 - 2. AWS 서버 & SSL 인증서

La.place 2016. 10. 29. 14:47

 앞에서 설명한 callback URL에 등록할 서버를 만들어 보도록 합시다. Messaging API는 https 프로토콜을 사용해야 하기 때문에 SSL 인증서가 필요합니다. 여기서 SSL인증서는 comodo 업체의 인증서를 사용해서 만들어 보도록 하겠습니다.



AWS 서버 구축하기


 아마존 웹 서비스(AWS)는 처음 가입하면 12개월 무료로 사용할 수 있는 프리티어 서비스를 제공합니다. (쉽게말하면 12개월 공짜!) 우리는 AWS 프리티어 서비스 중 EC2 라는 클라우드 서버 서비스를 사용해서 우리의 봇 서버를 돌려보도록 하겠습니다.


1) AWS 가입하기

 이미 계정이 있으신분들은 이부분은 넘어가셔도 좋습니다. 이 포스트에서는 가입하는 부분은 다른 분들이 작성하신 포스트를 참조하도록 하겠습니다. AWS 가입하기 포스팅(http://wingsnote.com/50)을 참고하여 아마존에 회원 가입을 합니다.

 AWS의 경우 사용한 만큼 월말에 요금을 결제하는 방식입니다. 또 AWS의 경우 12개월 프리티어가 끝나면 자동으로 유로로 전환됩니다. 이 때문에 유료로 전환된지 모르고, 나중에 요금폭탄을 맞는 경우도 종종 있습니다. 따라서 요금 폭탄을 피하기 위한 팁을 정리한 포스트 몇개를 공유해 보도록 하겠습니다.


 - AWS 요금 폭탄 피하기 팁 (http://gun0912.tistory.com/45)

 - AWS 요금 Alarm 설정하기 (https://brunch.co.kr/@sunghyunlim/12)


2) EC2 Instance 생성하기

 인스턴스를 생성하기 전에 지역을 설정해 주도록 합니다. 지역에 따라 latency가 다르기 때문에 서비스 하는 장소와 가까운 지역을 선택하는게 좋습니다. 저는 아시아 대한민국에 살고있기 때문에, 서울 리전을 선택하도록 하겠습니다.

맨 위에 네이비게이션 바에서 오른쪽 끝에서 두번째 버튼을 누르면 지역을 선택할 수 있습니다. 여기서 Asia Pacific(Seoul)을 선택하도록 하겠습니다.  




  인스턴스를 만들기 전에 서버에 접속할 프로토콜 설정을 해주어야 합니다. Security Groups 버튼을 클릭한 후 사용할 프로토콜의 포트번호와 IP주소를 등록합니다. 이때 만든 보안 그룹 설정은 EC2 인스턴스를 만들 때 6. Configure Security Group 스텝에서 적용합니다.





 지역을 선택했으면 이제 EC2 인스턴스를 만들어 보도록 하겠습니다. EC2 페이지에서  Launch Instance 버튼을 클릭하여 새로운 인스턴스를 생성합니다.


가운데 Launch Instance 버튼 클릭


여기서는 Ubuntu Server 14.04 LTS (HVM), SSD Volume Type을 사용하도록 하겠습니다. 우분투를 선택한 후 2번째 스텝으로 넘어간 후에 default로 설정되어있는 t2,micro를 사용합니다. 다음으로 Review and Launch 버튼을 눌러 EC2 Instance를 만듭니다.


Ubuntu Server 14.04 LTS (HVM), SSD Volume Type 클릭


프리티어는 Default로 설정되어있는 인스턴스 타입을 사용하도록 하겠습니다.




아까 만든 Security Group을 적용합니다.



마지막 Step 7에서, 선택한 사항들이 맞는지 확인한 후 Launch버튼을 누르면 다음과 같은 화면을 볼 수 있습니다.

ssh를 이용하여 접속할 때 필요한 공개키를 만드는 과정입니다. create a new key pari를 선택한 후, 키이름을 입력한다음 다운받습니다. 생성된 ,pem파일은 서버에 접속할때 꼭 필요한 파일이므로 다른사람에게 노출되지 않도록 잘 보호하도록 해야 합니다.




EC2 Instance를 생성한 후 Instance tab을 선택하면, 생성된 서버를 볼 수 있습니다. 서버에 접속하는 방법은 Connect 버튼을 누르면 자세히 나와있으니 설명은 생략하도록 하겠습니다.




SSL 인증서 발급받기


이제 Https 프로토콜을 사용하기 위해 인증서를 구매해 보도록 하겠습니다. 

저는 https://www.namecheap.com/ 페이지에 접속해서 $9 인증서를 구매했습니다. 인증서를 구매한 후 인증절차를 거칠 때 도메인이 필요합니다. 따라서 도메인이 없으신 분들은, 도메인 대행 사이트에서 도메인을 구매해 주시길 바랍니다.


namecheap 페이지에서 security > SSL Certificates 탭으로 이동한 후 9$인증서를 선택해 구매합니다.



인증서 구매후 Account > Dashboard > ProductList에 보시면 구매한 인증서를 확인하실 수 있습니다. 해당 인증서를 클릭한 후 활성화 시킨다음 인증서를 사용할 도메인을 등록합니다. 도메인 등록에 필요한 정보들과 CSR코드를입력합니다. CSR 코드는 openSSL을 이용해서 만들 수 있습니다.


CSR 코드 만들기(https://support.rackspace.com/how-to/generate-a-csr-with-openssl/)


등록이 완료되면, 우리가 만든 서버에서 도메인 최상위 페이지(root)에 접속했을 때 인증 기관에서 발급한 txt파일을 읽어 불러와지도록 설정 합니다. 이 과정을 거쳐 인증이 완료되면 https 프로토콜을 사용할 준비가 끝나게 됩니다.


더 자세한 내용은 Comodo SSL Http인증(https://www.comodossl.co.kr/products/comodo-ssl-dcv.aspx)페이지를 참고하시길 바랍니다.




'Nodejs' 카테고리의 다른 글

Hello Nestjs  (1) 2019.04.04
React Server Side Rendering  (5) 2017.04.30
nodejs error handling  (0) 2017.04.23
LINE Bot 만들기 - 3. Nodejs 서버 만들기  (4) 2016.10.29
LINE Bot 만들기 - 1. 시작하기  (1) 2016.10.22