Github actions
1. 사실 이전에는 github에 그냥 올려 놓고, 변경 사항을 S3에 수동으로 직접 업로드 하는 작업으로 진행했습니다.
이제 마지막 단계인 github actions.. 최근 에이블스쿨 프로젝트 하느라 정신없이 하느라 이 단계를 못하고 있었는 데 시작해보았습니다.
일단, 저는 큰 폴더 아래에 하위 폴더로 .github/workflows를 만들고 그 아래에 deploy.yaml 파일을 생성했습니다.
2. 저는 일단 IAM 계정을 하나 생성해줬습니다. [원래는 슈퍼계정으로만 진행했음].
AmazonEC2FullAccess, AmazonS3FullAccess, AmazonRDSFullAccess 등의 권한을 가진 정책을 부여한 계정을 생성했습니다. 그리고 엑세스 키 ID와 시크릿 엑세스 키를 발급받고 따로 메모장에 저장해 놨습니다.
3. Github Repository -> Settings -> Secretes and variables -> Actions로 이동합니다.
4. 아까 발급받은 키를 New repository secret을 하나씩 추가해서 등록해줍니다. value에는 값만 들어가도록 하면 됩니다.
5. 제 로그를 보시면 총 21번 한 모습을 볼 수 있는데... 이게 어제.. 계속 오류가 떠서........ 사실 저는 aws-actions/configure-aws-crendentials@v1을 사용하려고 헀는데, 이게 계속 Region is not valid라고 뜨는 거에요.. 그래서 계속 구글링해보고, 찾아서 이걸 region을 secret으로 두지 않고, 그냥 바로 변수에 할당했는데도 오류가 발생해서.. 열심히 검색한 결과 https://github.com/jakejarvis/s3-sync-action S3 bucket과 Github Action과 Sync 해주는 것을 찾게 되었고.. 해당 코드를 입력하니까 바로 성공.. 그 성공이 얼마나.. 값지던지.. 한 2시간 넘게 사용한 것 같아요.. 괜히 오기가 생겨서 내가 이걸 꼭 해야겠다.. 했는데..
아무튼 여러분 해당 깃허브 참고하시면 될 것 같습니다. 저는 .git
6. 최종 deploy.yaml 파일 입니다. 저도 parameter에 대해서 좀 알아봤는데
• args: aws s3 sync 명령어에 전달할 추가 인수들을 지정합니다.
• --acl public-read: 업로드된 파일을 공개 읽기 권한으로 설정합니다.
• --follow-symlinks: 심볼릭 링크를 따라가도록 설정합니다.
• --delete: S3 버킷에서 로컬 디렉토리에 없는 파일을 삭제합니다.
저는 .git 폴더는 올리고 싶지 않아서 --exclude를 통해 빼고 올리도록 했습니다!! github보시면 상세하게 설명이 나와있으니 참고해도 좋을 것 같아요!
와.. 이렇게 배포까지 해봤는데, 처음알았습니다.. 진짜 이러한 기술까지... 여태 일일이 S3로 옮기고 있었는데 이런 기능까지 있어서 push 하면 자동으로 업로드 된다는 것이 진짜 신기했고, 마지막으로 DNS 설정을 아직 하진 못했는데.. 빠른 시일 내에 저만의 domain 주소를 구매해서 한번 최종으로 올려보도록 하겠습니다.. 이렇게 cloud-resume-challenge를 진행해봤는데, 간단한 프로젝트를 해보니까 확실히 여러 기능을 사용해보면서 와 클라우드가 정말 많은 기능이 있고, 이것을 다룰 줄만 안다면 정말 편리하겠다라는 생각이 들었습니다!