
프라이빗 서브넷에 rds를 위치 시키려고함.
rds -> 서브넷 그룹 생성

앞에서 프라이빗 서브넷을 만든 가용 구역 설정.

폐쇄망 서브넷 선택.

서브넷 그룹 생성 완료.


인바운드 설정 시 ip대역 뿐만 아니라 다른 보안 그룹으로도 지정 할 수 있음. 해당 보안 그룹을 가지고 있는 시스템만 접을 가능하게 해 줄 수 있음...!


개발, 테스트

단일 인스턴스 생성.

자격증명 설정

인스턴스 구성.

Amazon RDS 인스턴스 클래스는 크게 세 가지로 나뉨.
| 분류 | 특징 | 사용 사례 |
|---|---|---|
| 📌 스탠다드 클래스 (m 시리즈) | - CPU와 메모리 균형형 (Balanced) - 범용적인 워크로드에 적합 | - 웹 애플리케이션 DB - 중소규모 트래픽 처리 |
| 📌 메모리 최적화 클래스 (r 및 x 시리즈) | - RAM이 많음, 메모리 집약적 | - 읽기/쓰기 캐시가 많은 DB - 고성능 분석 작업 |
| 📌 버스티블 클래스 (t 시리즈) | - 낮은 성능, 가끔씩 부하 발생 시 CPU 크레딧 사용 - 저비용 옵션 | - 테스트/개발 환경 - 소규모 애플리케이션 |
r5, x1 (메모리 최적화)m5 (스탠다드)t3 (버스티블)👉 현재 선택된 db.t3.medium은 적당한 성능 & 저비용으로 개발/테스트용에 적합함! 🚀
스토리지

연결 - 앞에 만든거 선택.

보안그룹 - 앞에 만든거 선택.

추가구성.


생성 완료...!
현재 네트워크(VPC, 서브넷, 인터넷 게이트웨이 등)가 정상적으로 작동하는지 확인하려면 각 리소스 간 네트워크 연결을 테스트.
퍼블릭 서브넷에 있는 EC2에서 인터넷이 되는지 확인.
OpenVPN 서버 또는 Bastion Host(점프 서버)에서 Private EC2로 SSH 접속
ssh -i my-key.pem ec2-user@<PRIVATE-EC2-IP>


네모 표시 되어있는 a 가용구역에서 프라이빗a, c구역 접속 가능...!
Private EC2에서 인터넷 접속 확인 (NAT Gateway 유무 확인)

NAT Gateway 정상.
로드밸런서 트래픽 확인.



로드밸런서 정상.
WordPress를 배포하기 전에, EC2에서 RDS가 정상적으로 연결되는지 확인.
Private EC2에서 RDS 접속 테스트
Private EC2에서 MySQL 클라이언트 설치
sudo yum install -y mysql
RDS 접속 시도
telnet your-db-instance.xxxxxx.rds.amazonaws.com 3306

mysql -h your-db-instance.xxxxxx.rds.amazonaws.com -u admin -p

접속 성공....!

이제 위 그림처럼 프라이빗 구역의 ec2경로를 통해 인터넷에 접속할 수 없는 폐쇄망에 있는 rds로 접속이 가능.
Wordpress 서버용 EC2 인스턴스 생성

Amazon Linux 2023 (HVM), SSD Volume Type 선택t2.micro (프리 티어 사용 가능)my-key.pem)220.0.0.0/0 → 보안상 비추천)800.0.0.0/0 (모든 외부 요청 허용)8 GiB) 그대로 유지 가능 (추후 필요하면 확장)ssh -i my-key.pem ec2-user@<Elastic-IP>sudo yum update -y
sudo yum install -y httpd php php-mysqlnd mariadb105sudo systemctl start httpd
sudo systemctl enable httpdcd /var/www/html
sudo wget https://wordpress.org/latest.tar.gz
sudo tar -xvzf latest.tar.gz
sudo mv wordpress/* .
sudo rm -rf wordpress latest.tar.gzsudo chown -R apache:apache /var/www/html
sudo chmod -R 755 /var/www/htmlsudo systemctl restart httpdhttp://<Elastic-IP> 접속하면 WordPress 설치 페이지가 나타남.현재 아키텍처에서 Public Subnet에 위치한 WordPress 서버가 Private Subnet의 RDS에 직접 접근할 수 없는 문제를 해결하기 위해 Private Subnet의 EC2 인스턴스를 중개 서버(Proxy)로 활용하여 SSH 터널링 사용.
✅ 현재 구조
WordPress 서버: Public Subnet에 위치
RDS(MySQL): Private Subnet에 위치 (Publicly Accessible = False)
중개용 EC2 서버: Private Subnet에 위치 (WordPress는 이 서버를 통해 RDS에 연결해야 함)
🚀 목표
✅ Public Subnet의 WordPress 서버 → Private Subnet의 EC2 인스턴스 → Private Subnet의 RDS로 연결
✅ SSH 터널을 이용해 WordPress에서 RDS에 접속 가능하게 함
✅ 보안 그룹(Security Group)에서 최소한의 접근만 허용
ssh -i <your-key.pem> -L 3306:<RDS_엔드포인트>:3306 ec2-user@<PRIVATE_EC2_IP> -N -f





ssh 터널 상태 확인 및 MySQL 접속 확인

wordpress 데이터베이스 안에 WordPress에서 필요한 테이블들이 정상적으로 있는지 확인.

WordPress의 사이트 URL이 정상적으로 저장되었는지 확인.

wordpress의 privateip가 잘 저장 된것을 확인.(openvpn 덕에 private ip로 통신 가능.)
