VPC
- 서브넷
- 라우팅 테이블
- 인터넷 게이트웨이
- 송신 전용 인터넷 게이트웨이
- 캐리어 게이트웨이
- DHCP 옵션 세트
- 탄력적 IP
- 관리형 접두사 목록
- 엔드포인트
- 엔드포인트 서비스
- NAT 게이트웨이
- 피어링 연결
1. VPC (Virtual Private Cloud)
필수 항목:
- cidr_block: VPC에 할당할 CIDR 블록 (필수)
선택 항목:
- enable_dns_support: DNS 해석 기능 활성화 (옵션)
- enable_dns_hostnames: DNS 호스트 이름 활성화 (옵션)
- tags: 태그 추가 (옵션)
리소스 이름: aws_vpc
resource "aws_subnet" "public_subnet" {
vpc_id = aws_vpc.main_vpc.id # 필수: 연결된 VPC ID
cidr_block = "10.0.1.0/24" # 필수: 서브넷에 할당할 CIDR 블록
availability_zone = "us-west-2a" # 옵션: 가용 영역 설정
map_public_ip_on_launch = true # 옵션: 퍼블릭 IP 자동 할당
tags = {
Name = "PublicSubnet"
}
}
2. 서브넷 (Subnet)
필수 항목:
- vpc_id: VPC ID (필수)
- cidr_block: 서브넷에 할당할 CIDR 블록 (필수)
선택 항목:
- availability_zone: 서브넷이 위치할 가용 영역 (옵션)
- map_public_ip_on_launch: 퍼블릭 IP 자동 할당 (옵션)
리소스 이름: aws_subnet
resource "aws_subnet" "public_subnet" {
vpc_id = aws_vpc.main_vpc.id # 필수: 연결된 VPC ID
cidr_block = "10.0.1.0/24" # 필수: 서브넷에 할당할 CIDR 블록
availability_zone = "us-west-2a" # 옵션: 가용 영역 설정
map_public_ip_on_launch = true # 옵션: 퍼블릭 IP 자동 할당
tags = {
Name = "PublicSubnet"
}
}
3. 라우팅 테이블 (Route Table)
필수 항목:
- vpc_id: VPC ID (필수)
선택 항목:
- route: 라우트 설정 (옵션)
- tags: 태그 추가 (옵션)
리소스 이름: aws_route_table
resource "aws_route_table" "public_rt" {
vpc_id = aws_vpc.main_vpc.id # 필수: 연결된 VPC ID
# 옵션: 라우트 설정, 0.0.0.0/0 트래픽을 인터넷 게이트웨이로 전달
route {
cidr_block = "0.0.0.0/0"
gateway_id = aws_internet_gateway.igw.id
}
tags = {
Name = "PublicRouteTable"
}
}
4. 인터넷 게이트웨이 (Internet Gateway)
필수 항목:
- vpc_id: VPC ID (필수)
리소스 이름: aws_internet_gateway
resource "aws_internet_gateway" "igw" {
vpc_id = aws_vpc.main_vpc.id # 필수: 연결된 VPC ID
tags = {
Name = "InternetGateway"
}
}
5. 송신 전용 인터넷 게이트웨이 (Egress Only Internet Gateway)
필수 항목:
- vpc_id: VPC ID (필수)
리소스 이름: aws_egress_only_internet_gateway
resource "aws_egress_only_internet_gateway" "egw" {
vpc_id = aws_vpc.main_vpc.id # 필수: 연결된 VPC ID
tags = {
Name = "EgressOnlyGateway"
}
}
6. 캐리어 게이트웨이 (Carrier Gateway)
필수 항목:
- vpc_id: VPC ID (필수)
리소스 이름: aws_ec2_carrier_gateway
resource "aws_ec2_carrier_gateway" "cgw" {
vpc_id = aws_vpc.main_vpc.id # 필수: 연결된 VPC ID
tags = {
Name = "CarrierGateway"
}
}
7. DHCP 옵션 세트 (DHCP Option Set)
필수 항목:
- domain_name_servers: DNS 서버 목록 (필수)
선택 항목:
- domain_name: 도메인 이름 설정 (옵션)
리소스 이름: aws_vpc_dhcp_options
resource "aws_vpc_dhcp_options" "dhcp_options" {
domain_name_servers = ["8.8.8.8", "8.8.4.4"] # 필수: DNS 서버 목록
# 옵션: 도메인 이름 설정
domain_name = "example.com"
tags = {
Name = "DHCPOptionsSet"
}
}
8. 탄력적 IP (Elastic IP)
필수 항목:
- 없음 (탄력적 IP는 필수 항목이 없음)
리소스 이름: aws_eip
resource "aws_eip" "elastic_ip" {
vpc = true # VPC에 연결된 탄력적 IP
tags = {
Name = "ElasticIP"
}
}
9. 관리형 접두사 목록 (Managed Prefix List)
필수 항목:
- address_family: IPv4 또는 IPv6 (필수)
- max_entries: 최대 엔트리 수 (필수)
리소스 이름: aws_ec2_managed_prefix_list
resource "aws_ec2_managed_prefix_list" "prefix_list" {
address_family = "IPv4" # 필수: 주소 패밀리 (IPv4 또는 IPv6)
max_entries = 5 # 필수: 최대 엔트리 수
entry {
cidr = "10.0.0.0/16"
description = "Main VPC range"
}
tags = {
Name = "ManagedPrefixList"
}
}
10. VPC 엔드포인트 (VPC Endpoint)
필수 항목:
- vpc_id: VPC ID (필수)
- service_name: AWS 서비스 이름 (필수)
리소스 이름: aws_vpc_endpoint
resource "aws_vpc_endpoint" "s3_endpoint" {
vpc_id = aws_vpc.main_vpc.id # 필수: 연결된 VPC ID
service_name = "com.amazonaws.us-west-2.s3" # 필수: AWS 서비스 이름 (S3)
route_table_ids = [aws_route_table.public_rt.id] # 라우팅 테이블 설정
tags = {
Name = "S3Endpoint"
}
}
11. 엔드포인트 서비스 (VPC Endpoint Service)
필수 항목:
- acceptance_required: 수락 필요 여부 (필수)
- network_load_balancer_arns: NLB ARN 목록 (필수)
리소스 이름: aws_vpc_endpoint_service
resource "aws_vpc_endpoint_service" "endpoint_service" {
acceptance_required = true # 필수: 수락 필요 여부
network_load_balancer_arns = [aws_lb.nlb.arn] # 필수: NLB ARN 목록
tags = {
Name = "EndpointService"
}
}
12. NAT 게이트웨이 (NAT Gateway)
필수 항목:
- allocation_id: 탄력적 IP ID (필수)
- subnet_id: 서브넷 ID (필수)
리소스 이름: aws_nat_gateway
resource "aws_nat_gateway" "nat_gw" {
allocation_id = aws_eip.elastic_ip.id # 필수: 연결된 탄력적 IP ID
subnet_id = aws_subnet.public_subnet.id # 필수: 연결된 서브넷 ID
tags = {
Name = "NatGateway"
}
}
13. 피어링 연결 (VPC Peering Connection)
필수 항목:
- vpc_id: 요청자의 VPC ID (필수)
- peer_vpc_id: 상대방의 VPC ID (필수)
리소스 이름: aws_vpc_peering_connection
resource "aws_vpc_peering_connection" "peer_connection" {
vpc_id = aws_vpc.main_vpc.id # 필수: 요청자의 VPC ID
peer_vpc_id = "vpc-12345678" # 필수: 상대방의 VPC ID
peer_region = "us-west-2" # 피어링할 VPC의 리전 (선택적)
tags = {
Name
'AWS' 카테고리의 다른 글
AWS VPC Transit G/W, 트래픽 미러링, VPC 래티스 리소스 (0) | 2024.10.22 |
---|---|
AWS VPN 가상 사설 네트워크, AWS가 확인한 액세스 리소스 (0) | 2024.10.22 |
AWS VPC 보안, DNS 방화벽, 네트워크 방화벽 리소스 (0) | 2024.10.22 |
AWS S3 리소스 (0) | 2024.10.22 |
AWS DirectConnect 리소스 (0) | 2024.10.22 |