AWS API Gateway Private Rest 만들기
2022. 4. 9. 18:18ㆍit
반응형
실습 과정
- VPC Endpoint 생성 → Private Rest API 생성→ 프록시 Lambda 생성 → Private Rest API 서비스 및 메소드 생성 → VPC 권한 정책 수정 → Rest API 배포
[ Private Rest API 생성하기 ]
AWS VPC Endpoint 생성
- API Gateway 용 VPC 엔드포인드 생성이 필요
- 통신 하고자 하는 VPC 와 연결 필요
- 서비스 이름을 execute로 검색후 execute-api 선택
- VPC 항목에 연결하고자 하는 VPC ID 선택
728x90
AWS 콘솔에서 API Gateway 검색 후 신규 API 생성
- API 이름 : 사용할 API 이름 정의
- 설명 : API 설명 작성
- 엔트포인트 유형 : Private
(Regional, Edge optimized, Private : 본 실습에서는 Private으로 구성) - VPC 종단점 ID (VPC Endpoint ID) : 위에서 생성한 API용 Endpoint ID 입력
반응형
AWS API Lambda 생성하기
- AWS Console에서 Lambda 검색후 생성하기 클릭
- 이번 실습에서는 Python3.7 로 구성하여 작업
- 다음과 같이 구성이 완료 됩니다
import json
def lambda_handler(event, context):
# TODO implement
# API Gateway 프록시 사용시 Responce Type으로 꼭 전달해줘야 됨 (중요!!!!!!)
return {
'statusCode': 200,
'body': json.dumps('Hello from Lambda!')
}
API 콘솔 사용하여 Get , Post Rest Service 구현하기
- API 리소스와 메소드 생성, 권한 등 API 컨트롤 및 관리 기능을 제공
- Create Method : Rest 함수 생성 (ex. Get, Post)
- Create Resource : 해당 API 리소스 기준으로 관리가 가능(Tree 구조로 서비스 관리 가능)
- Deploy API : 생성된 서비스들을 배포 작업진행
* 배포시 Stages에서 관리가 됨
리소스 생성하기
- Resource Name : 사용 리소스 명칭 정의
- Presource Path : 실제 구성되는 리소스의 경로 (Url 호출시 사용되는 Path)
메소드 생성하기 (Get Method)
- 통합 유형 : 연결하고자 하는 서비스 유형 선택 (Lambda 함수로 실습)
- Lambda 프록시 통합 사용 : 사용을 해야 Request 정보를 전달 받을수 있음
- Lambda 리전 : 사용할 리전 선택
- Lambda 함수 : 연결 하고자하는 Lambda 선택
생성된 메소드 TEST
Private API VPC 권한 설정 및 배포작업(API 권한 설정하기)
- 선택한 API → 리소스 정책 → 리소스 정책 추가
- 현재 실습을 위해 Resource 모든 접근 권한으로 설정 ( * )
{
"Version": "2008-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": "*",
"Action": "execute-api:Invoke",
"Resource": "*"
}
]
}
Private API VPC 권한 설정 및 배포작업(API 서비스 배포하기)
- 배포 스테이지 : 없으면 신규 생성 , 있으면 배포 스테이지 선택
- 배포 완료시
https://xxxxxxxxxx-vpce-xxxxxxxxxxxxxx.execute-api.ap-northeast-2.amazonaws.com/NewStage/my-resource
https://{ API ID }-{ VPC Endpoint Id }.execute-api.ap-northeast-2.amazonaws.com/NewStage/my-resource
반응형
'it' 카테고리의 다른 글
AWS CDK Lambda & Athena (0) | 2022.04.26 |
---|---|
AWS AutoGluon 샘플( Tabular Prediction( 소득 예측 ) ) (0) | 2022.04.26 |
NIFI PostgreSQL Connection 방법 ( ExecuteSQLRecord ) (0) | 2021.07.20 |
python datetime to unix time, string변환하기 (0) | 2021.07.17 |
티스토리 지도 첨부하기 (0) | 2021.07.13 |