min

https 와 aws ec2 , code deploy , iam 에 대하여.... 본문

컴퓨터 과학

https 와 aws ec2 , code deploy , iam 에 대하여....

minprogramming 2023. 12. 2. 20:57

<회고록>

오늘은 https 연결과 관련해서 작성해볼려고 한다. 먼저 확실하게 집고 가야할 점은 https에 대한 지식이 아니라 aws 서비스를 이용해서 내가 만든 node js 프로젝트를 instance 화 시키고 이 instance에 https를 부여하는 방법에 대해서 저술할 것이다.

 

1. s3에 대하여....

먼저 s3에 대해서 집고 넘어가자. s3는 정적 파일을 배포하는 서비스이다. 여기서 말하는 정적 파일은 내가 만든 node js 프로젝트를 말한다. 이를 왜 구지 s3에 올리는 지 궁금하실 수 있다. 이를 이해하기 위해서는 aws라고 하는 서비스에 대한 관점에서 이야기를 해야한다. aws는 가상 클라우드 (컴퓨터)인 ec2라는 서비스를 가지고 있다. 여기서 ec2에 내가 만든 프로젝트를 넣으려면 aws에 다른 서비스를 이용해서 정적 파일을 넣어놔야 한다. 이 때 이 서비스가 s3이다. 그래서 우린 s3라고 하는 서비스에 정적 파일을 올려야 한다.

 

2. codedeploy에 대하여....

우리는 첫번째 과정을 통해서 s3에 정적 파일 배포를 완료했다. 그다음으로 해야 하는 것은 무엇일까? 바로 s3에 있는 정적 파일을 ec2 instance에 올려주는 작업을 해야한다. 그리고 이 중간다리 역할을 하는 친구가 codedeploy이다. 이 codedeploy를 통해서 우린 정적파일을 instance에 올려줄 수 있다. (즉 가상 컴퓨터에 프로젝트를 올릴 수 있는 것이다.)

 

3. ec2에 대하여....

이제 두번째 과정을 통해서 ec2 instance에 정적파일이 올라갔을 것이다. 여기서 우린 ec2 instance에 대해 명확하게 집고 넘어갈 필요가 있다. 이때 ec2 instance는 우리가 일반적으로 사용하는 컴퓨터라고 생각하면 편하다. 하지만 여기서 집고 넘어가야할 점은 하나의 "가상" 컴퓨터 정확히 말하면 aws에 존재하는 수많은 컴퓨터들 중에서 하나를 사용하는 것이다. 즉 우린 컴퓨터를 빌려서 진행하는 것이다. 

 

4. CI / CD에 대하여...

자 이제 1 ~ 3번째 과정을 보면 이제 큰 그림을 그려졌을 것이다. 하지만 여기서 문제는 이 과정들을 어떻게 자동화할 것이다. 우린 이과정을 github에 gitaction을 통해서 해결할 수 있다. gitaction은 깃허브에 커밋 / 푸시를 할 경우 자동적으로 내가 만든 script를 실행하는 명령어이다. 이를 통해서 우린 자동적으로 1 ~ 3번째까지의 과정을 반복할 수 있다. 

 

5. https 연결에 대하여...

이제 1 ~ 4번째 까지의 과정을 반복하면 http 연결까지는 완료할 수 있을 것이다. 이제 여기서 우리가 해야하는 것은 https를 연결하는 것이다. https는 알다시피 ssl 인증서를 필요로 한다. 그래서 우린 ssl 인증서를 먼저 받아야한다. 이때 인증서를 받는 방법은 다음과 같다.

sudo apt update

sudo apt-get install letsencrypt

sudo apt-get install python3-certbot-nginx

sudo certbot --nginx -d ${{ domain name }}

 

위 과정을 반복하면 certbot이 자동으로 conf 파일에 443 포트 연결 및 proxy_pass를 해준다.

'컴퓨터 과학' 카테고리의 다른 글

Content-type에 대하여...  (0) 2023.08.16
브라우저의 작동 방식에 대하여...  (0) 2023.08.15
RESTful api에 대해서...  (1) 2023.06.15