API Management
API Gateway의 Stages
Stages는 API의 특정 버전을 다양한 환경(dev, test, prod 등)에서 분리•관리할 수 있도록 해주는 기능이다.
각 Stage는 API의 배포 상태를 나타내며, 각기 다른 환경에서 API 동작을 테스트하고 운영할 수 있게 해준다.
Stage의 URL 예시
각 Stage에는 고유한 URL이 할당된다. 이 URL을 통해 특정 Stage에 배포된 API에 접근할 수 있다.
https://{api-id}.execute-api.{region}.amazonaws.com/{stage-name}
- Dev 환경의 URL: https://1234567890.execute-api.us-west-2.amazonaws.com/dev
- Prod 환경의 URL: https://1234567890.execute-api.us-west-2.amazonaws.com/prod
Stage Variables
각 Stage에는 환경 변수와 같이 Stage Variables를 설정할 수 있다.
이를 통해 Stage마다 다른 값(예: 데이터베이스 연결 정보, API 키 등)을 설정하여 API가 각 환경에 맞게 동작하도록 할 수 있다.
예를 들어, Dev 환경에서는 Local의 데이터베이스를 사용, Prod 환경에서는 RDS의 데이터베이스를 사용 할 경우, 각 환경에 알맞게 Stage Variables를 설정하면 된다.
API Gateway Stages + Lambda Alias
API Gateway와 Lambda Alias를 함께 사용할 수 있다.
이 조합은 여러 개발 환경(예: PROD, UAT, DEV)이 있을 때, 특정 환경에 특정 버전의 코드을 호출할 수 있도록 설정할 수 있다.
(예시)
API Gateway Stages | Lambda Alias | Lambda Version | ||
개발 환경 (개발자용) | Dev | https://aws.com/dev | Dev | v3 |
베타 테스트 환경 (QA팀용) | Beta | https://aws.com/beta | Beta | v2 |
프로덕션 환경 (실제 서비스) | Prod | https://aws.com/prod | Prod | v1 |
Lambda Alias에 대한 정리: https://jibinary.tistory.com/522
😵 DVA-C03 문제
한 개발자가 Amazon API Gateway REST API를 관리하고 있습니다. 고객들은 프론트엔드 UI와 Amazon Cognito 인증을 통해 API를 사용하고 있습니다. 개발자는 새로운 엔드포인트와 이전 버전과 호환되지 않는 인터페이스 변경 사항이 포함된 API의 새 버전을 가지고 있습니다. 개발자는 고객에게 영향을 주지 않으면서 팀의 다른 개발자들이 이 새 버전에 대해 베타 접근을 할 수 있도록 제공해야 합니다.
운영 오버헤드가 가장 적은 솔루션은 무엇입니까?
- API Gateway의 API에 개발(development) 스테이지를 정의하고, 다른 개발자들에게 이 스테이지를 사용하도록 안내합니다.
- 새로운 API 애플리케이션 코드에 연결되는 API Gateway의 새로운 API를 정의하고, 다른 개발자들에게 새로운 API를 사용하도록 안내합니다.
- API 애플리케이션 코드에 쿼리 파라미터를 구현하여 호출할 코드 버전을 결정하도록 합니다.
- 개발자가 추가하고자 하는 API 엔드포인트를 위한 새로운 API Gateway 엔드포인트를 지정합니다.
정답
정답 1번.
API Gateway API에 개발(development) 스테이지를 정의하면, 다른 개발자들이 프로덕션 환경에 영향을 주지 않고 새 버전을 테스트할 수 있다. 이렇게 하면 개발자들이 프로덕션 환경과 충돌 없이 새 API 버전을 독립적으로 작업할 수 있다.
'클라우드(AWS)' 카테고리의 다른 글
[AWS] Lambda Layer란? 쉽게 정리 (Lambda에서 필요한 라이브러리 사용하기) (1) | 2024.11.09 |
---|---|
[AWS] Amplify란? 쉽게 정리 (Full Stack 애플리케이션 개발을 쉽게 만들어주는 서비스) (1) | 2024.10.22 |
[AWS] Amazon OpenSearch란? 쉽게 정리 (검색 엔진, Elasticsearch) (0) | 2024.10.20 |
[AWS] RBAC와 ABAC란? 쉽게 정리 (0) | 2024.10.12 |
[AWS] STS (Security Token Service)란? 쉽게 정리 (AssumeRole, AssumeRoleWithSAML, Trust Policy) (3) | 2024.10.12 |