GitHub Actions
S3버킷 비우기, 정적 웹 호스팅 비활성화, 파이프라인 실습 리소스 삭제 (코드디플로이 애플리케이션과 배포그룹 삭제)
.yml
파일에 의해 구성, 여러개 워크플로도 만들 수 있다..github/workflows
디렉토리 이하에 위치.yml
)에 따라 깃헙 레포지토리에 특정 변동사항을 트리거로 작동appepec.yml
설정 파일에 의해 쉘 스크립트 등 단계에 따라 특정 동작을 함..yml
과 .sh
에 의해 각 배포 결과를 로그로 저장하며 빌드파일(.jar
)을 실행한다.레포지토리 공개로 생성하여 만들어둔 프로젝트 업로드
레포지토리에서 액션 탭 - 추천 워크플로 (Java with Gradle) 선택 - 기본 구성 그대로 워크플로 생성 start Commit -
🔐 오류
깃헙 액션에서 커밋하니 빌드 시 오류 발생
Error: Gradle script '/home/runner/work/practice-githubAction-deploy/practice-githubAction-deploy/gradlew' is not executable.
- 권한 문제로 생각됨.
git update-index --chmod=+x gradlew
명령어 입력이나,
gradle.yml 파일에 아예 추가 해서 해결
- name: Run chmod to make gradlew executable
run: chmod +x ./gradlew
레포지토리 - 세팅 - 시크릿 - 액션 탭 New repository secret - 액세스 키 ID 값과 비밀 액세스 키 값 각각 저장 - build.yml에 코드 추가
워크플로가 성공적으로 완료되면 S3 버킷에 압축파일이 전송됨.
- CodeDeploy 애플리케이션 생성
- 배포 - 애플리케이션 생성 - 이름 플랫폼 설정 - 배포 그룹 생성 - EC2 인스턴스 태그를 이용해 환경 구성 ( 오류 무시 )
- .yml 파일 설정
- 최상위 디렉토리에 appspec.yml 파일 생성
- script 디렉토리 생성 후 deploy.sh 파일 생성
- EC2 배포 진행 상황 별 로그 기록과 새로 배포된 빌드 파일 실행
- gradle.yml 파일에 Code Deploy 배포 명령 추가
- 수정하고 푸쉬하면 깃헙 액션이 실행됨.
- 배포 결과 확인
- 깃헙 액션이 실행되고 워크플로, CodeDeploy 배포가 모두 성공하면 배포 결과 확인 가능
EC2 인스턴스에서 퍼블릭 DNS로 접속하여 접근 가능 확인- EC2 인스턴스에서 actions 파일 들어가서 확인 가능
cat deploy.log
파일이나deploy_err.log
파일 확인 가능
- IAM Service
IAM이란?
https://docs.aws.amazon.com/ko_kr/IAM/latest/UserGuide/introduction.html
IAM 자격 증명(사용자, 사용자 그룹 및 역할)
https://docs.aws.amazon.com/ko_kr/IAM/latest/UserGuide/id.html
IAM 사용자
https://docs.aws.amazon.com/ko_kr/IAM/latest/UserGuide/id_users.html
IAM 사용자 그룹
https://docs.aws.amazon.com/ko_kr/IAM/latest/UserGuide/id_groups.html
IAM 역할 용어 및 개념
https://docs.aws.amazon.com/ko_kr/IAM/latest/UserGuide/id_roles_terms-and-concepts.html
AWS 서비스에 대한 액세스 권한 제공
https://docs.aws.amazon.com/ko_kr/IAM/latest/UserGuide/id_roles_common-scenarios_services.html
IAM의 정책 및 권한
https://docs.aws.amazon.com/ko_kr/IAM/latest/UserGuide/access_policies.html#access_policies-json
IAM의 보안 모범 사례
https://docs.aws.amazon.com/ko_kr/IAM/latest/UserGuide/best-practices.html