ASW CLI로 자동화 배포 하기

복준우·2023년 3월 13일
0

aws s3

목록 보기
2/4

ASW CLI란?

AWS CLI는 AWS 콘솔에서 수행할 수 있는 대부분의 작업을 명령 줄에서 수행할 수 있는 오픈 소스 도구이다. CLI를 사용하면 EC2 인스턴스를 시작하고 중지하며, S3 버킷을 관리하고, IAM 사용자를 만들고, CloudFormation 스택을 배포하고, 다양한 AWS 서비스에 대한 쿼리를 수행하고, API Gateway를 설정하는 등 다양한 작업을 자동화할 수 있다. CLI를 사용하면 쉘 스크립트나 배치 파일에서 작업을 자동화하거나 AWS 서비스를 다른 자동화 도구와 통합하는 데도 유용하다.

설치

brew install awscli

Security credentials 에서 Access Keys 발급 받기

기존에 빌드된 파일을 삭제하고 새로 빌드 된 파일을 업로드해 자동화를 진행하는 과정이다

1. Access Key키 만들기

AWS 프로그래밍 방식으로 사용할 때, API 호출을 할 때 Access Key를 이용해 로그인하는 과정

2. Retrieve access keys

Access Key - 로그인 아이디라고 생각하면 된다

Secret Access Key - 비밀번호라고 생각하면 된다. Secret Access Key는 유출 되면 안되는 정보이다. 완료 버튼을 누르게 되면 다시 확인이 불가하기 때문에 .csv파일로 저장을 하는 방법을 추천한다.

터미널 설정

AWS CLI의 기본 프로필 설정

이 명령은 액세스 키, 비밀 액세스 키, 기본 리전 및 출력 형식을 입력할 수 있는 프롬프트를 연다. 정보를 입력하면 기본 프로필이 설정되며 프로필을 지정하지 않고도 aws 명령을 사용할 수 있게 된다.

  • 터미널에 명령어를 입력한다
aws configure
  • AWS Access Key ID [None]
저장한 access key를 입력 //예시)AKIAXZD43NC6JGUY3A6C
  • AWS Secret Access Key [None]
저장한 Secret Access Key를 입력 // 중요한 정보이므로 유출되지 않도록 한다.
  • Default region name [None]
ap-northeast-2 //서울서버
  • Default output format [None]
엔터로 넘어간다
// 엔터를 입력하면 기본 출력 형식이 지정되지 않아, AWS CLI에서는 응답을 기본값인 JSON 형식으로 출력
  • aws cli 명령어를 통해 버킷에 접근
aws s3 ls s3://<버킷이름> //예시)aws s3 ls s3://quzi

Sync란

aws s3 sync명령은 로컬 디렉토리와 Amazon S3 버킷 간의 동기화를 수행 즉, 로컬 디렉토리와 S3 버킷 간의 파일 또는 폴더 구조가 동기화되는 것이다.

aws s3 sync <source> <destination> [options]
<source>는 로컬 디렉토리의 경로
<destination>S3 버킷의 경로
[options]은 선택적으로 추가 설정을 지정할 수 있는 옵션

즉 나의 경우는 아래와 같이 작성하면 실행된다
aws s3 sync build/ s3://quzi --delete
  • [options]
    • -acl: 복사한 객체에 대한 S3 객체 ACL(Access Control List) 설정
    • -delete: <source>에는 없지만 <destination>에 있는 객체 삭제
    • -exclude: 특정 파일 또는 폴더를 동기화에서 제외
    • -include: 특정 파일 또는 폴더를 동기화에 포함
    • -dryrun: 동기화를 시도하지 않고 동기화 작업의 결과만 출력
    • -size-only: 파일 크기만 확인하고 변경된 파일을 동기화하지 않음
    • -no-sign-request: 요청에 서명하지 않고 전송
    • -profile: 사용할 AWS 프로필 지정
    • -region: 사용할 AWS 리전 지정

--delete 옵션을 이용해 기존 파일을 삭제한 후 재 업로드하여 정상적으로 실행된 경우이다.

이제 AWS S3에서 파일을 삭제하고 업로드하는 과정을 명령어로 간단하게 처리할 수 있게 됐다.

추가로 package.json 에 명령어를 추가해 React 프로젝트에서 바로 처리할 수 있다.

"deploy": "npm run build && aws s3 sync build/ s3://quzi --delete"

위의 명령어를 실행하면 npm run build 명령어로 React 프로젝트를 빌드한 후, aws s3 sync 명령어를 사용하여 빌드된 파일들을 S3 버킷으로 업로드하고, 이전 버전 파일들은 --delete옵션을 이용해 삭제하는 과정이다.

출처

원티드 프리온보딩 9차 참여 과정

profile
사람들에게 하나의 문화를 선물해줄 수 있는 프로그램을 개발하고 싶습니다.

0개의 댓글