
이번 실습에서는 프라이빗 서브넷을 활용한 EC2 접근 제한과 ALB(Application Load Balancer)를 통한 트래픽 분산을 직접 확인한다.
이를 통해 보안성을 강화하면서도 고가용성을 유지하는 방법을 경험할 수 있다.
VPC, 퍼블릭 서브넷, 프라이빗 서브넷, NAT 게이트웨이, 인터넷 게이트웨이, ALB, 프라이빗 EC2 인스턴스 구성 및 테스트 완료
MyPublicSubnet01 (10.0.1.0/24, ap-northeast-2a)
MyPublicSubnet02 (10.0.2.0/24, ap-northeast-2c)
퍼블릭 IPv4 자동 할당 활성화 (ALB 및 NAT 게이트웨이 배포에 필요)
MyPublicRouting
MyNatGW01 (MyPublicSubnet01, 탄력적 IP 할당)
MyNatGW02 (MyPublicSubnet02, 탄력적 IP 할당)
MyPrivateSubnet01 (CIDR: 10.0.100.0/24, ap-northeast-2a)
MyPrivateSubnet02 (CIDR: 10.0.200.0/24, ap-northeast-2c)
MyPrivateRouting
MyPublicSecugroup (퍼블릭 EC2 및 ALB에 적용)
MyPrivateSecugroup (프라이빗 EC2에 적용)
퍼블릭 EC2 (MyWeb1) (ALB 관리 및 Bastion 용도)
프라이빗 EC2 (MyWeb11, MyWeb21) (실제 트래픽 처리 서버)
#!/bin/bash
hostnamectl --static set-hostname $(curl -s http://169.254.169.254/latest/meta-data/instance-id)
echo "toor1234." | passwd --stdin root
sed -i 's/PasswordAuthentication no/PasswordAuthentication yes/g' /etc/ssh/sshd_config
sed -i 's/^#PermitRootLogin prohibit-password/PermitRootLogin yes/g' /etc/ssh/sshd_config
systemctl restart sshd
yum install -y httpd
echo "<h1>$(hostname) test web page</h1>" > /var/www/html/index.html
systemctl enable --now httpd.service
✅ 핵심 개념:
ssh ec2-user@프라이빗-인스턴스-퍼블릭-IP
ssh ec2-user@10.0.100.XX # MyWeb11 접속
ssh ec2-user@10.0.200.XX # MyWeb21 접속
✅ 핵심 개념:
ALB DNS로 웹페이지 접속
curl MyALB-123456789.ap-northeast-2.elb.amazonaws.com
브라우저에서 확인

✔️ 프라이빗 서브넷을 활용하면 외부에서 직접 접근할 수 없는 보안 환경을 구성할 수 있다.
✔️ ALB를 활용하면 트래픽을 여러 서버로 분산시켜, 부하 분산 및 고가용성을 확보할 수 있다.
✔️ Bastion Host(퍼블릭 EC2)를 통해 내부 프라이빗 서버에 접근하는 방식으로 운영 환경에서도 보안성을 강화할 수 있다.