OZ

[AWS] CI/CD 배포자동화

iun 2025. 2. 18. 20:47

I AM, 사용자 생성 (외부보안키)

콘솔창에서 "IAM" 검색 후 이동

* I AM: 외부에서 AWS 접근 허용을 위한 인증

 

 

 

사용자로 이동사용자 생성

 

 

 

사용자 이름은 하고자 하는 임의의 이름으로 하면 된다

 

 

 

권한 설정에서 "직접 권한 연결"을 클릭하면

권한 정책 설정이 추가로 열린다

S3full, CloudFront 각각 검색하여 FullAccess 체크생성

 

 

 

이제 생성한 사용자를 클릭하여

"보안 자격 증명" 탭으로 이동액세스 키 만들기

 

 

 

액세스 키 사용 사례를 "외부 실행 애플리케이션" 체크만 하고

나머지는 스킵하여 액세스 키 만들기

 

 

 

만들면 위처럼 액세스 키비밀 액세스 키를 보여주는데

이 값들은 해당 창을 나가면 다시 볼 수 없다 (까먹으면 재생성 해줘야한다)

액세스 키이기 때문에 절대 외부로 노출되어서도 안된다

 

그래서 창을 안 닫고 열어놓거나, 따로 적어놓을 것

 

 

 

 

GitHub Actions

gitHub 변수설정 

Github actions 툴을 사용할 것이기 때문에

Github 레포지터리  연결 후 변수설정하러

설정의 Actions으로 이동해준다

 

 

 

"New Repository secret"을 클릭하여

아까 확인한 액세스 키와 비밀 액세스 키를 추가해주면 된다

 

Name에는 임의의 변수명을

Secret에는 값을

 

 

 

위처럼 두개의 변수가 생성되면 잘 된거다

 

 

 

코드 편집기에서 파일 생성 

이제 최상단에

.github

└ workflows

    └ deploy.yml

이런 식으로 폴더를 생성하여 파일까지 만들어준다

 

* 폴더명은 절대 철자 하나 틀리면 안된다 (.github의 온점부분도 포함)

* 파일명은 임의로 지정해도 된다

 

 

 

# deploy.yml

name: Deploy To S3 And Invalidate CludFront

on:
  push:
    branches:
      - main

jobs:
  deploy:
    runs-on: ubuntu-latest
    steps:
      - name: Github Repository 파일 불러오기
        uses: actions/checkout@v4

      # - name: Repository 파일 출력하기
      #   run: ls

      - name: 빌드하기
        run: |
          npm install
          npm run build

      - name: AWS Resource에 접근할 수 있게 AWS 인증 설정
        uses: aws-actions/configure-aws-credentials@v4
        with:
          aws-region: ap-northeast-2
          aws-access-key-id: ${{secrets.AWS_ACCESS_KEY_ID}}
          aws-secret-access-key: ${{secrets.AWS_SECRET_ACCESS_KEY}}

      - name: S3 기존파일 삭제
        run: aws s3 rm --recursive s3://버킷이름

      - name: S3 새 빌드파일로 s3 객체 업로드
        run: aws s3 cp ./dist s3://버킷이름/ --recursive

      - name: CloudFront 캐시 무효화
        run: aws cloudfront create-invalidation --distribution-id 배포ID --paths "/*"

위는 deploy.yml 파일에 넣는 코드 전체다

 

현재 각자 알아와야할 정보는 아래와 같다

I AM 액세스키는 위에서 확인했기 때문에 S3와 CloudFront만 알아오면 된다

 

  • I AM: 액세스 키, 비밀 액세스 키
  • S3: 버킷이름
  • CloudFront: 배포ID

 

 

 

S3 적용하려는 버킷 이름을 확인한다

위의 자리에 넣어주면 된다

 

 

 

CloudFront 확인한 버킷 이름연결된 배포 ID를 확인한다

위 배포ID 자리에 넣어주면 된다

 

 

 

실행

코드에서 commit 후 push를 해주면

GitHub의 Actions탭에서 진행사항을 확인할 수 있다

 

(x표시는 에러로 실패했단 의미)

한 push에 한 칸 씩 위에서부터 뜬다

'OZ' 카테고리의 다른 글

GitHub와 AWS를 사용한 협업 사례  (0) 2025.02.19
[AWS] CloudFront  (0) 2025.02.13
[AWS] S3 배포하기  (0) 2025.02.12
[OAuth2.0] 카카오 / 네이버 로그인  (1) 2025.02.10
[OAuth2.0] 개념  (0) 2025.02.09