Amazon VPC에 연결된 Lambda 함수에 인터넷 액세스 권한을 부여하려면 어떻게 해야 합니까?
Amazon Virtual Private Cloud(VPC)에 연결된 AWS Lambda 함수에 인터넷 액세스 권한을 부여하려 합니다.
간략한 설명
프라이빗 서브넷에서 인터넷에 액세스하려면 Network Address Translation(NAT)이 필요합니다. Amazon VPC 연결 Lambda 함수에 대한 인터넷 액세스 권한을 부여하려면 아웃바운드 트래픽을 퍼블릭 서브넷의 NAT 게이트웨이 또는 NAT 인스턴스로 라우팅합니다.
자세한 내용은 Connect to the internet using an internet gateway(인터넷 게이트웨이를 사용하여 인터넷에 연결)를 참조하세요. 설정 예제는 VPC with public and private subnets(NAT)(퍼블릭 및 프라이빗 서브넷이 있는 VPC(NAT))를 참조하세요.
참고: Amazon VPC 엔드포인트를 사용하여 인터넷에 액세스하지 않고도 Amazon VPC 내에서 지원되는 AWS 서비스에 연결할 수도 있습니다.
해결 방법
(선택 사항) AWS Management Console의 VPC 마법사를 사용하여 새 Amazon VPC를 생성합니다.
참고: VPC 마법사를 사용하여 새 Amazon VPC를 생성하는 경우에는 VPC에 대한 Lambda 실행 역할 생성을 건너뜁니다.
1. AWS Management Console에서 VPC 마법사를 엽니다.
2. 퍼블릭 및 프라이빗 서브넷이 있는 VPC를 선택합니다. 새로운 퍼블릭 서브넷 및 프라이빗 서브넷 (연결된 인터넷 게이트웨이 및 NAT 게이트웨이 포함)이 Amazon VPC 콘솔에 나타납니다.
Amazon VPC에 하나의 퍼블릭 서브넷과 하나 이상의 프라이빗 서브넷을 생성합니다.
Create a subnet in your VPC(VPC에 서브넷 생성)의 지침을 참조하여 각 서브넷을 생성합니다.
서브넷을 생성할 때 **Name tag(이름 태그)**에 퍼블릭 또는 프라이빗 서브넷을 식별하는 각 서브넷의 이름을 입력합니다. 예: 퍼블릭 서브넷, 프라이빗 Lambda 1 및 프라이빗 Lambda 2.
참고: 서로 다른 가용 영역에 둘 이상의 프라이빗 서브넷을 생성하는 것이 모범 사례입니다. 이 방법은 중복성을 생성하고 Lambda 서비스가 함수에 대한 고가용성 유지할 수 있도록 합니다.
인터넷 게이트웨이를 생성하여 Amazon VPC에 연결합니다.
자세한 내용은 인터넷 게이트웨이 생성 및 연결 단원을 참조하십시오.
NAT 게이트웨이 생성
자세한 내용은 NAT 게이트웨이 생성 단원을 참조하십시오. NAT 게이트웨이를 생성할 때 [서브넷] 에서 퍼블릭 서브넷으로 만들 서브넷을 선택합니다. (이전 예제의 퍼블릭 서브넷)
참고: NAT 게이트웨이 설정을 테스트하려면 Test the public NAT gateway(퍼블릭 NAT 게이트웨이 테스트)를 참조하세요.
2개의 사용자 지정 라우팅 테이블, 즉 퍼블릭 서브넷용 하나와 프라이빗 서브넷용 하나를 생성합니다.
참고: Amazon VPC 연결 Lambda 함수는 요청 시 연결된 서브넷을 무작위로 선택합니다. 이때 함수가 잘못 구성된 서브넷을 사용할 경우 오류가 발생합니다. 무작위 오류를 방지하려면 함수가 사용하는 모든 서브넷에 동일한 구성을 적용해야 합니다.
자세한 내용은 Create a custom route table(사용자 지정 라우팅 테이블 생성)을 참조하세요. 라우팅 테이블을 만들 때, 연결된 서브넷을 식별하는 데 도움이 되는 각 라우팅 테이블의 이름을 **Name tag(이름 태그)**에 입력합니다. 예를 들어 퍼블릭 서브넷과 프라이빗 Lambda로 입력할 수 있습니다.
각 라우팅 테이블에 대해 다음 단계를 수행해야 합니다.
퍼블릭 서브넷의 라우팅 테이블의 경우
1. 퍼블릭 서브넷의 라우팅 테이블(퍼블릭 서브넷)을 퍼블릭으로 설정할 서브넷에 연결합니다.
2. 다음 구성을 포함하는 라우팅 테이블에 새 경로를 추가합니다.
[Destination]에 [0.0.0.0/0]을 입력합니다.
**Target(대상)**에서 **Internet Gateway(인터넷 게이트웨이)**를 선택한 다음, 생성한 인터넷 게이트웨이의 ID(igw-123example)를 선택합니다. [경로 저장]을 선택합니다.
프라이빗 서브넷의 라우팅 테이블의 경우
1. 프라이빗 서브넷의 라우팅 테이블(Private Lambda)을 프라이빗 서브넷에 연결합니다.
2. 다음 구성을 포함하는 라우팅 테이블에 새 경로를 추가합니다.
[Destination]에 [0.0.0.0/0]을 입력합니다.
[대상]에서 NAT 게이트웨이를 선택합니다. 그런 다음 생성한 NAT 게이트웨이 (nat-123example)의 ID를 선택합니다.
중요: NAT 인스턴스를 사용한다면 **Network Interface(네트워크 인터페이스)**를 선택하세요. [경로 저장]을 선택합니다.
참고: NAT 게이트웨이에 대한 경로가 활성 상태여야 합니다. NAT 게이트웨이가 삭제되고 라우팅을 업데이트하지 않은 경우 블랙홀 상태가 됩니다. 자세한 내용은 NAT 게이트웨이 삭제를 참조하십시오.
네트워크 ACL이 Lambda 함수의 아웃바운드 요청과 필요에 따라 인바운드 트래픽을 허용하는지 확인합니다.
Amazon VPC의 기본 네트워크 액세스 제어 목록(네트워크 ACL)은 모든 인바운드 및 아웃바운드 트래픽을 허용합니다. 네트워크 ACL 규칙을 변경하는 경우 Lambda 함수에서 아웃바운드 요청을 계속 허용해야 합니다.
또한 네트워크 ACL이 VPC 구성에 따라 다음과 같은 인바운드 트래픽을 허용하는지 확인합니다.
- NAT 게이트웨이를 사용하는 프라이빗 서브넷의 경우: 임시 포트 1024-65535에서 인바운드 트래픽을 허용합니다.
- NAT 인스턴스를 사용하는 프라이빗 서브넷의 경우: NAT 인스턴스 운영 체제에서 사용하는 휘발성 포트에서 인바운드 트래픽을 허용합니다.
참조: 자세한 내용은 Internetwork traffic privacy in Amazon VPC(Amazon VPC의 네트워크 간 트래픽 프라이버시)를 참조하세요.
VPC에 대한 Lambda 실행 역할 생성
1. AWS Identity and Access Management(IAM) 콘솔을 엽니다.
2. 역할 생성을 선택합니다. 역할 만들기 페이지가 열립니다.
3. Create role(역할 생성) 페이지에서 다음 단계를 완료합니다.
Select type of trusted entity(신뢰할 수 있는 엔터티 유형 선택)에서 AWS service(AWS 서비스)를 선택합니다.
일반적인 사용 사례의 경우 Lambda를 선택합니다.
[다음: 권한]을 선택합니다.
권한 정 연결에서 AWSLambdaVPCAccessExecutionRole을 검색합니다.
해당 이름의 정책을 선택합니다. 그런 다음, [다음: 태그]를 선택합니다.
(선택 사항) 사용 사례에 대한 태그를 추가합니다.
다음: 검토를 선택합니다.
역할 이름에 이 Lambda 실행 역할의 이름을 입력합니다. 예를 들어 lambda_vpc_basic_execution을 입력합니다.
(선택 사항) **Role description(역할 설명)**에 역할에 대한 설명을 입력합니다. 역할 생성을 선택합니다.
Lambda 함수에 역할을 연결합니다.
1. Lambda 콘솔에서 함수페이지를 엽니다.
2. Amazon VPC에 연결할 함수의 이름을 선택합니다.
3. [구성(Configuration)] 탭을 선택한 다음 [사용 권한(Permissions)]을 선택합니다.
4. 실행 역할에서 편집을 선택합니다.
5. 기존 역할 드롭다운 목록을 선택한 다음 역할을 선택합니다. 예를 들어 lambda_vpc_basic_execution을 입력합니다.
6. 저장을 선택합니다.
자세한 내용은 Lambda 실행 역할 및 IAM 콘솔에서 실행 역할 생성을 참조하십시오.
Amazon VPC에 연결하도록 Lambda 함수 구성
1. Lambda 콘솔에서 함수페이지를 엽니다.
2. Amazon VPC에 연결할 함수의 이름을 선택합니다.
3. [구성] 탭을 선택합니다.
4. 왼쪽 탐색 표시줄에서 VPC를 선택한 다음 Edit(편집)를 선택합니다. 그리고 다음 필드를 입력합니다.
**Virtual Private Cloud(VPC)**에서 VPC를 선택합니다.
[서브넷]에서 생성한 프라이빗 서브넷을 선택합니다. 서브넷 ID 및 이름을 지정한 경우 서브넷 ID 및 이름으로 서브넷을 식별합니다.
[보안 그룹]에서 보안 그룹을 선택합니다.
참고: 기본 보안 그룹을 사용해도 모든 아웃바운드 인터넷 트래픽을 허용하며, 대부분의 경우에 충분합니다. 자세한 내용은 Control traffic to resources using security groups(보안 그룹을 사용하여 리소스에 대한 트래픽 제어)를 참조하세요.
5. Save(저장)를 선택합니다.
관련 정보
Configuring a Lambda function to access resources in a VPC(VPC에서 리소스에 액세스하도록 Lambda 함수 구성)
Troubleshoot networking issues in Lambda(Lambda의 네트워킹 문제 해결)

관련 콘텐츠
- 질문됨 한 달 전lg...
- 질문됨 21일 전lg...
- 질문됨 20일 전lg...
- 질문됨 한 달 전lg...
- 질문됨 4달 전lg...
- AWS 공식업데이트됨 2년 전
- AWS 공식업데이트됨 5달 전
- AWS 공식업데이트됨 일 년 전