티스토리 뷰

배포 전 상황설명

  적절한 단어가 생각나지 않아 상황설명이라고 써놨습니다.. 볼 사람이 있는진 모르겠지만.. 개떡같이 말해도 찰떡같이
  알아들으시겠지..

  • 현재 ver1.0 의 웹 어플리케이션은 8082번 포트에서 실행중입니다.
  • github master 브랜치에 push된 것은 ver1.1 의 웹 어플리케이션입니다.
  • ver1.1 의 웹 어플리케이션을 중단 없이 배포하는 것이 목표입니다.

배포 동작 과정 설명 전.. 알고있으면 좋은 것

  너무나 당연한건데 왜 설명을 써놓을까 싶지만.. 자꾸 책에 있는 그대로 따라치기만해서 나중에 머리에 안남길래 기록해본다.

 
  • IAM 에서 사용자와 역할의 차이점은?
     
    AWS 공식문서에서 사용자는 AWS와 상호 작용하기 위해 해당 엔티티를 사용하는 사람 또는 어플리케이션이라고 설명되어있다.
    우리가 카카오 지도나 외부 API를 사용할 때 API KEY를 발급받는데 사용자와 같다고 보면 된다. 내가 S3에 파일을 업로드 하는
    어플리케이션을 만들고 싶으면 IAM 에서 사용자를 만들 때 S3에 업로드 할 수 있는 권한만 준다. 그러면 사용자에 대한 API
    KEY가 발급되고 어플리케이션을 만들 때 해당 키를 사용해서 S3에 업로드 하는 기능을 구현할 수 있다.
    사용자가 특정된 사람에게 주어진다면 역할은 필요한 사람이라면 누구나 맡을 수 있다.

배포 동작 과정

  1. 개발자는 새로운 기능을 구현한 후 master 브랜치에 push를 한다. 프로젝트에 .travis.yml 이 있다면 Travis CI는 자동으로 해당 프로젝트에 대한 빌드를 시작한다.
  2. Travis CI는 빌드된 파일을 Access Key 와 Secret Key를 이용하여 지정된 S3 버킷에 업로드를 합니다.
  3. Travis CI는 Access Key 와 Secret Key를 이용하여 Codedeploy에게 S3 버킷에 있는 파일에 대한 배포요청을 한다.
  4. Codedeploy는 저장할 수 있는 기능이 없다. 그리고 Codedeploy가 실행되려면 EC2 에 Codedeploy Agent를 설치해야한다. EC2에서 Codedeploy agent를 통해 배포해야할 파일을 S3로부터 받아온다. Travis CI는 사용자를 생성할 때 S3 Full Access 정책과 Codedeploy Full Access 정책을 주었기 때문에 Travis CI에서 S3에 파일을 생성과 배포요청을 할 수 있고, Codedeploy의 역할에 AWSCodeDeployRole을 주었기 때문에 EC2에서 배포가 가능하다.
  5. Codedeploy의 appspec.yml을 읽고 배포를 시작하게 된다.
  6. 현재 8082포트에서 ver1.0 어플리케이션이 real1 설정파일과 함께 동작중이고 Nginx 와 8082포트가 연결된 상태다. 만약 8082포트에 배포를 하게 되면 8082포트에 실행중인 ver1.0 어플리케이션을 멈춘 뒤 ver1.1을 배포해야한다. 무중단 배포를 해야하므로 8082를 중단시키지 않고 8083으로 배포하면 된다.
  7. codedeploy는 appspec.yml 설정파일을 읽고 배포를 시작한다.
  8. 먼저 Nginx와 연결되지 않은 8083포트에 배포를 할 것이기 때문에 8083 포트에서 실행중인 애플리케이션이 있다면 종료시켜준다.
  9. S3에서 받아온 파일에 실행 권한을 줘서 빌드된 파일을 실행시킨다.
  10. 실행이 잘 되었는지 확인한 후 8082포트와 Nginx 연결을 끊고 8083 포트와 연결시키면 무중단 배포에 성공하게 된다.

'TIL' 카테고리의 다른 글

[OS] 프로세스 교환을 유발하는 인터럽트와 트랩  (0) 2022.02.04
[OS] 프로세스 상태  (0) 2022.02.03
[OS] 운영체제와 프로세스  (0) 2022.02.02
[CI/CD] 배포 자동화 설정 파일  (0) 2021.12.24
[CI/CD] 배포 자동화  (0) 2021.12.23
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/07   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31
글 보관함