전체 보기
2️⃣

GithubActions로 CICD구축-AWS편 (with Springboot) (Atties프로젝트)

작성일자
2023/03/07
태그
INFRA
HIGHLIGHT
프로젝트
Atties
책 종류
1 more property
(중요) 본 포스팅은 앞에 GCP편에서 이어집니다. GCP편의 3-[1] 까지 보시고서 해당 포스팅을 보시면 됩니다!

1. (GCP편과 동일) 환경변수 설정

GCP편을 보고 와주세요! 내용이 완벽히 같습니다.

2. (GCP편과 동일) CI 구축

GCP편을 보고 와주세요! 내용이 완벽히 같습니다.

3. CD 구축

[1] (GCP편과 동일) docker image 생성하고 docker hub에 푸시하는 작업 자동화

GCP편을 보고 와주세요! 내용이 완벽히 같습니다.

[2] AWS EC2 instance 환경에서 해당 이미지 pull 받아와 배포하는 작업 자동화

주의할 점!
도커 허브 리포지토리는 꼭 Private으로 생성해주세요!
만일 public으로 생성하고 싶으시다면, github secret을 사용하지 않고 docker secret을 적용해줘야 하는 데 해당 블로그는 그 부분 내용까지 포함하고 있지 않습니다.

1) deploy.yml 파일에 아래 코드를 추가해줍니다.

# Deploy - name: Deploy uses: appleboy/ssh-action@master with: host: vm 인스턴스 외부ip username: ${{ secrets.SSH_USERNAME }} key: ${{ secrets.SSH_PRIVATE_KEY }} passphrase: ${{ secrets.SSH_PASSPHRASE }} envs: GITHUB_SHA script: | sudo docker login -u ${{ secrets.DOCKERHUB_USERNAME }} -p ${{ secrets.DOCKERHUB_PASSWORD }} sudo docker build -t 리포지토리이름 . sudo docker tag 리포지토리이름 유저네임/리포지토리이름:${GITHUB_SHA::7} sudo docker push 유저네임/리포지토리이름:${GITHUB_SHA::7} sudo docker-compose up -d
YAML
복사

2) ppk로 openSSHkey 파일 생성 (혹은 pem 파일 생성)

PuTTYgen에서 Load 클릭해서 기존에 aws ec2에 putty로 접속할 때 썼던 ppk 파일을 선택합니다.
혹시, ppk 파일이 없다면, aws > ec2 > 네트워크 및 보안 > 키 페어 > 키 페어 생성에서 ppk 파일을 생성해주세요.
Key passphrase에 원하는 비밀번호를 입력해주세요.
Conversions 탭을 눌러 ExportOpenSSHkey를 클릭해주세요.
생성된 openSSHkey 파일을 원하는 경로에 저장해주세요.

3) github에 환경변수 등록

SSH_PRIVATE_KEY라는 이름으로 아까 로컬에 저장해둔 openSSHkey(혹은 pem) 파일의 내용을 그대로 복사해와 붙여 넣어줍니다. (중요,,,,)
SSH_USERNAME라는 이름으로 아까 Key comment 내용을 넣어줍니다. ex) ubuntu
putty로 접속하실 때 ubuntu@public-ip로 접속하셨다면 @ 앞에 내용인 ubuntu을 넣어줍니다. 다른 것이었다면 다른 것으로 넣어주세요.
SSH_PASSPHRASE라는 이름으로 Key passphrase 내용을 넣어줍니다.(pem은 패스)

4) 커밋을 날려 제대로 배포되는지 확인합니다.

이번엔 3번째만에 성공했네요!
참고