[1] 구현 아키텍처
- Lambda는 VPC의 프라이빗 서브넷에서 실행되므로 외부(인터넷)에 접근할 수 없습니다.
- 따라서 NAT Gateway를 사용하여 내부서브넷과 통신을 할 수 있게 합니다.
- 아래 이미지의 빨간색 부분이 고정 IP 적용을 위한 차이점입니다.
참조 : 2024.08.11 - [Platform/AWS] - AWS - 네트워트(Network) 개념
AWS - 네트워트(Network) 개념
1. AWS 네트워크 다이어그램AWS에서 내부 서비스를 접근할 때, 또는 외부 인터넷을 사용할 때 다이어그램을 요약하자면 아래와 같습니다.많이 복잡하지만, 아래 다른 네트워크 개념을 보고 다시
wave35.tistory.com
[2] VPC 생성
- VPC 대시보드에서 우측상단의 'VPC 생성' 버튼을 눌러 신규 VPC를 생성합니다.
- 생성할 리소스에서 'VPC등'을 생성하면 VPC와 연결된 서브넷, 인터넷게이트웨이 등을 자동으로 연계하여 생성해 줍니다.
- IPv4 CIDR 블록의 경우 Lambda VPC가지고 있는10.0.0.0/25 IPv4 CIDR 제품군으로 선택해야 합니다.
- 가용영역(AZ) 수의 경우 적절하게 선택합니다.
생성 화면
VPC 생성 확인
서브넷 생성 확인
- 가용영역(AZ)수 만큼 퍼블릭 서브넷과 프라이빗 서브넷이 생성된 것을 확인합니다.
- 가용역역 1개로 설정했다면, 각각 퍼블릭, 프라이빗 서브넷이 1나씩 생성되어 있습니다.)
- 신규 VPC와 mapping이 잘 되었는지 확인합니다.
인터넷 게이트웨이 생성 확인
- 인터넷 게이트웨이 또한 생성 확인 및 신규 VPC와 mapping 되어 있는지 확인합니다.
[3] 탄력적 주소(Elastic IP) 생성
- 탄력적 IP 주소를 할당합니다. 예제를 한국 리전을 선택하였습니다.
- 탄력적 IP는 1개까지는 무료이지만(정책이 바뀔 수 있음) 2개부터는 추가된 IP에 대해서 매월 비용이 추가됩니다.
생성 확인
- 할당된 IPv4 주소를 기억합니다.
[4] NAT Gateway 생성
- 신규 NAT 게이트웨이를 생성합니다.
- 설정값에서 '서브넷'은 이전단계에서 확인한 퍼블릭서브넷으로 설정하셔야합니다.
- 게이트웨이에 미리 생성했던 할당된 IPv4 주소(탄력적 IP)를 설정합니다.
- NAT Gateway 비용은 1개의 NAT 게이트웨이당 매월 약 $44(서울리전) 비용이 추가됩니다.
생성 확인
[5] 라우팅 테이블 확인
- 라우팅 테이블은 퍼블릭, 프라이빗 서브넷과 각각 맵핑되어있어야 합니다.
퍼블릭 서브넷과 연결된 라우팅 테이블
- 인터넷 게이트웨이와 연결된 것을 확인합니다.
프라이빗 서브넷과 연결된 라우팅 테이블
- 별다른 작업을 하지 않았으면 아래 이미지와 같이 엔드포인트(pl-78...)와 연결되어 있습니다.
- '라우팅 편집' 버튼을 클릭하여 아래 이미지 빨간색 박스와 같이 NAT Gateway와 연결되도록 합니다.
[6] Lambda 함수에 VPC 설정
- 적용하려는 람다 AWS console(구성->VPC)에서 설정을 변경합니다.
- VPC는 신규로 추가한 VPC로 선택합니다.
- 서브넷은 NAT게이트웨이가 연결된 프라이빗 서브넷으로 선택합니다.
- 보안그룹은 기본을 선택합니다.
[7] 적용 확인 테스트
- 람다 실행 시, IP를 로그에 출력하여 설정한 탄력적 IP와 동일한지 확인합니다.
테스트 코드
import requests
def lambda_handler(event, context):
try:
response = requests.get('https://jsonip.com')
data = response.json()
print(data)
return {
"statusCode": 200,
"body": "SUCCESS~!!"
}
except Exception as e:
e_message = f"[ EXCEPTION : {e}"
print(e_message)
raise e
빨간박스에 설정한 탄력적 주소가 출력되는지 확인
참조 :
Lambda 함수, Amazon VPC 및 서버리스 아키텍처를 사용하여 정적 아웃바운드 IP 주소 생성 - AWS 권장 가
이 페이지에 작업이 필요하다는 점을 알려 주셔서 감사합니다. 실망시켜 드려 죄송합니다. 잠깐 시간을 내어 설명서를 향상시킬 수 있는 방법에 대해 말씀해 주십시오.
docs.aws.amazon.com
'Platform > AWS' 카테고리의 다른 글
AWS - Athena 날짜관련 함수 (0) | 2025.03.19 |
---|---|
AWS - REST API 설정 가이드 (0) | 2024.09.22 |
AWS - Lambda Runtime 실행환경 (0) | 2024.08.28 |
AWS - Lambda Warm and Cold Start (0) | 2024.08.25 |
AWS - Athena Tuning 가이드 (0) | 2024.08.21 |