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 |