AWS EC2와 Github Actions로 NEXT.JS 배포하기 (2)

dev_hyun·2023년 8월 26일
1

1. CodeDeploy Agent 설정하기

CodeDeploy Agent 를 설정해야 자동배포를 사용할 수 있다.

AWS 문서에 자세히 나타나있는데 명령어 그대로 사용하면 설치가 끝난다.

  1. 먼저 EC2 instance 에 접속한다.
  2. 다음 명령어를 차례대로 실행한다.
sudo apt update

sudo apt install ruby-full

sudo apt install wget
  1. 그 후 ubuntu 폴더에 접근한다.
cd /home/ubuntu
  1. bucket-name과 region-identifier 에 따른 설치
wget https://bucket-name.s3.region-identifier.amazonaws.com/latest/install

bucket-nameregion-identifier 는 동적인 값이며
여기서 확인이 가능하다.

Seoul의 경우

wget https://aws-codedeploy-ap-northeast-2.s3.ap-northeast-2.amazonaws.com/latest/install

이렇게 진행하면 된다.

  1. Ubuntu 버전에 따른 명령어 실행
  • 20 버전을 제외한 경우
sudo ./install auto

// region-identifier는 여기서도 동적
aws s3 ls s3://aws-codedeploy-region-identifier/releases/ | grep '\.deb$'

// codedeploy-agent 버전을 설치
sudo ./install auto -v releases/codedeploy-agent-###.deb
  • 20 버전인 경우
sudo ./install auto > /tmp/logfile

// region-identifier는 여기서도 동적
aws s3 ls s3://aws-codedeploy-region-identifier/releases/ | grep '\.deb$'

// codedeploy-agent 버전을 설치
sudo ./install auto -v releases/codedeploy-agent-###.deb > /tmp/logfile
  1. 설치된 것 확인
sudo service codedeploy-agent status

다음 명렁어를 실행했을 때
The AWS CodeDeploy agent is running. 가 보이면 정상적을 설치된 것이다.

만약 실행이 되지 않는다면, start 명령어를 통해 시작하기를 바란다.

sudo service codedeploy-agent start
sudo service codedeploy-agent status

2. S3 생성

S3란?

Amazon Simple Storage Service (Amazon S3) is an object storage service that offers industry-leading scalability, data availability, security, and performance. Customers of all sizes and industries can use Amazon S3 to store and protect any amount of data for a range of use cases, such as data lakes, websites, mobile applications, backup and restore, archive, enterprise applications, IoT devices, and big data analytics. Amazon S3 provides management features so that you can optimize, organize, and configure access to your data to meet your specific business, organizational, and compliance requirements.

Amazon Simple Storage Service(Amazon S3)는 업계 최고의 확장성, 데이터 가용성, 보안 및 성능을 제공하는 객체 스토리지 서비스입니다. 모든 규모와 업종의 고객은 Amazon S3를 사용하여 데이터 레이크, 웹 사이트, 모바일 애플리케이션, 백업 및 복원, 아카이브, 엔터프라이즈 애플리케이션, IoT 장치, 빅 데이터 등 다양한 사용 사례에 대해 원하는 양의 데이터를 저장하고 보호할 수 있습니다. 해석학. Amazon S3는 특정 비즈니스, 조직 및 규정 준수 요구 사항을 충족하도록 데이터에 대한 액세스를 최적화, 구성 및 구성할 수 있도록 관리 기능을 제공합니다.

S3에 정적인 프로젝트 빌드 파일을 저장해놓고 이걸 EC2인스턴스에서 실행한다. 이때 S3에 있는 파일들을 EC2로 옮겨서 실행시키는 역할을 Code Deploy가 수행한다.

2-1. 버킷 생성하기

S3의 버킷 생성하기에 들어가서 자신이 설정할 버킷 이름과 region을 선택한 뒤
이 버킷을 퍼블릭에서 접근할 수 있을지 아닐지 선택한 뒤 생성하면 끝이다.

나는 버전관리는 활성화 하지 않았다.

3. Code Deploy 생성하기

이제 Code Deploy를 생성해 S3의 파일을 EC2에 옮기도록 해줘야 한다.


배포 그룹 생성을 클릭해 배포그룹을 만들어 준다.


배포 그룹 이름을 생성하고 서비스 역할을 누르면 전에 CodeDeploy 권한이 있는 역할이 뜨는데 해당 역할을 선택해주면 된다.

다음으로 EC2 인스턴스를 선택해주면 된다.
EC2 를 만들었으므로 선택하면 생성한 인스턴스가 노출될 것이다.

배포 설정은 3개의 선택지가 있으며 나는 ALlAtOnce 로 설정하였다.

  • CodeDeployDefault.AllAtOnce : 한 번에 가급적 많은 수의 인스턴스에 배포
  • CodeDeployDefault.HalfAtATime : 최대 절반의 인스턴스 (분수는 반내림) 에 한번에 배포
  • CodeDeployDefault.OneAtATime : 한 번에 하나의 인스턴스에만 배포

로드 밸런서와 에이전트 구성은 Default 구성으로 그대로 진행하였다.

이제 AWS의 필요한 기본적인 세팅은 모두 완료되었다.

다음에는 Github에서 설정해줘야 하는 것들을 알아보겠다.

profile
하다보면 안되는 것이 없다고 생각하는 3년차 프론트엔드 개발자입니다.

0개의 댓글