일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- UNICON2023
- 개발공부
- 42서울
- 자바개발자
- UNIDEV
- 전국대학생게임개발동아리연합회
- EC2
- UNICON
- 온라인테스트
- RDS
- 오블완
- 티스토리챌린지
- 생활코딩
- 인프라
- 프리티어
- 스프링부트
- 인디게임
- 스프링
- 도커
- AWS
- CICD
- Developer
- 게임개발동아리
- 체크인미팅
- 위키북스
- 라피신
- 배포
- 백엔드
- 백엔드개발자
- 프로그래밍
- Today
- Total
Hyun's Wonderwall
[AWS] EC2, 탄력적 IP, RDS 옮기기! 본문
사용하던 AWS 계정이 프리티어가 만료되었는데, 프로젝트를 12월까지 올려놓기로 해서 새 AWS 계정으로 리소스들을 이전하는 절차를 진행하였다.
(프로젝트 구경하기 ➡ https://songpin.kr/)
통째로 옮기는 방식이 아니고, 백업본을 다운로드받아 다시 올리는 식이다.
열심히 작성했었는데 글을 날려버려서 간단하게 적고, 참고한 글들 링크를 아래에 달아둔다.
A계정에서 B계정으로 리소스들을 옮기고자 한다. (*VPC는 새로 세팅했다.)
EC2 AMI로 옮기고, 탄력적 IP 전송하기
1. A계정에서 EC2를 AMI로 만들어 B계정에 AMI 공유를 해주고, B계정에서 AMI로 인스턴스 생성한다.
2. A계정에서 탄력적 IP "전송 활성화"를 하고 B계정에서 탄력적 IP "전송 수락", 새로 만든 인스턴스에 연결한다.
3. B계정에 원본 EC2 인스턴스, VPC 사용하던 대로 보안 그룹 설정을 해준다.
위 과정을 완료하고 인스턴스에 연결해 NGINX가 잘 돌아가는 것을 확인했다. sudo docker ps도 했는데, 도커 컴포즈 파일에 자동 재시작 설정(restart: always)을 걸어놓아서 컨테이너들이 바로 자동으로 실행된 것을 확인했다.
RDS 스냅샷으로 옮기기
1. A계정의 RDS를 스냅샷을 만든다. 나는 RDS를 default 키로 생성했었어서 KMS 설정이 필요했다.
2. KMS(Key Management Service)에서 고객 관리형 키를 만들어야 한다. IAM 사용자를 추가하는 것이 있는데 진행하고 " 다른 AWS 계정 추가" 에 B계정을 ID로 추가한다.
3. A계정의 스냅샷 메뉴에서 "스냅샷 복사"를 하는데 이때 2번에서 만든 키로 생성한다.
4. 3번의 복사된 스냅샷을 "스냅샷 공유" 해 B계정을 ID로 추가한다.
5. B계정의 스냅샷 메뉴 [스냅샷]>[나와 공유됨] 에서 A계정이 공유해준 스냅샷이 보이는데, 그것을 또다시 "스냅샷 복사"한다. 복사한 결과 [스냅샷]>[수동]메뉴에 떠야 한다. 이때 키는 꼭 만든 키 안 써도 되길래 디폴트 키를 썼다.
6. B계정에서 스냅샷으로 데이터베이스를 만들고, 마찬가지로 원본 RDS 쓰던 것처럼 보안 그룹 설정을 해준다.
7. GitHub Actions등 CICD를 진행하는 곳에 배포용 application.yml 파일을 수정해서 재배포해준다.
비밀번호는 이전 RDS와 동일하게 사용된다.
5번에서, 옮기려는 계정에서 공유받은 스냅샷을 또다시 복사를 해줘야 하는지 몰라서 헤맸다.
"Restoring db instance from cross account storage encrypted snapshot is not supported." 에러를 5번 과정을 통해 해결할 수 있었다.
도움받은 글들 링크를 남긴다
https://sw-ing.tistory.com/188
https://onu0624.tistory.com/49#google_vignette
'Study > Java, Spring' 카테고리의 다른 글
[Spring Boot] TDD, 단위 테스트, JUnit (0) | 2024.10.06 |
---|---|
구글, 카카오 소셜 로그인 Spring Security, OAuth2, Redis에 일반 로그인까지 대응 가능하기.. (0) | 2024.10.06 |
[Spring Boot] 백엔드 서버 배포방법 총정리 - AWS EC2, RDS + Docker + GitHub Actions로 CI/CD🌿 (5) | 2024.09.22 |
[Spring TIL] nullable=false, @NotNull, @NonNull의 차이는? (+@Nonnull은 또 뭐지?) (0) | 2024.07.04 |
[도서리뷰] 자바/스프링 개발자를 위한 실용주의 프로그래밍 (0) | 2024.07.03 |