본문 바로가기
프로그래밍/개발 상식 등

AWS 서버 배포 자동화 파이프라인을 구축

by 숙님 2022. 8. 9.
728x90

EC2인스턴스 생성 후 개발환경 구축 방법

$ sudo apt update

$ nvm install node 

$ sudo apt install npm

노드가 잘 설정되지 않을 경우에는 아래의 링크를 들어간다 

https://github.com/nvm-sh/nvm

 

GitHub - nvm-sh/nvm: Node Version Manager - POSIX-compliant bash script to manage multiple active node.js versions

Node Version Manager - POSIX-compliant bash script to manage multiple active node.js versions - GitHub - nvm-sh/nvm: Node Version Manager - POSIX-compliant bash script to manage multiple active nod...

github.com

이 부분 터미널에 입력하고 

curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.1/install.sh | bash

이 부분 입력하면 nvm 설정이 됨 

export NVM_DIR="$([ -z "${XDG_CONFIG_HOME-}" ] && printf %s "${HOME}/.nvm" || printf %s "${XDG_CONFIG_HOME}/nvm")"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm

 

EC2 인스턴스에 태그와 역할 부여

태그 부여하기 

EC2대시보드 이동 -> 인스턴스 이동 

태그 추가-> 자유롭게 이름 지은 후 저장(지은 이름들은 다 기억하기!)

새 IAM역할 생성-> 역할 만들기->AWS서비스, EC2선택 후 '다음권한'클릭 

검색창에서  AmazonSSMFullAccess, AWSCodeDeployRole 선택 

신뢰관계: 해당 역할을 취할 수 있는 서비스나 사용자를 명시하는 부분 

정책문서에서 "Service"의 값 수정 -> 생성한 IAM역할 선택 후 저장 

코드 수정 완료한 사진

EC2대시보드-> 보안 그룹->하단의 '보안 탭' 클릭 ->보안그룹 이동-> 보안그룹의 인바운드에 80과 443포트가 없다면 [인바운도 규칙 편집]버튼 클릭 및 이동->HTTP, HTTPS 유형의 위치를 무관으로 추가-> 규칙 저장 

*80번은 서버 배포를 위해 필요

*443은 CodeDeploy-Agent의 정상적인 작동을 위해 필요 

 

EC2를 활용한 파이프라인 구축

기존 레포지토리 최상위에 appspec.yml(배포 자동화를 도와주는 CodeDeploy-Agent가 인식하는 파일)파일 추가 

version: 0.0
os: linux
files:
  - source: /
# 아래 destination은 여러분이 해당 리포지토리를 클론한 위치로 설정해주세요.
    destination: ~/fe-sprint-practice-deploy

hooks:
  ApplicationStop:
    - location: scripts/stop.sh
      runas: root
  AfterInstall:
    - location: scripts/initialize.sh
      runas: root
  ApplicationStart:
    - location: scripts/start.sh
      runas: root

 

script디렉토리 생성 후 필요한 파일 설치(파이프라인에 올릴 소스 코드 준비)-> commit-> master로 push

AWS CodeDeploy대시보드에서 애플리케이션 클릭 

애플리케이션 생성-> 임의의 이름 입력-> 컴퓨팃 플랫폼을 'EC2/온프레미스' 선택 -> 생성 클릭 -> 애플리케이션 배포 그룹 클릭 -> 이름 임의로 작성 -> 서비스 역할 영역을 'EC2Role'로 선택 -> 환경 구성을 'Amazon EC2 인스턴스'선택->로드 밸런싱 활성화 체크 해제-> 배포 그룹 생성 클릭 

파이프라인 생성 버튼 클릭 -> 파이프라인 이름 입력 후 '다음' 클릭-> 소스 공급자를 'GitHub(버전2)'로 선택-> GitHub에 연결 -> 이름 임의 입력 후 '새 앱 설치'버튼 클릭-> 자신의 GitHub 계정을 클릭 -> 'only select repositories'를 선택 후 'save'를 클릭

개발자도구-CodePipeline-파이프라인-새 파이프라인 생성-빌드 스테이지 추가-빌드스테이지 건너뛰기 

배포 스테이지->'AWS CodeDeploy'선택-> 이름 선택, 배포 그룹 선택 

완료한 사진

 완료하면 된다!

 

댓글