✅ 개요
Spring boot 서버를 EC2에 배포하는데까진 성공했지만 데이터베이스는 localhost에 있는 데이터베이스를 사용하고 있었기 때문에 빌드 과정에서 오류가 발생했다.
따라서 데이터베이스 또한 배포를 해줘야 한다.
지금부터 AWS RDS를 사용해 MySQL 서버를 배포해보겠다.
✅ VPC 도입
RDS에 대한 Public IPv4를 할당하면 비용이 꽤 발생한다.
대신 EC2에 대한 Public IPv4는 과금이 발생하지 않는다.
따라서 RDS에 대해 접근을 할 때 EC2를 통해서만 접근할 수 있도록 VPC를 설정할 것이다.
또한 VPC를 설정하면 보안적인 부분에서도 이점을 얻을 수 있다.
⚙️ VPC 생성하기
모두 기본값으로 세팅해주었다.
✅ 보안그룹 추가
앞서 EC2를 거쳐야만 RDS에 접근할 수 있게 한다고 했다.
이에 대한 보안그룹을 만들어 보자.
1️⃣ 외부 → EC2
이에 대한 보안그룹은 이전 포스트에서 EC2를 만들 때 생성해주긴 했지만 새로운 VPC를 만들었으므로 보안그룹도 다시 만들어줘야 한다.
보안그룹의 VPC를 변경할 수 있는 방법은 없다고 한다.
새 보안 그룹에 복사해줬다.
💡 이때, VPC를 새로 만든 VPC로 설정해줬다.
2️⃣ EC2 → RDS
이제 EC2를 통해 RDS로 들어오는 트래픽에 대한 보안그룹을 설정해주도록 하겠다.
- VPC는 앞서 만든 VPC로 해주었다
- 인바운드 규칙의 경우, 앞서 만든 외부 → EC2 보안그룹을 통한 MySQL의 3306번 포트로만 들어올 수 있도록 설정해주었다.
✅ EC2 인스턴스의 VPC 변경하기
VPC를 새로 만들었고 해당 VPC에서 스프링부트 서버와 MySQL을 구동시킬 것이므로 기존에 만들었던 스프링부트 EC2 인스턴스의 VPC를 새로 만든 VPC로 변경해주어야 한다.
그냥은 변경할 수 없고 AMI 이미지를 생성해 변경해주어야 한다.
방법은 해당 블로그 포스트를 참고했다.
AMI생성 및 VPC 변경하기
# EC2 인스턴스를 AMI 이미지로 생성 후 새로운 VPC 와 Subnet을 부여하는 과정을 수행한다. 예를들어 A라는 VPC에 인프라 리소스 자원을 세팅 후 테스트를 진행 후 B 라는 운영 VPC에 인프라를 동일하게
may9noy.tistory.com
1️⃣ AMI 이미지 생성
2️⃣ AMI로 인스턴스 시작
- VPC - 만든 VPC
- 서브넷 - 가용영역은 상관없고 public인 서브넷을 선택
- 퍼블릭 IP 자동 할당 - 활성화
- 보안그룹 - 새로 만든 외부 → EC2 보안그룹
3️⃣ 생성된 인스턴스에 ssh로 접속하기
EC2 인스턴스를 새로 만들고 ssh로 접속하려고 하니 다음 오류가 발생하였다.
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
Someone could be eavesdropping on you right now (man-in-the-middle attack)!
It is also possible that a host key has just been changed.
The fingerprint for the ED25519 key sent by the remote host is
SHA256:/iiuZE4.
Please contact your system administrator.
Add correct host key in /Users/kimjaehee/.ssh/known_hosts to get rid of this message.
Offending ECDSA key in /Users/kimjaehee/.ssh/known_hosts:7
Host key for has changed and you have requested strict checking.
Host key verification failed.
kimjaehee@gimjaehuiui-MacBookPro .ssh % ssh -i aws-practice-keypair.pem ubuntu
이는 다음과 같이 해결하였다.
[Trouble-Shooting] @@@@@@@@@@@@@@@@@@@ WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! @@@@@@@@@@@@@@@@@@@
❗️문제 상황✉️ 오류 상황EC2 인스턴스의 VPC를 변경하기 위해 EC2에 대한 AMI를 생성하고 EC2 인스턴스를 VPC만 변경해 새롭게 만들어주고 다시 ssh 터미널로 인스턴스에 접근하려고 아래와 같은
jaehee1007.tistory.com
이슈를 해결하고 접속를 해보니
기존에 배포했었던 스프링부트 백엔드 서버도 그대로 잘 있는걸 볼 수 있다.
'AWS' 카테고리의 다른 글
[AWS 실습 프로젝트] 8. S3에 프론트엔드 배포하기 (0) | 2024.09.17 |
---|---|
[AWS 실습 프로젝트] 7. RDS를 통해 MySQL 서버 배포하기 - (2) RDS MySQL 데이터베이스 만들기 (2) | 2024.09.17 |
[AWS 실습 프로젝트] 5. EC2에 스프링부트 백엔드 서버 배포하기 (0) | 2024.09.17 |
[AWS 실습 프로젝트] 4. Spring boot로 S3에 이미지 업로드 및 수정 비즈니스 로직 구현하기 (0) | 2024.09.17 |
[AWS 실습 프로젝트] 3. Spring Boot와 S3 연동해서 이미지 업로드하기 (0) | 2024.09.17 |