

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

# Lambda 함수, Amazon VPC 및 서버리스 아키텍처를 사용하여 정적 아웃바운드 IP 주소 생성
<a name="generate-a-static-outbound-ip-address-using-a-lambda-function-amazon-vpc-and-a-serverless-architecture"></a>

*Thomas Scott, Amazon Web Services*

## 요약
<a name="generate-a-static-outbound-ip-address-using-a-lambda-function-amazon-vpc-and-a-serverless-architecture-summary"></a>

이 패턴은 서버리스 아키텍처로 Amazon Web Services(AWS) 클라우드에서 고정 아웃바운드 IP 주소를 생성하는 방법을 설명합니다. 조직에서 Secure File Transfer Protocol(SFTP)을 사용하여 별도의 사업체에 파일을 보내려는 경우 이 접근 방식을 활용할 수 있습니다. 즉, 비즈니스 엔터티는 방화벽을 통해 파일을 허용하는 IP 주소에 액세스할 수 있어야 합니다. 

이 패턴의 접근 방식은 [Elastic IP 주소](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/elastic-ip-addresses-eip.html)를 아웃바운드 IP 주소로 사용하는 AWS Lambda 함수를 생성하는 데 도움이 됩니다. 이 패턴의 단계를 따르면 고정 IP 주소를 사용하는 인터넷 게이트웨이를 통해 아웃바운드 트래픽을 라우팅하는 Lambda 함수와 Virtual Private Cloud(VPC)를 생성할 수 있습니다. 고정 IP 주소를 사용하려면 Lambda 함수를 VPC와 서브넷에 연결합니다. 

## 사전 조건 및 제한 사항
<a name="generate-a-static-outbound-ip-address-using-a-lambda-function-amazon-vpc-and-a-serverless-architecture-prereqs"></a>

**사전 조건 **
+ 활성 상태의 AWS 계정. 
+ Lambda 함수를 생성 및 배포하고 VPC 및 서브넷을 생성할 수 있는 AWS Identity and Access(IAM) 권한. 이에 대한 자세한 내용은 AWS Lambda 설명서의 [실행 역할 및 사용자 권한](https://docs.aws.amazon.com/lambda/latest/dg/configuration-vpc.html#vpc-permissions)을 참조하십시오.
+ 코드형 인프라(IaC)를 사용하여 이 패턴의 접근 방식을 구현하려면 AWS Cloud9와 같은 통합 개발 환경(IDE)이 필요합니다. 이에 대한 자세한 내용은 AWS Cloud9 설명서의 [AWS Cloud9란 무엇인가요?](https://docs.aws.amazon.com/cloud9/latest/user-guide/welcome.html)를 참조하세요.

## 아키텍처
<a name="generate-a-static-outbound-ip-address-using-a-lambda-function-amazon-vpc-and-a-serverless-architecture-architecture"></a>

다음 다이어그램은 이 패턴의 서버리스 아키텍처입니다.

![\[AWS 클라우드 VPC architecture with two availability zones, public and private subnets, NAT gateways, and a Lambda function.\]](http://docs.aws.amazon.com/ko_kr/prescriptive-guidance/latest/patterns/images/pattern-img/eb1d0b05-df33-45ae-b27e-36090055b300/images/c15cc6da-ce4e-4ea0-9feb-de1c845d3ce8.png)


이 다이어그램은 다음 워크플로를 보여줍니다.

1. 아웃바운드 트래픽은 `NAT gateway 1`를 `Public subnet 1`에 남깁니다.

1. 아웃바운드 트래픽은 `NAT gateway 2`를 `Public subnet 2`에 남깁니다.

1. Lambda 함수는 `Private subnet 1` 또는 `Private subnet 2`에서 실행할 수 있습니다.

1. `Private subnet 1` 및 `Private subnet 2`는 퍼블릭 서브넷의 NAT 게이트웨이로 트래픽을 라우팅합니다.

1. NAT 게이트웨이는 퍼블릭 서브넷에서 인터넷 게이트웨이로 아웃바운드 트래픽을 전송합니다.

1. 아웃바운드 데이터는 인터넷 게이트웨이에서 외부 서버로 전송됩니다.



**기술 스택  **
+ Lambda
+ Amazon Virtual Private Cloud(Amazon VPC)

 

**자동화 및 규모 조정**

서로 다른 가용 영역에서 두 개의 퍼블릭 서브넷과 두 개의 프라이빗 서브넷을 사용하여 고가용성(HA)을 보장할 수 있습니다. 하나의 가용 영역을 사용할 수 없게 되더라도 패턴의 솔루션은 계속 작동합니다.

## 도구
<a name="generate-a-static-outbound-ip-address-using-a-lambda-function-amazon-vpc-and-a-serverless-architecture-tools"></a>
+ [AWS Lambda](https://docs.aws.amazon.com/lambda/latest/dg/welcome.html) - AWS Lambda는 서버를 프로비저닝하거나 관리하지 않고도 코드를 실행할 수 있게 해주는 컴퓨팅 서비스입니다. Lambda는 필요 시에만 코드를 실행하며, 일일 몇 개의 요청에서 초당 수천 개의 요청까지 자동으로 규모를 조정합니다. 사용한 컴퓨팅 시간만큼만 비용을 지불하고, 코드가 실행되지 않을 때는 요금이 부과되지 않습니다.
+ [Amazon VPC](https://docs.aws.amazon.com/vpc/) – Amazon Virtual Private Cloud(VPC)를 사용하면 정의한 가상 네트워크에서 AWS 리소스를 시작할 수 있도록 클라우드의 논리적으로 격리된 섹션을 프로비저닝할 수 있습니다. 이 가상 네트워크는 AWS의 확장 가능한 인프라를 사용한다는 이점과 함께 고객의 자체 데이터 센터에서 운영하는 기존 네트워크와 매우 유사합니다.

## 에픽
<a name="generate-a-static-outbound-ip-address-using-a-lambda-function-amazon-vpc-and-a-serverless-architecture-epics"></a>

### 새 VPC 생성
<a name="create-a-new-vpc"></a>


| 작업 | 설명 | 필요한 기술 | 
| --- | --- | --- | 
| 새 VPC를 생성합니다. | AWS Management Console에 로그인하고 Amazon VPC 콘솔을 연 다음 IPv4 CIDR 범위로 `10.0.0.0/25`****를 가진 `Lambda VPC` 이름의 VPC를 생성합니다.VPC 생성에 대한 자세한 내용은 Amazon VPC 설명서의 [Amazon VPC 시작하기](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-getting-started.html#getting-started-create-vpc)를 참조하십시오.  | AWS 관리자 | 

### 퍼블릭 서브넷 2개 생성
<a name="create-two-public-subnets"></a>


| 작업 | 설명 | 필요한 기술 | 
| --- | --- | --- | 
| 첫 번째 퍼블릭 서브넷을 생성합니다. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/prescriptive-guidance/latest/patterns/generate-a-static-outbound-ip-address-using-a-lambda-function-amazon-vpc-and-a-serverless-architecture.html) | AWS 관리자 | 
| 두 번째 퍼블릭 서브넷을 생성합니다. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/prescriptive-guidance/latest/patterns/generate-a-static-outbound-ip-address-using-a-lambda-function-amazon-vpc-and-a-serverless-architecture.html) | AWS 관리자 | 

### 프라이빗 서브넷 2개 생성
<a name="create-two-private-subnets"></a>


| 작업 | 설명 | 필요한 기술 | 
| --- | --- | --- | 
| 첫 번째 프라이빗 서브넷을 생성합니다. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/prescriptive-guidance/latest/patterns/generate-a-static-outbound-ip-address-using-a-lambda-function-amazon-vpc-and-a-serverless-architecture.html) | AWS 관리자 | 
| 두 번째 프라이빗 서브넷을 생성합니다. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/prescriptive-guidance/latest/patterns/generate-a-static-outbound-ip-address-using-a-lambda-function-amazon-vpc-and-a-serverless-architecture.html) | AWS 관리자 | 

### NAT 게이트웨이에 대한 Elastic IP 주소 2개 생성
<a name="create-two-elastic-ip-addresses-for-your-nat-gateways"></a>


| 작업 | 설명 | 필요한 기술 | 
| --- | --- | --- | 
|  첫 번째 Elastic IP 주소를 생성합니다. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/prescriptive-guidance/latest/patterns/generate-a-static-outbound-ip-address-using-a-lambda-function-amazon-vpc-and-a-serverless-architecture.html)이 Elastic IP 주소는 첫 번째 NAT 게이트웨이에 사용됩니다.  | 관리자 | 
| 두 번째 Elastic IP 주소를 생성합니다. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/prescriptive-guidance/latest/patterns/generate-a-static-outbound-ip-address-using-a-lambda-function-amazon-vpc-and-a-serverless-architecture.html)이 Elastic IP 주소는 두 번째 NAT 게이트웨이에 사용됩니다. | 관리자 | 

### 인터넷 게이트웨이 생성
<a name="create-an-internet-gateway"></a>


| 작업 | 설명 | 필요한 기술 | 
| --- | --- | --- | 
| 인터넷 게이트웨이를 만듭니다. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/prescriptive-guidance/latest/patterns/generate-a-static-outbound-ip-address-using-a-lambda-function-amazon-vpc-and-a-serverless-architecture.html) | AWS 관리자 | 
| 인터넷 게이트웨이를 VPC에 연결합니다. | 방금 생성한 인터넷 게이트웨이를 선택한 후 **Actions, Attach to VPC(작업, VPC에 연결)**을 선택합니다. | AWS 관리자 | 

### NAT 게이트웨이 2개 생성
<a name="create-two-nat-gateways"></a>


| 작업 | 설명 | 필요한 기술 | 
| --- | --- | --- | 
| 첫 번째 NAT 게이트웨이를 생성합니다. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/prescriptive-guidance/latest/patterns/generate-a-static-outbound-ip-address-using-a-lambda-function-amazon-vpc-and-a-serverless-architecture.html) | AWS 관리자 | 
| 두 번째 NAT 게이트웨이를 생성합니다. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/prescriptive-guidance/latest/patterns/generate-a-static-outbound-ip-address-using-a-lambda-function-amazon-vpc-and-a-serverless-architecture.html) | AWS 관리자 | 

### 퍼블릭 및 프라이빗 서브넷을 위한 라우팅 테이블을 생성합니다.
<a name="create-route-tables-for-your-public-and-private-subnets"></a>


| 작업 | 설명 | 필요한 기술 | 
| --- | --- | --- | 
| 퍼블릭 1 서브넷의 라우팅 테이블을 생성합니다. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/prescriptive-guidance/latest/patterns/generate-a-static-outbound-ip-address-using-a-lambda-function-amazon-vpc-and-a-serverless-architecture.html) | AWS 관리자 | 
| 퍼블릭 2 서브넷의 라우팅 테이블을 생성합니다. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/prescriptive-guidance/latest/patterns/generate-a-static-outbound-ip-address-using-a-lambda-function-amazon-vpc-and-a-serverless-architecture.html) | AWS 관리자 | 
| 프라이빗 1 서브넷의 라우팅 테이블을 생성합니다. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/prescriptive-guidance/latest/patterns/generate-a-static-outbound-ip-address-using-a-lambda-function-amazon-vpc-and-a-serverless-architecture.html) | AWS 관리자 | 
| 프라이빗 2 서브넷의 라우팅 테이블을 생성합니다. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/prescriptive-guidance/latest/patterns/generate-a-static-outbound-ip-address-using-a-lambda-function-amazon-vpc-and-a-serverless-architecture.html) | AWS 관리자 | 

### Lambda 함수를 생성하고, VPC에 추가하며, 솔루션을 테스트합니다.
<a name="create-the-lambda-function-add-it-to-the-vpc-and-test-the-solution"></a>


| 작업 | 설명 | 필요한 기술 | 
| --- | --- | --- | 
| 새 Lambda 함수를 생성합니다. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/prescriptive-guidance/latest/patterns/generate-a-static-outbound-ip-address-using-a-lambda-function-amazon-vpc-and-a-serverless-architecture.html) | AWS 관리자 | 
| Lambda 함수를 VPC에 추가합니다. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/prescriptive-guidance/latest/patterns/generate-a-static-outbound-ip-address-using-a-lambda-function-amazon-vpc-and-a-serverless-architecture.html) | AWS 관리자 | 
| 외부 서비스를 직접적으로 호출하기 위한 코드를 작성합니다. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/prescriptive-guidance/latest/patterns/generate-a-static-outbound-ip-address-using-a-lambda-function-amazon-vpc-and-a-serverless-architecture.html) | 관리자 | 

## 관련 리소스
<a name="generate-a-static-outbound-ip-address-using-a-lambda-function-amazon-vpc-and-a-serverless-architecture-resources"></a>
+ [VPC에서 리소스에 액세스하도록 Lambda 함수 구성](https://docs.aws.amazon.com/lambda/latest/dg/configuration-vpc.html)