AWS 프로젝트: VPC 구성, EC2 생성 및 S3 정적 웹사이트 호스팅
설정값은 전부 임의의 값으로, 변형하여 구성 가능합니다.
1. VPC 구성 및 네트워크 설계
1.1. VPC 생성

1. AWS Management Console에서 VPC 서비스로 이동합니다.
2. "Create VPC"를 클릭하고 다음을 설정합니다:
- Name tag:
MyVPC
- IPv4 CIDR block:
10.0.0.0/16
- Create VPC를 클릭합니다.
1.2. 서브넷 생성



퍼블릭 서브넷 생성
- Subnets 탭에서 "Create subnet"을 클릭합니다.
- 설정:
- Name tag:
PublicSubnet1
- Availability Zone:
us-east-1a
- IPv4 CIDR block:
10.0.1.0/24
- Create subnet을 클릭합니다.
프라이빗 서브넷 생성
- Subnets 탭에서 다시 "Create subnet"을 클릭합니다.
- 설정:
- Name tag:
PrivateSubnet1
- Availability Zone:
us-east-1a
- IPv4 CIDR block:
10.0.2.0/24
- Create subnet을 클릭합니다.
1.3. 인터넷 게이트웨이 연결
(위에 분리되었다는 창은 신경쓰지 마세요..^^)

- Internet Gateways 탭에서 "Create internet gateway"를 클릭합니다.
- 생성 후, Actions > Attach to VPC를 선택하여 VPC에 연결합니다.
1.4. 라우팅 테이블 설정



퍼블릭 라우팅 테이블 생성
- Route Tables 탭에서 "Create route table"을 클릭합니다.
- 설정:
- Name tag:
PublicRT
- VPC:
MyVPC
- 생성 후, Routes 섹션에서 라우트를 추가합니다:
- Destination:
0.0.0.0/0
- Target:
MyIGW
- Subnet associations 탭에서
PublicSubnet1
을 연결합니다.
프라이빗 라우팅 테이블 생성
- Route Tables 탭에서 "Create route table"을 클릭합니다.
- 설정:
- Name tag:
PrivateRT
- VPC:
MyVPC
- 생성 후, 프라이빗 서브넷을 연결합니다.
1.5. NAT 게이트웨이 구성


- NAT Gateways 탭에서 "Create NAT gateway"를 클릭합니다.
- Subnet:
PublicSubnet1
- Elastic IP allocation: 새 Elastic IP 생성 및 연결 (탄력적 IP 할당)
- PrivateRT에서 라우트를 추가합니다:
- Destination:
0.0.0.0/0
- Target: NAT 게이트웨이.
2. EC2 인스턴스 생성
2.1. EC2 인스턴스 생성




- EC2 대시보드에서 Launch instances를 클릭합니다.
- 설정:
- Name:
MyEC2Instance
- AMI: Amazon Linux 2 선택
- Instance type:
t2.micro
- Key pair: 새 키 페어 생성 또는 기존 키 선택
- Network:
- VPC:
MyVPC
- Subnet:
PublicSubnet1
- Auto-assign public IP: 활성화
2.2. 보안 그룹 생성
- 새 보안 그룹 추가:
- Name:
MySecurityGroup
- Inbound rules:
- SSH (22): 특정 IP만 허용 (예:
192.168.x.x/32
)
- HTTP (80):
0.0.0.0/0
, ::/0
- HTTPS (443):
0.0.0.0/0
, ::/0
- Outbound rules: 기본값 유지 (모든 트래픽 허용)
- 보안 그룹을 인스턴스에 연결합니다.
2.3. SSH 접속
- 생성된 인스턴스의 퍼블릭 IP를 복사합니다.
- SSH로 접속:
ssh -i "key-file.pem" ec2-user@<Public-IP>
3. S3 정적 웹사이트 호스팅




(업로드를 안하면 이런 화면이 뜹니다. 당황하지 마세요.)
3.1. S3 버킷 생성
- S3 대시보드에서 Create bucket을 클릭합니다.
- Name:
my-static-website
- Region: 동일한 리전 (예:
us-east-1
)
- Block Public Access: 해제
3.2. 버킷 정책 설정
- Permissions > Bucket Policy 섹션에서 다음 정책을 추가합니다:
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "PublicReadGetObject",
"Effect": "Allow",
"Principal": "*",
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::my-static-website/*"
}
]
}
3.3. 정적 웹사이트 호스팅 활성화
- Properties > Static website hosting에서 Enable을 설정합니다:
- Index document:
index.html
- Error document:
error.html
3.4. 파일 업로드
- Objects > Upload:
index.html
및 error.html
파일 업로드
3.5. 웹사이트 확인
- Properties > Static website hosting의 Endpoint URL을 복사합니다.
- 브라우저에서 URL로 웹사이트에 접근합니다:
- 예:
http://my-static-website.s3-website-us-east-1.amazonaws.com
프로젝트 결과
- VPC: 퍼블릭 및 프라이빗 서브넷으로 구성된 안전한 네트워크 환경
- EC2: 퍼블릭 서브넷에 배포된 인스턴스에서 SSH 및 HTTP 접근 가능
- S3: 정적 웹사이트가 S3를 통해 호스팅되어 URL로 접근 가능