이 글은 공부를 하면서 알게 된 내용들을 기록하는 글 입니다. 오류나 고쳐야 할 사항들이 있다면 지적 부탁드립니다!
✅ 목표
이전 포스팅에서 Github Actions, AWS EC3 & S3 & CodeDeploy를 통해 배포 자동화하는 방법을 알아보았다.
✅ Gabia 도메인 구매
- 가비아에서 도메인 구매 - gitget.co.kr로 구매 (2024/04/10)
- My 가비아 -> DNS 관리툴 -> 수정하고자하는 도메인 선택 -> DNS 설정 -> 레코드 추가
- 타입 CNAME, 호스트 www, 값/위치: 구매한 도메인
값 api, 호스트 api,
✅ Route 53
1. AWS Route 53에 접속 - 호스팅 영역 - 호스팅 영역 생성 (호스팅 영역 이름에 구매한 도메인 입력)
2. 레코드 중 유형이 NS인 것을 확인할 수 있는데 거기에서 “값/트래픽 라우팅 대상”이 4개 생긴것을 확인할 수 있음
✅ Gabia
- My 가비아 -> 서비스 관리 -> 도메인 통합 관리툴
- 도메인 정보 변경 -> 네임 서버 설정
- Route 53 레코드의 NS에 해당하는 4개의 값을 차례대로 입력한다. 이 때 마지막에 .은 제외하고 입력한다
✅ AWS Certificate Manage(ACM)
1. AWS Certificate Manager(ACM)에 접속 후, 퍼블릭 인증서 요청 클릭
2. 완전히 정규화된 도메인 이름에는 구매한 도메인의 이름을 작성한 이후 요청
3. 생성한 인증서 ID를 클릭 -> Route 53에서 인증서 생성 클릭 -> 아까 생성했던 호스팅 그룹?이 있으면 선택 후 레코드 생성
대략 10분 후에 인증서 발급 완료
✅ AWS Load balancer 적용
1. EC2 - 로드 밸런싱 - 대상 그룹 - 대상 그룹 생성
2. 대상 그룹 생성에 필요한 데이터 입력
대상 그룹 이름에는 자신이 원하는 이름을, 대상 유형은 인스턴스, 포트는 8080으로 설정
생성된 대상 그룹을 누르고 하단에 “대상” 선택 -> 대상 등록 -> 원하는 EC2 인스턴스 선택
인스턴스의 상태가 unhealthy인 경우, 하단의 “상태 검사” 탭 클릭 -> 편집 -> 200을 뱉어내는 임의의 API를 생성한 후 등록
로드밸런서 탭 클릭 -> 로드밸런서 생성 버튼 클릭
로드 밸런서 유형 Application Load Balancer 선택,
로드 밸런서 이름은 원하는 이름으로 선택, 체계는 인터넷 경계(Internet-facing), IP 주소 유형은 IPv4로 선택
매핑에서 가용영역 선택 시 2개 이상 선택하되 반드시 EC2가 있는 가용영역은 포함할 것
** 가용영역 확인하는 방법 - EC2에서 조회
보안그룹은 대상 EC2에서 사용하고 있는 보안그룹 선택 (이 때, https 433이 열려 있어야한다)
보안그룹 생성 및 선택 - HTTPS, HTTP 둘 다 오픈해주기
리스너 및 라우팅에서 리스너 추가 (포트 80, 443 추가, 대상 그룹은 생성한 것으로 설정)
HTTP로 접속 시, HTTPS로 리다이렉트 되도록 설정
✅ Route 53 라우팅 설정
1. A 레코드 생성 - 레코드 생성 - 단순 라우팅 선택
1. 생성한 호스팅 영역 - 레코드들 중 유형이 “A”인 레코드 선택 - 레코드 편집 선택
2. 트래픽 라우팅 대상 : Application/Classic Load Balancer에 대한 별칭
아시아 태평양(서울)
방금 생성한 로드 밸런서 선택
✅ 참고 자료 & 링크
https://squirmm.tistory.com/entry/DevOps-SpringBoot-GitHub-action-Nginx-AWS-%EB%B0%B0%ED%8F%AC-3