

# Lambda 관리형 인스턴스의 네트워킹
<a name="lambda-managed-instances-networking"></a>

Lambda 관리형 인스턴스 함수를 실행할 때는 함수가 VPC 외부의 리소스에 액세스할 수 있도록 네트워크 연결을 구성해야 합니다. 여기에는 Amazon S3 및 DynamoDB와 같은 AWS 서비스가 포함됩니다. CloudWatch Logs 및 X-Ray로 텔레메트리 데이터를 전송할 때에도 연결이 필요합니다.

## 연결 옵션
<a name="lambda-managed-instances-connectivity-options"></a>

VPC 연결 구성에는 3가지 주요 접근 방식이 있으며, 각 접근 방식은 비용, 보안 및 복잡성에 있어 장단점이 서로 다릅니다.

## 인터넷 게이트웨이를 사용하는 퍼블릭 서브넷
<a name="lambda-managed-instances-public-subnet-igw"></a>

이 옵션은 인터넷 게이트웨이를 통한 직접 인터넷 액세스로 퍼블릭 서브넷을 사용합니다. IPv4 및 IPv6 구성 중에서 선택할 수 있습니다.

### 인터넷 게이트웨이를 사용하는 IPv4
<a name="lambda-managed-instances-ipv4-igw"></a>

**인터넷 게이트웨이와의 IPv4 연결 구성**

1. IPv4 CIDR 블록을 사용하여 기존 퍼블릭 서브넷을 생성하거나 사용합니다.

1. VPC에 인터넷 게이트웨이를 연결합니다.

1. 라우팅 테이블을 업데이트하여 `0.0.0.0/0` 트래픽을 인터넷 게이트웨이로 라우팅합니다.

1. 리소스에 퍼블릭 IPv4 주소 또는 탄력적 IP 주소가 할당되어 있어야 합니다.

1. 필요한 포트에서 아웃바운드 트래픽을 허용하도록 보안 그룹을 구성합니다.

이 구성은 양방향 연결을 제공하여 함수에서의 아웃바운드 연결과 인터넷에서의 인바운드 연결을 모두 허용합니다.

### 인터넷 게이트웨이를 사용하는 IPv6
<a name="lambda-managed-instances-ipv6-igw"></a>

**인터넷 게이트웨이와의 IPv6 연결 구성**

1. VPC에서 IPv6를 활성화합니다.

1. IPv6 CIDR 블록이 할당된 퍼블릭 서브넷을 생성하거나 기존 퍼블릭 서브넷을 사용합니다.

1. 인터넷 게이트웨이를 VPC에 연결합니다(동일한 인터넷 게이트웨이가 IPv4와 IPv6를 모두 처리할 수 있음).

1. 라우팅 테이블을 업데이트하여 `::/0` 트래픽을 인터넷 게이트웨이로 라우팅합니다.

1. 액세스해야 하는 AWS 서비스가 해당 리전에서 IPv6를 지원하는지 확인합니다.

1. 필요한 포트에서 아웃바운드 트래픽을 허용하도록 보안 그룹을 구성합니다.

이 구성은 IPv6 주소 지정을 사용하여 양방향 연결을 제공합니다.

### 송신 전용 인터넷 게이트웨이를 사용하는 IPv6
<a name="lambda-managed-instances-ipv6-egress-only"></a>

**송신 전용 인터넷 게이트웨이와의 IPv6 연결 구성**

1. VPC에서 IPv6를 활성화합니다.

1. IPv6 CIDR 블록이 할당된 퍼블릭 서브넷을 생성하거나 기존 퍼블릭 서브넷을 사용합니다.

1. VPC에 송신 전용 인터넷 게이트웨이를 연결합니다.

1. 라우팅 테이블을 업데이트하여 `::/0` 트래픽을 외부 전용 인터넷 게이트웨이로 라우팅합니다.

1. 액세스해야 하는 AWS 서비스가 해당 리전에서 IPv6를 지원하는지 확인합니다.

1. 필요한 포트에서 아웃바운드 트래픽을 허용하도록 보안 그룹을 구성합니다.

이 구성은 아웃바운드 전용 연결을 제공하여 함수의 아웃바운드 연결 시작을 허용하면서 인터넷에서의 인바운드 연결을 방지합니다.

## VPC 엔드포인트
<a name="lambda-managed-instances-vpc-endpoints"></a>

VPC 엔드포인트를 통해 인터넷 게이트웨이, NAT 디바이스, VPN 연결 또는 AWS Direct Connect 연결을 필요로 하지 않고 VPC를 지원되는 AWS 서비스에 비공개로 연결할 수 있습니다. VPC와 AWS 서비스 간의 트래픽은 Amazon 네트워크를 벗어나지 않습니다.

**VPC 엔드포인트 구성**

1. [console.aws.amazon.com/vpc/](https://console.aws.amazon.com/vpc/)에서 Amazon VPC 콘솔을 엽니다.

1. 탐색 창에서 **엔드포인트**를 선택합니다.

1. **엔드포인트 생성**을 선택합니다.

1. **서비스 범주(Service category)**에서 **AWS 서비스**를 선택합니다.

1. **서비스 이름**에서 필요한 서비스 엔드포인트(예: Amazon S3의 경우 `com.amazonaws.region.s3`)를 선택합니다.

1. **VPC**에서 해당 VPC를 선택합니다.

1. **서브넷**에서 엔드포인트 네트워크 인터페이스를 생성하려는 서브넷을 선택합니다. 고가용성을 위해 여러 가용 영역의 서브넷을 선택합니다.

1. **보안 그룹**에서 엔드포인트 네트워크 인터페이스에 연결할 보안 그룹을 선택합니다. 보안 그룹은 필요한 포트에서 함수의 보안 그룹으로부터의 인바운드 트래픽을 허용해야 합니다.

1. **엔드포인트 생성**을 선택합니다.

함수가 액세스해야 하는 각 AWS 서비스에 대해 이 단계를 반복합니다.

## NAT 게이트웨이를 사용하는 프라이빗 서브넷
<a name="lambda-managed-instances-private-subnet-nat"></a>

이 옵션은 NAT 게이트웨이를 사용하여 리소스를 비공개로 유지하면서 인터넷으로 프라이빗 서브넷의 리소스에 액세스할 수 있습니다.

**NAT 게이트웨이를 사용하는 프라이빗 서브넷 구성**

1. CIDR 블록이 포함된 퍼블릭 서브넷(아직 존재하지 않는 경우)을 생성합니다.

1. VPC에 인터넷 게이트웨이를 연결합니다.

1. 퍼블릭 서브넷에 NAT 게이트웨이를 생성하고 탄력적 IP 주소를 할당합니다.

1. 퍼블릭 서브넷 라우팅 테이블을 업데이트하여 ‘`0.0.0.0/0` → 인터넷 게이트웨이’ 경로를 추가합니다.

1. CIDR 블록을 사용하여 기존 퍼블릭 서브넷을 생성하거나 사용합니다.

1. 프라이빗 서브넷 라우팅 테이블을 업데이트하여 ‘`0.0.0.0/0` → NAT 게이트웨이’를 추가합니다.

1. 필요한 포트에서 아웃바운드 트래픽을 허용하도록 보안 그룹을 구성합니다.

고가용성을 위해 각 가용 영역에 NAT 게이트웨이 하나를 배포하고 로컬 NAT 게이트웨이를 사용하도록 가용 영역별로 라우팅 테이블을 구성합니다. 이를 통해 AZ 간 데이터 전송 요금이 발생하지 않고 복원력이 향상됩니다.

## 연결 옵션 선택
<a name="lambda-managed-instances-choosing-connectivity"></a>

연결 옵션을 선택할 때 다음 요소를 고려합니다.

**인터넷 게이트웨이를 사용하는 퍼블릭 서브넷**
+ 최저 비용으로 가장 간단한 구성
+ 개발 및 테스트 환경에 적합
+ 리소스가 인터넷에서 인바운드 연결 수신 가능(보안 고려 사항)
+ IPv4 및 IPv6 모두 지원

** VPC 엔드포인트**
+ 가장 높은 보안, 트래픽이 AWS 네트워크 내에 유지
+ 인터넷 라우팅에 비해 짧은 지연 시간
+ 보안 요구 사항이 엄격한 프로덕션 환경에 권장
+ 처리된 엔드포인트, 가용 영역 및 GB당 비용 증가
+ 고가용성을 위해 각 가용 영역에 엔드포인트 필요

**NAT 게이트웨이를 사용하는 프라이빗 서브넷**
+ 리소스가 인바운드 인터넷 액세스 없이 비공개로 유지
+ 표준 엔터프라이즈 아키텍처 패턴
+ 모든 IPv4 인터넷 트래픽 지원
+ NAT 게이트웨이 시간당 및 데이터 처리 요금을 포함한 중간 비용
+ IPv4만 지원

## 다음 단계
<a name="lambda-managed-instances-networking-next-steps"></a>
+ [Lambda 관리형 인스턴스의 용량 공급자](lambda-managed-instances-capacity-providers.md) 알아보기
+ [Lambda 관리형 인스턴스의 규모 조정](lambda-managed-instances-scaling.md) 알아보기
+ [Java](lambda-managed-instances-java-runtime.md), [Node.js](lambda-managed-instances-nodejs-runtime.md) 및 [Python](lambda-managed-instances-python-runtime.md)에 대한 런타임별 가이드 검토
+ [Lambda 관리형 인스턴스의 보안 및 권한](lambda-managed-instances-security.md) 이해