AWS API Gateway Private Rest 만들기

2022. 4. 9. 18:18it

반응형
실습 과정
  • VPC Endpoint 생성 → Private Rest API 생성→ 프록시 Lambda 생성 → Private Rest API 서비스 및 메소드 생성 → VPC 권한 정책 수정 → Rest API 배포

[ Private Rest API 생성하기 ]

AWS VPC Endpoint 생성

 

[ VPC Endpoint 생성 ]

 

  • API Gateway 용 VPC 엔드포인드 생성이 필요
  • 통신 하고자 하는 VPC 와 연결 필요

[ Execute api 서비스 엔드포인트 생성 ]

  • 서비스 이름을 execute로 검색후 execute-api 선택
  • VPC 항목에 연결하고자 하는 VPC ID 선택

 

728x90

 


AWS 콘솔에서 API Gateway 검색 후 신규 API 생성

 

[ API 생성 클릭 ]
[ Rest Api Private - 구축 클릭 ]
[ Private Rest Api 구성 ]
  • API 이름 : 사용할 API 이름 정의
  • 설명 : API 설명 작성
  • 엔트포인트 유형 : Private
    (Regional, Edge optimized, Private : 본 실습에서는 Private으로 구성)
  • VPC 종단점 ID (VPC Endpoint ID) : 위에서 생성한 API용 Endpoint ID 입력

반응형
AWS API Lambda 생성하기

 

[AWS Lambda 생성]
[ Lambda VPC 설정 ]
  • AWS Console에서 Lambda 검색후 생성하기 클릭
  • 이번 실습에서는 Python3.7 로 구성하여 작업
[Lambda 기본 화면]

 

  • 다음과 같이 구성이 완료 됩니다
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 Console ]

  • API 리소스와 메소드 생성, 권한 등 API 컨트롤 및 관리 기능을 제공

[API 작업 설명]

  • Create Method : Rest 함수 생성 (ex. Get, Post)
  • Create Resource : 해당 API 리소스 기준으로 관리가 가능(Tree 구조로 서비스 관리 가능)
  • Deploy API : 생성된 서비스들을 배포 작업진행
    * 배포시 Stages에서 관리가 됨

리소스 생성하기

 

[ Create Resource ]

  • Resource Name : 사용 리소스 명칭 정의
  • Presource Path : 실제 구성되는 리소스의 경로 (Url 호출시 사용되는 Path)

메소드 생성하기 (Get Method)

 

[ Create Get Method ]

  • 통합 유형 : 연결하고자 하는 서비스 유형 선택 (Lambda 함수로 실습)
  • Lambda 프록시 통합 사용 : 사용을 해야 Request 정보를 전달 받을수 있음
  • Lambda 리전 : 사용할 리전 선택
  • Lambda 함수 : 연결 하고자하는 Lambda 선택

생성된 메소드 TEST

 

[ API Gate Way Get Method Test ]


Private API VPC 권한 설정 및 배포작업(API 권한 설정하기)

 

[ 리소스 정책 수정 ]

  • 선택한 API → 리소스 정책 → 리소스 정책 추가
  • 현재 실습을 위해 Resource 모든 접근 권한으로 설정 ( * )
{
    "Version": "2008-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": "*",
            "Action": "execute-api:Invoke",
            "Resource": "*"
        }
    ]
}

Private API VPC 권한 설정 및 배포작업(API 서비스 배포하기)

 

[API 배포하기]

  • 배포 스테이지 : 없으면 신규 생성 , 있으면 배포 스테이지 선택
  • 배포 완료시

[ 신규 생성된 Stage에 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

[ API 적용 테스트 결과 ]

 

 

반응형