어제 팀원 분들과 다른 팀원 분들 몇 분에게 AWS EB
와 AWS ECR/Docker
와 GitHub Actions
로 배포하는 방법을 알려드렸다. 네 분의 화면을 실시간으로 확인하며 진행했는데 생각보다 오래 걸렸다.
우선 프론트 엔드 관련 파일들을 올릴 S3
생성과 Cloudfront
의 배포 생성을 하고 S3와 Cloudfront
를 연결시켰다. S3
에 프론트엔드 파일들을 업로드 시키고 Cloudfront
에 SSL
을 붙였다.
SSL
은 AWS ACM
에서 발급 받았고 가비아에서 도메인 구입 후 네임 서버를 가비아에서 AWS
로 변경하고 Route53
에서 DNS
인증을 진행했다.
Cloudfront
는글로벌 리전
에서 제공하는 서비스라서Cloudfront
에 적용하는SSL
은버지니아 북부 리전
에 생성해야 한다.
Cloudfront
기본 루트 객체
에 index.html
으로 설정하고 대체 도메인 이름에 www.도메인
으로 설정했다. 그리고 www.도메인
과 Cloudfront 주소
를 Route53
에서 연결했고 www.도메인
으로 접속했을 때 index.html
페이지가 잘 나왔다. 그러면 프론트 배포 작업은 끝났다.
이제 GitHub Actions
를 통해 AWS ECR
에 도커 이미지
를 push
하고 해당 이미지를 ECR
에서 가져와 AWS EB
에 배포하는 작업을 진행했다.
근데 모든 분들 다 한 번에 성공이 되지 않았다. 그래서 결국은 EB
환경, 애플리케이션 생성을 다시 하고 환경 변수
설정도 꼼꼼하게 다시 점검했다. 환경 변수 설정 후에 로드밸런서
에 헬스 체크
의 상태 코드
를 200
으로 설정하고 HTTPS 리스너
를 추가할 때 SSL
을 붙였다. 이 SSL
은 서울 리전
에 등록되어 있다.
다시 해본 결과 한 분은 성공했지만 한 분은 되지 않았다. 안 된 분은 VPC
를 살펴보니 예전에 인터넷 게이트웨이
를 삭제하셨던 적이 있었다. 그래서 인터넷 게이트웨이
를 새로 생성했다. 그리고 RDS
가 공격당했던 적이 있어서 보안 관련해서도 언급해드렸다.
GitHub Actions
가 잘 작동되고 배포가 잘 되었다. 하지만 HTTPS
에는 잘 되지 않아 여러 가지를 살펴본 결과 ACM
에서 발급 받은 SSL
을 보니 *.도메인
으로 되어있지 않고 그냥 도메인
으로만 되어 있었다.
그래서 다시 *.도메인
으로 발급 받아서 진행하니 정상적으로 작동했다!
어제 하루 동안 배포 관련 작업을 직접 해보실 수 있게 나의 지식을 다른 사람들에게 공유했다.
한 번에 되지 않아서 오래 걸리긴 했지만 뿌듯하기도 하고 의미 있는 시간이었다.
작업에서 다룬 내용들 (내가 작성했던 글을 자료로 사용)
https://velog.io/@rudwnd33/%EB%AC%B4%EC%A4%91%EB%8B%A8%EB%B0%B0%ED%8F%AC
https://velog.io/@rudwnd33/DB-%EB%8F%84%EB%91%91-%EC%9E%A1%EC%95%84%EB%9D%BC