문제의 발단은 VPC에 속한 Lambda에서 Regional API Gateway 에 접근하지 못하는 문제가 발생하였다. 이후 이리 저리 확인하다가 해당 VPC에 있는 EC2 에서도 동일한 문제가 있다는 것을 확인하였다.
분명 API Gateway 를 위한 VPC Endpoint 도 생성하였고, FAQ에 나와있는 것처럼 Private DNS Names 을 활성화하고 기존과 같이 접근하거나, VPCE IP로 Host 헤더나 x-apigw-api-id 헤더를 포함해도 VPC 내부에서 API Gateway 의 모든 요청이 Forbidden 으로 거부되었다. (당연히 API Key 사용은 비활성화 했다.)찬가지였다.
Public Network (AWS 밖) 에서는 잘 접속 되는 것이 왜 VPC 내부에서는 접속되지 않는지 당췌 이해가 되지 않았다.
AWS Knowledge에도 해당 내용이 있었다.
https://aws.amazon.com/ko/premiumsupport/knowledge-center/api-gateway-vpc-connections/
(근데 뭔말인지;;;)
https://dulajra.medium.com/how-to-create-a-vpc-endpoint-for-api-gateway-a84bc7eeba28 이걸 보고 리소스 정책을 수정해 보았지만 여전히 동작하지 않았다.
지금까지 찾은 방법은 단 하나이다. 바로 API Gateway의 Endpoint 유형을 "Regional"이 아닌 "Private" 으로 바꾸는 것이다.
이후 VPCE 의 Private DNS Names 가 Disabled 상태에서는 "https://{rest-api-id}-{vpce-id}.execute-api.{region}.amazonaws.com/{stage}" 형태의 URL 에서 동작이 정상적으로 이루어졌다.
Private DNS Names 가 Enabled 상태에서는 기존의 도메인 "https://{rest-api-id}.execute-api.{region}.amazonaws.com" 형태에서도 동작하였다.
'개발 및 운영 > AWS GCP Cloud' 카테고리의 다른 글
AWS VPC Endpoint 쓸 때 요금 폭탄 주의!! (0) | 2021.12.03 |
---|---|
AWS Lambda 에서 인터넷 접속 (0) | 2021.11.16 |
CloudFront에 API Gateway를 사용할 때 403 Forbidden 오류 문제 (0) | 2021.11.03 |
AWS NAT Instance 포트포워딩시 Source IP 유지하기 (0) | 2019.10.26 |
AWS Lambda 기본 (삽질기) (1) | 2019.10.24 |
댓글