DirectConnect
- 연결
- 가상 인터페이스
- LAG
- Direct Connect 게이트웨이
- 가상 프라이빗 게이트웨이
- 전송 게이트웨이
각 항목 설명 및 Terraform 리소스
- Direct Connect 연결 (aws_dx_connection)
- 필수: Direct Connect 연결은 물리적인 전용 네트워크 연결을 제공합니다.
- 리소스 이름: aws_dx_connection
- 필수 속성: name, bandwidth, location
- 옵션 속성: provider_name
- 가상 인터페이스 (aws_dx_private_virtual_interface, aws_dx_public_virtual_interface)
- 필수: Direct Connect 연결에 가상 인터페이스를 생성하여 트래픽을 송수신합니다.
- 리소스 이름: aws_dx_private_virtual_interface (VPC 연결 시), aws_dx_public_virtual_interface (Public 리소스 접근 시)
- 필수 속성: connection_id, vlan, address_family, bgp_asn
- 옵션 속성: amazon_address, customer_address
- LAG (Link Aggregation Group) (aws_dx_lag)
- 옵션: 여러 Direct Connect 연결을 하나의 링크 집합으로 묶어 사용합니다.
- 리소스 이름: aws_dx_lag
- 필수 속성: connections_bandwidth, location
- 옵션 속성: number_of_connections
- Direct Connect 게이트웨이 (aws_dx_gateway)
- 필수: Direct Connect 연결을 여러 VPC에 연결할 때 사용합니다.
- 리소스 이름: aws_dx_gateway
- 필수 속성: name, amazon_side_asn
- 가상 프라이빗 게이트웨이 (aws_vpn_gateway)
- 옵션: Direct Connect 게이트웨이를 VPC에 연결하는 데 사용됩니다.
- 리소스 이름: aws_vpn_gateway
- 필수 속성: vpc_id
- 옵션 속성: availability_zone
- 전송 게이트웨이 (aws_ec2_transit_gateway)
- 옵션: 여러 VPC 또는 온프레미스 네트워크 간 트래픽을 라우팅할 때 사용합니다.
- 리소스 이름: aws_ec2_transit_gateway
- 필수 속성: amazon_side_asn
- 옵션 속성: description, default_route_table_association
Terraform 예시
# Direct Connect 연결 생성
resource "aws_dx_connection" "primary_connection" {
name = "Primary-DirectConnect-Connection" # Direct Connect 연결의 이름
bandwidth = "1Gbps" # 연결 대역폭 (예: 1Gbps, 10Gbps)
location = "EqSe2" # 연결 위치 (AWS Direct Connect 위치)
# 옵션
provider_name = "AWS" # AWS Direct Connect 제공자 이름 (기본적으로 AWS 사용)
}
# 가상 프라이빗 인터페이스 생성 (VPC에 연결할 때 사용)
resource "aws_dx_private_virtual_interface" "primary_vif" {
connection_id = aws_dx_connection.primary_connection.id # 연결할 Direct Connect ID
vlan = 101 # VLAN ID
address_family = "ipv4" # IPv4 또는 IPv6 사용
bgp_asn = 65000 # BGP ASN (고객 측 ASN)
# VPC에 연결을 위한 정보
vpn_gateway_id = aws_vpn_gateway.primary_vgw.id # 가상 프라이빗 게이트웨이 ID
amazon_address = "175.45.176.1/30" # AWS 측 IP 주소
customer_address = "175.45.176.2/30" # 고객 측 IP 주소
}
# 가상 프라이빗 게이트웨이 생성 (VPC에 연결)
resource "aws_vpn_gateway" "primary_vgw" {
vpc_id = aws_vpc.main.id # 연결할 VPC ID
}
# Direct Connect 게이트웨이 생성 (여러 VPC에 연결할 수 있는 게이트웨이)
resource "aws_dx_gateway" "primary_dx_gateway" {
name = "Primary-DX-Gateway" # Direct Connect 게이트웨이 이름
amazon_side_asn = 64512 # AWS 측 ASN
}
# Direct Connect 게이트웨이와 VPC의 가상 프라이빗 게이트웨이 연결
resource "aws_dx_gateway_association" "dx_gw_association" {
dx_gateway_id = aws_dx_gateway.primary_dx_gateway.id # Direct Connect 게이트웨이 ID
vpn_gateway_id = aws_vpn_gateway.primary_vgw.id # 가상 프라이빗 게이트웨이 ID
allowed_prefixes = ["10.0.0.0/16"] # 허용된 프리픽스 (VPC CIDR)
}
# 전송 게이트웨이 생성 (VPC 또는 온프레미스 연결 라우팅)
resource "aws_ec2_transit_gateway" "primary_transit_gw" {
amazon_side_asn = 64512 # AWS 측 ASN
description = "Primary Transit Gateway" # 설명 (옵션)
}
# Direct Connect 연결에 LAG 생성 (옵션)
resource "aws_dx_lag" "primary_lag" {
connections_bandwidth = "1Gbps" # 각 연결의 대역폭
location = aws_dx_connection.primary_connection.location # 연결 위치
number_of_connections = 2 # LAG에 포함될 연결 수
}
# 가상 인터페이스와 라우팅 테이블을 연결 (S3 또는 다른 AWS 서비스에 연결 시 필요)
resource "aws_vpc_endpoint_route_table_association" "s3_endpoint_association" {
vpc_endpoint_id = aws_vpc_endpoint.s3_vpc_endpoint.id # S3에 대한 VPC 엔드포인트 ID
route_table_id = aws_route_table.private_route_table.id # 프라이빗 서브넷의 라우팅 테이블 ID
}
각 항목 설명 요약
- 필수 항목
- Direct Connect 연결 (aws_dx_connection)
- 가상 인터페이스 (aws_dx_private_virtual_interface 또는 aws_dx_public_virtual_interface)
- Direct Connect 게이트웨이 (aws_dx_gateway)
- 옵션 항목
- LAG (aws_dx_lag) - 대역폭 집합을 사용하려면
- 가상 프라이빗 게이트웨이 (aws_vpn_gateway) - VPC 연결 시
- 전송 게이트웨이 (aws_ec2_transit_gateway) - 여러 VPC 또는 온프레미스 연결 시
이 구조는 AWS Direct Connect 설정을 위한 전반적인 흐름을 나타내며, 필요에 따라 각 리소스를 추가 또는 변경 가능
'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 VPC 리소스 (0) | 2024.10.22 |
AWS S3 리소스 (0) | 2024.10.22 |