AWS API Gateway REST API 프라이빗 구축

Volc·2024년 9월 25일
0

AWS

목록 보기
10/15

API gateway 서비스를 사용할 때 VPC 내에서만 액세스할 수 있도록 REST API를 생성하려고 한다.

순서는 다음과 같다.

VPC Endpoint 생성 -> Private REST API GateWay 생성 -> lambda 함수 생성 -> api gateway 리소스 및 메소드 생성 -> VPC 권한 정책 수정 -> stage 생성 및 REST API 배포 -> 테스트

VPC Endpoint 생성

  • AWS Console에서 VPC 서비스를 찾아 엔드포인트를 생성한다.
    • VPC 내에 서브넷이나 보안그룹에 설정 되어 있는 경우 허용할 서브넷과 보안 그룹을 설정 한다.
    • 정책은 전체 액세스로 하여 생성하였다.

Private Rest API Gateway 생성

  • AWS Console에서 API Gateway 서비스를 검색하여 API 생성한다.
  • REST API 프라이빗 구축을 클릭
  • VPC 엔드포인트를 위에서 만든 엔드포인트로 설정해준다.

AWS API lambda 함수 생성

  • AWS Console에서 Lambda 서비스를 검색하여 함수를 생성한다.

    • 런타임으로 사용할 언어를 선택하고 아키텍처와 실행 역할을 설정한다.

    • 역할의 경우 필자는 다음과 같이 선택하였다.

      • Lambda 실행을 위한 정책, S3 접근 정책과 EC2 정책을 넣어줬다.
  • 고급 설정에 들어가 VPC를 활성화 해준다.

API Gateway 리소스 및 메소드 생성

  • 리소스 생성
    • 생성한 API Gateway에 들어가 리소스를 생성한다.
  • 메서드 생성
    • 메서드를 다음과 같이 생성해준다.
      • 메서드 유형은 GET
      • 통합 유형은 Lambda 함수
      • Lambda 프록시 통합 활성화를 하여 Request 정보를 전달 받는다.
      • Lambda 함수 선택

VPC 권한 정책 수정

  • API Gateway에서 리소스 정책에 들어가 다음과 같이 편집을 해준다.
    {
      "Version": "2008-10-17",
      "Statement": [
        {
          "Effect": "Allow",
          "Principal": "*",
          "Action": "execute-api:Invoke",
          "Resource": "*"
        }
      ]
    }
    • Resource 모든 접근을 허용

Stage 생성 및 REST API 배포

  • 생성한 리소스를 클릭하여 API 배포를 누른다.
    • stage가 없기 때문에 새 스테이지를 선택하여 생성해준다.
    • 생성과 동시에 배포가 된다.

테스트

  • 필자는 VPC내에 databricks가 구축되어 있다.
  • databricks에서 stage에 있는 url과 리소스 이름을 합쳐 요청을 보낸다.

어려웠던 점

  • 네트워크에 대한 이해가 어려웠음.
  • 네트워크 이해가 부족하여 구성하는데 어려웠음.

참고 사항

  • REST API private은 VPC에서 접근되는 요청만 처리한다.
  • public을 좀 안전하게 사용하고 싶다면 api key를 발급받는 방법도 하나의 방법이다.
    • 이때 사용량 계획에 api와 api key를 등록해야지만 외부에서 요청이 가능해지는 것 같으니 참고하자.

참고 사이트

Amazon API Gateway 기반 VPC Link 활용 방법
AWS API Gateway Private Rest 만들기
[AWS] 📚 API Gateway 인증 키 & 사용량 제한 설정

profile
미래를 생각하는 개발자

0개의 댓글