概要 Private VPC(or サブネット)に配置したAPIサーバをAPI Gateway経由でインターネットに公開す方法を解説する。 APIサーバの設計 システム要件からAPIは次のように分類した。 公開API: インターネットに公開する必要のあるAPI 非公開API: インターネットに公開する必要のないAPI。Privateサブネットからのみアクセス可能 設計レベルで考慮したこと。 認証周りをCognitoで統一したい APIにキャッシュの仕組みを取り入れたい 仕様はOpen APIで書いてるので、Swaggerでバリデーションしたい 外部APIに関してはリクエスト制限を設けたい API AggregatorとしてはAWSが提供するAPI GatewayのほかKong等もあるが、今回は上記全てに対応でき、かつTerraformのリソースも揃っているAPI Gatewayを採用した。
![API GatewayとAPIサーバの連携 - Qiita](https://cdn-ak-scissors.b.st-hatena.com/image/square/f65c64061fcacec67aac09b29344e5554eb72fd3/height=288;version=1;width=512/https%3A%2F%2Fqiita-user-contents.imgix.net%2Fhttps%253A%252F%252Fcdn.qiita.com%252Fassets%252Fpublic%252Farticle-ogp-background-412672c5f0600ab9a64263b751f1bc81.png%3Fixlib%3Drb-4.0.0%26w%3D1200%26mark64%3DaHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTk3MiZoPTM3OCZ0eHQ9QVBJJTIwR2F0ZXdheSVFMyU4MSVBOEFQSSVFMyU4MiVCNSVFMyU4MyVCQyVFMyU4MyU5MCVFMyU4MSVBRSVFOSU4MCVBMyVFNiU5MCVCQSZ0eHQtYWxpZ249bGVmdCUyQ3RvcCZ0eHQtY29sb3I9JTIzMUUyMTIxJnR4dC1mb250PUhpcmFnaW5vJTIwU2FucyUyMFc2JnR4dC1zaXplPTU2JnM9MjUxMDBlMjIwZTRmMGE4Yjg4NTY4N2QzNzE1MDg3NjI%26mark-x%3D142%26mark-y%3D57%26blend64%3DaHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZoPTc2Jnc9NzcwJnR4dD0lNDBuYW9taWNoaS15JnR4dC1jb2xvcj0lMjMxRTIxMjEmdHh0LWZvbnQ9SGlyYWdpbm8lMjBTYW5zJTIwVzYmdHh0LXNpemU9MzYmdHh0LWFsaWduPWxlZnQlMkN0b3Amcz0wZDA4MmE1ZWEzZTFhMDUyYWY2YzcxNzA5NDdkYjc3ZA%26blend-x%3D142%26blend-y%3D486%26blend-mode%3Dnormal%26s%3D5afc89aef6436c6a97c13ad5f2b8df8f)