API Gateway 스테이지와 런타임 구성

AWS 배포 자동화

Dunieski Otano

Amazon Web Services Solutions Architect

URL 세 개, API 하나

url

  • 동일한 checkout API가 dev, staging, prod 환경에서 필요합니다
  • 각 환경은 서로 다른 다운스트림 리소스를 사용합니다
  • 값을 하드코딩하면 환경마다 다시 빌드해야 합니다
  • 스테이지 변수를 사용하면 런타임에 이 문제를 해결할 수 있습니다
AWS 배포 자동화

API Gateway 스테이지란

api

  • 스테이지는 API의 배포본입니다
  • 각 스테이지는 고유한 URL을 가집니다
  • 일반적인 스테이지: dev, staging, prod
  • 하나의 API 정의, 여러 스테이지
AWS 배포 자동화

배포에서 스테이지가 중요한 이유

stages

  • prod에 영향 없이 dev에서 테스트
  • 동일한 API를 여러 환경으로 승격
  • 다른 스테이지에 영향 없이 롤백
  • 각 스테이지는 고유한 배포 기록을 유지합니다
AWS 배포 자동화

스테이지 변수

  • 하나의 스테이지에 한정된 키-값 쌍
  • ${stageVariables.varName}로 참조
  • 환경별 구성에 사용
  • 값이 달라도 코드 변경이 필요 없습니다

variables

AWS 배포 자동화

스테이지 변수 활용 사례

  • checkout-api -> dev 스테이지: lambdaAlias = dev
  • checkout-api -> prod 스테이지: lambdaAlias = prod
  • 통합(Integration)에서 payments:${stageVariables.lambdaAlias}를 호출
  • 하나의 API가 서로 다른 두 Lambda 별칭을 호출합니다

action

AWS 배포 자동화

커스텀 도메인 이름

  • 기본 URL은 보기 불편합니다: abc123.execute-api.us-east-1.amazonaws.com/dev
  • 커스텀 도메인: api.example.com
    • TLS를 위해 ACM 인증서가 필요합니다
  • 기본 경로 매핑은 경로를 스테이지에 연결합니다
    • api.example.com/v1 → prod 스테이지

custom

AWS 배포 자동화

지금까지 배운 내용 연결하기

all

  • 스테이지 변수 <-> 2.3 영상에서 다룬 Lambda 별칭
  • ECS 작업 정의 버전과 DynamoDB 테이블 이름에도 동일한 개념이 적용됩니다
  • 환경별 승인된 버전, 코드 변경 없음
  • 3장에서는 이 개념을 여러 서비스로 확장합니다
AWS 배포 자동화

연습해 봅시다!

AWS 배포 자동화

Preparing Video For Download...