티스토리 뷰
지난 글에서는 깃헙액션, 워크플로우에 대해 알아보았다. 이번에는 aws 관련 설정들을 알아보겠다.
그전에 먼저 대략적인 흐름을 설명하겠다. 원래 배포를 할때는 ec2를 생성하고 기본 우분투 설정, npm, nodejs, db설치를 한 뒤, git clone을 하고 env파일 설정, npm install, npm start, service nginx start등의 명령어 몇개로 서비스를 배포하고 git pull을 통해 앞선 작업들을 비슷하게 반복하고 필요하다면 pm2 등을 이용해 무중단 배포를 한다. 이건 가장 기본적인 흐름이다. 그리고 조금더 발전된 것이 크론탭을 이용한 자동배포다. 크론탭을 이용한 자동배포는 어렵지 않으니 모른다면 한번쯤 보고 넘어가자.
https://ms3864.tistory.com/376
깃헙액션에서는 s3와 codedeploy, ec2를 이용한다. 간단하게 말해서 s3에 파일을 압축해서 올리고 codedeploy를 이용해 ec2에 뿌려주는 것이다.
1. EC2 생성
먼저 인스턴스를 생성하자. 당연하지만... 잘 모른다면 아래글을 읽어보자
https://ms3864.tistory.com/372
2. S3 생성
그냥 S3 버킷들어가서 생성하면 된다. 퍼블릭 설정이라던가 그런것들을 안하기 때문에 진짜 그냥 만들면 끝이다. 버킷 이름만 신경써서 지어주자. 이건 필요하니까
3. EC2에 Codedeploy 에이전트 설치
사실 아래 링크를 보고 따라하면 된다. 그래도 편의상 코드를 적어두겠다. 참고로 내 우분투는 20버전이다
sudo apt update
sudo apt install ruby-full
sudo apt install wget
cd /home/ubuntu
wget https://bucket-name.s3.region-identifier.amazonaws.com/latest/install
chmod +x ./install
sudo ./install auto > /tmp/logfile
# 실행중인지 확인
sudo service codedeploy-agent status
# CodeDeploy 에이전트가 설치되어 실행 중이면 과 같은 메시지가 표시되어야 합니다.The AWS CodeDeploy agent is running.
# error: No AWS CodeDeploy agent running과 같은 메시지가 표시되면 서비스를 시작하고 다음 두 명령을 한 번에 하나씩 실행
sudo service codedeploy-agent start
sudo service codedeploy-agent status
4. EC2 IAM 설정
ec2가 s3와 codedeploy를 이용할 수 있도록 권한 설정을 해줘야 한다. 아래 링크를 들어가서 하면 된다.
https://console.aws.amazon.com/iamv2/home#/roles
IAM - 액세스 관리 - 역할 - 역할 만들기
AWS 서비스 - EC2 - 다음
1. AWSCodeDeployFullAccess
2. AmazonS3FullAccess
두 개의 권한 체크
다음에 태그는 안적어도 된다. 나는 안적었다. 마지막으로 역할이름을 적고 역할을 만들면 된다.
이제 IAM을 EC2에 연결하면 된다.
5. CodeDeploy IAM 설정
위와 비슷하게 IAM을 하나 더 만들어준다.
그대로 다음
이번에도 태그는 넘기고 이름만 잘 적어주자
5. CodeDeploy 어플리케이션 생성
이름만 정하고 EC2만 선택하면 간단하게 애플리케이션 생성
이제 배포그룹을 생성하자
서비스 역할에는 아까 만든 EC2 IAM을 입력하면 된다.(자동완성된다 ㅎㅎ)
Amazon EC2 인스턴스를 선택하고 태그에 Name, 값에 아까 만든 EC2 인스턴스 Name을 입력한다.
배포구성은 그대로 두면 되고 로드밸런싱 활성화를 취소한다.
6. AWS IAM 사용자 추가
이제 깃헙 액션이 s3에 접근하여 파일을 업로드할 수 있도록 IAM 사용자 추가 및 권한 설정을 한다.
https://console.aws.amazon.com/iamv2/home#/users
아까는 역할이고 이번에는 사용자다.
액세스 키 -프로그래밍 방식 액세스를 선택하자
기존 정책 직접 연결에서 아까 선택한것처럼
1. AWSCodeDeployFullAccess
2. AmazonS3FullAccess
두 개의 권한 체크
이렇게 생성하면 Access key ID, Secret access key가 나오고 를 csv파일로 저장할 수 있다.
너무 글이 길어졌다... 다음글에서...
참조글
'devops' 카테고리의 다른 글
npm 배포하기 (0) | 2021.11.02 |
---|---|
github action으로 ec2에 자동배포하기3 (5) | 2021.10.18 |
github action으로 ec2에 자동배포하기1 (2) | 2021.10.18 |
리눅스(우분투) 자동 배포하기(aws ec2) (0) | 2021.08.07 |
nginx에 웹서버 띄우기(spa) (0) | 2021.08.07 |