본문 바로가기

DevOps

GitLab CI/CD로 AWS S3에 배포 설정(Deploy to AWS S3 using GitLab CI/CD)

반응형

1. 프로젝트 관리를 현재 gitlab을 사용하고 있기 때문에 CI/CD 설정도 깃랩으로 하기로 했다.

2. 처음 배포 설정을 해보는 거라서 그런지 기존 배포 관련 글들에는 빌드하는 과정도 포함 되어 있어서 좀 복잡해지는 느낌이 있는것 같아서 여기서는 딱 [깃랩 레포지토리] => [S3]로 배포하는 방법만 정리해둔다.

 


1. GitLab계정 만들고 레포지토리 만들기

2. AWS 계정 만들고 S3 버킷 만들기

(1, 2는 검색 조금만 해보면 바로 만들 수 있기 때문에 설명하지 않음)


3. 변수 설정해주기

깃랩에서 좌측 메뉴의 Settings > CI/CD로 들어간다

 

그럼 이렇게 변수 항목이 있는데 여기에 4가지 변수를 설정해줘야 한다 Expand 누르기

 

이렇게 네가지를 이제 AWS에서 찾아다가 Add variable 해주면 된다.

Key와 밸류만 입력해서 등록하면 된다.

 

 

1) AWS_ACCESS_KEY_ID

2) AWS_SECRET_ACCESS_KEY

를 얻기위해 AWS에서 IAM(Identity and Access Mgmt) > Users로 들어간다

여기에서 s3에 배포권한을 가진 user를 생성해서 그 유저의

AWS_ACCESS_KEY_ID

AWS_SECRET_ACCESS_KEY

이 두 가지 값을 사용하도록 하겠다.

 

Add users를 해주고

 

원하는 유저 이름 입력하고

Programmatic access에 체크해주고 넥스트

 

 

Attach existing policies directly를 선택하면 아래 리스트가 나오는데

AmazonS3FullAccess를 찾아서 선택해주고 다음으로

 

아무것도 넣지 않고 다음으로

 

입력내용 확인하고 다음을 누르면

 

AWS_ACCESS_KEY_ID = Access key ID

AWS_SECRET_ACCESS_KEY = Secret access key

위 두가지를 각각 복사해서 GIT CICD 변수 설정에 추가해준다

 

 

3)AWS_DEFAULT_REGION

4)S3_BUCKET

AWS_DEFAULT_REGION : AWS리전 정보에 [ap-northeast-2] 뒷 쪽에 이 부분만 입력해주면 된다.

S3_BUCKET : 버킷 네임을 입력 

 


4. 파이프라인 설정해주기

레포지토리에 bulid라는 폴더를 만들어줬고 그 안에 index.html이라는 파일을 작성해 주었고

이걸 GitLab CI/CD로 S3에다가 바로 배포해보기로 했다.

 

build 폴더 아래에 .gitlab-ci.yml이라는 파일이 있는데 이건 깃랩에서 ci/cd설정해주면 생성되므로 따로 만들거나 할 필요가 없다.

 

좌측 메뉴를 보면 이렇게 리스트가 나오고 CI/CD > Editor 로 들어간다

 

만들기

 

그러면 뭐가 엄청 적혀있는데 지우고 아래 소스를 추가 해준다

 

deploy to s3:
  stage: deploy
  image:
      name: amazon/aws-cli
      entrypoint: [""]
  script:
    - aws --version #version chk
    - aws s3 sync build s3://$S3_BUCKET # s3 sync [Source_DIR] [Bucket_DIR]

디테일한 배포 설정이 필요하다면 aws-cli명령어를 script쪽에 추가해주면 될 것 같다

 

설정을 끝내고 commit changes를 입력하면 바로 자동으로 수행을 하게 된다

그리고 레포지토리 톱 페이지로 이동하면 상단이미지 같은 아이콘이 생기는데

아이콘을 클릭하면

 

현재 등록된 파이프라인이 나오고 현재 상태를 보여준다.

 

-끝-

반응형