【Amazon API Gateway】プライベート統合でREST APIからinternalなNLBへ接続する

記事タイトルとURLをコピーする

こんにちは、屋根裏エンジニアの折戸です

ついに屋根裏にエアコンを取り付けました🎉
この夏は快適に仕事ができそうです〜

はじめに

ブログタイトル通りですが、今回は Amazon API Gateway(以下、API Gateway)のプライベート統合でREST APIから internal(内部向け)なNetwork Load Balancer(以下、NLB)へ接続する設定方法をご紹介します。

Amazon API Gateway プライベート統合とは

docs.aws.amazon.com

API Gateway のプライベートな統合により、VPC 内にある HTTP/HTTPS リソースを VPC 外のクライアントがアクセスできるように簡単に公開できます。プライベート VPC リソースへのアクセスを VPC 境界を超えて拡張するために、プライベート統合で API を作成できます。

ざっくり噛み砕いて説明すると、API Gatewayのインターフェースを介してプライベートサブネット配置のリソースへアクセスできる機能、といったところでしょうか。

API GatewayのAPIタイプと、ELBへ接続する方法は多岐に及びますが、今回はREST APIタイプでinternalなNLBへの接続構成の手順です。

図のとおり、 internet-facingではなくinternalなNLBとすることで、インターネットからNLBへの直接アクセスを防ぐことができ、セキュアな構成が実現できます。

前提

今回は接続の設定手順にフォーカスするため、internalなNLBとその配下のEC2は構築済みとします。
また、EC2は「http://ドメイン/」へアクセスすると、「test」のテキストをレスポンスする単純なAPサーバーの構成でご説明します。

VPCリンク 作成

API Gateway -> VPC リンク Create クリック

REST API の VPC リンク 選択
名前: 任意
ターゲット NLB: internalなNLB 選択
作成 クリック

作成中画面が表示され、数分後にステータスが Pending から Available へ変わります

公式ドキュメントには2〜4分後にステータスが変わると記載されていました チュートリアル: API Gateway のプライベート統合を使用して REST API をビルドする - Amazon API Gateway

完了するまでに約 2~4 分かかるためです

ちなみにVPC リンクを作成すると、
VPC -> エンドポイントのサービス が作成されます

API Gateway REST API 作成

API Gateway -> API API を作成 クリック

REST API 構築 クリック

REST 選択
新しい API 選択
API 名:任意
エンドポイントタイプ:リージョン、もしくはCloudFront経由の場合はエッジ最適化 選択 API の作成 クリック

リソース 作成

今回は接続確認を容易にするため、シンプルにGETメソッドを作成します

API -> リソース アクション -> メソッドの作成 クリック

GET 選択
クリック

統合タイプ:VPC リンク
プロキシ統合の使用:
メソッド:GET
VPC リンク:作成したVPC リンク
エンドポイント URL:http://[NLBのDNS名]
保存 クリック

統合リクエスト の タイプ:VPC_PROXY が作成されました

テスト 実行

コンソールから、基本的なリクエストの検証をテストを実施できます

docs.aws.amazon.com

テスト クリック

⚡テスト クリック

右側に

  • レスポンス本文
  • レスポンスヘッダー
  • ログ

が出力されます

想定どおりの結果であれば、API のデプロイ準備は完了です🎉

API デプロイ

APIをデプロイし、インターネットからアクセスできるようにします

アクション -> API のデプロイ クリック

デプロイされるステージ:[新しいステージ]
ステージ名:任意
デプロイ クリック

ステージ ページへ遷移され、ステージ情報などが確認できます
URL の呼び出し をクリックし ブラウザからアクセスします

想定通りのレスポンスが表示されれば成功です🎉

最後に

普段、VPCやEC2などのコンソール操作に慣れている自分にとって、API GatewayのコンソールはUIや操作手順などが分かりづらいと感じました。
少しでもどなたかのご参考になれば幸いです。

でわ。

折戸 亮太(執筆記事の一覧)

2021年10月1日入社
クラウドインテグレーション部技術1課

屋根裏エンジニア