ALB の後ろに API Gateway を配置する構成を組んでみた

ALB の後ろに API Gateway を配置する構成を組んでみた

2026.02.05

はじめに

やかめです。
API Gateway と ALB の構成といえば「API Gateway から ALB を呼び出す」パターンをよく目にしますが、今回は逆の「ALB の背後に API Gateway を配置する」構成を初めて知ったため、実際に作ってみました。

調べてみると、以下の AWS re:Post 記事があり、Private API Gateway を VPC Endpoint 経由でロードバランサーから呼び出す構成が紹介されていました。

https://repost.aws/ja/knowledge-center/invoke-private-api-gateway

本記事では、上記記事を参考に、

  • 外部インターネット → ALB → VPC Endpoint(execute-api)→ API Gateway → Lambda

という構成を作成し、ALB 経由で API Gateway に通信が到達するか確認します。

構成図

構成図.png

やってみた

ALB の背後に Private API Gateway を配置する構成を作成した手順を整理します。

1. セキュリティグループの作成

最初に、ALB 用と VPC Endpoint 用のセキュリティグループを作成します。

ALB 用セキュリティグループ

  • インバウンド
    • HTTP(80)/HTTPS(443)
    • 送信元:0.0.0.0/0
  • アウトバウンド:
    • HTTPS(443)
    • 送信先:VPC Endpoint 用 SG

ALB は外部からの HTTP/HTTPS 通信を受け付け、アウトバウンドは VPC Endpoint に対する HTTPS 通信のみを許可しています。

VPC Endpoint 用セキュリティグループ

  • インバウンド
    • HTTPS(443)
    • 送信元:ALB 用セキュリティグループ
  • アウトバウンド:
    • デフォルト

VPC Endpoint は ALB からの HTTPS 通信のみを受け付け、アウトバウンドはデフォルト設定のままとしています。

2. VPC Endpoint の作成

次に、API Gateway にアクセスするための Interface VPC Endpoint を作成します。

  • サービス名:com.amazonaws.ap-northeast-1.execute-api
  • タイプ:Interface
  • サブネット:Private Subnet
  • セキュリティグループ:VPC Endpoint 用 SG
  • ポリシー:フルアクセス
  • Private DNS:有効

vpce01.png
vpce02.png

サービス名には API Gateway 用の execute-api を指定し、ポリシーは検証用途のためフルアクセスとしています。
また、Private DNS を有効にすることで、VPC 内から execute-api のエンドポイントが VPC Endpoint 経由で解決されるようになります。

3. Private API Gateway を作成

API Gateway で Private REST API を作成します。

  • API 種別:REST API
  • API エンドポイントタイプ:プライベート
  • VPC エンドポイント ID:作成したVPC エンドポイントの ID
  • セキュリティポリシー:SecurityPolicy_TLS13_1_3_2025_09 (recommended)
  • エンドポイントアクセスモード:ベーシック

VPC エンドポイント ID を指定することで、 Private API Gateway と VPC Endpoint が関連付けられます。

API Gateway02.png
API Gateway04.1.png

Resource Policy を設定
API Gateway 側では、VPC Endpoint 経由のアクセスのみを許可するため、以下のような Resource Policy を設定します。(上部の AWS re:Post を参考にしています)

Resource Policy
{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Deny",
      "Principal": "*",
      "Action": "execute-api:Invoke",
      "Resource": "arn:aws:execute-api:ap-northeast-1:ACCOUNT_ID:API_ID/*/*/*",
      "Condition": {
        "StringNotEquals": {
          "aws:SourceVpce": "vpce-xxxxxxxx"
        }
      }
    },
    {
      "Effect": "Allow",
      "Principal": "*",
      "Action": "execute-api:Invoke",
      "Resource": "arn:aws:execute-api:ap-northeast-1:ACCOUNT_ID:API_ID/*/*/*"
    }
  ]
}

ルートリソース / に GET メソッドを作成
API Gateway 上では、追加のリソースは作成せずデフォルトのルートリソース / のみに GET メソッドを作成します。

  • リソースパス:/
  • HTTP メソッド:GET
  • 認可:NONE
  • API キー:不要
  • 統合タイプ:Lambda(または Mock)

4. Lambda を統合

事前に作成しておいた Lambda 関数をルートリソース / の GET メソッドに統合します。
なお、今回の検証では通信経路の確認が目的であるため、Lambda の代わりに Mock 統合を設定しても問題ありません。

def lambda_handler(event, context):
    return {
        "statusCode": 200,
        "body": "Hello from Lambda!"
    }

作成した API をステージ test にデプロイします。

  • ステージ名:test

5. ターゲットグループの作成

  • ターゲットタイプ:IP
  • プロトコル:HTTPS
  • ポート:443
  • ヘルスチェックの詳細設定
    • 成功コード:200,403
  • ターゲットを登録:
    • ネットワーク:使用する VPC
    • IPを指定してポートを定義する:VPC Endpoint の ENI(各 AZ の IP)

本構成では、API Gateway への到達可否のみを確認することを目的としているため、ヘルスチェックでは API Gateway に到達した際に返却される 403(認可エラー)も正常とみなす設定としています。
なお、動作確認時には実際に 200 レスポンスが返却されることを確認しています。

tg05.png

6. ALB を作成

  • 種別:Application Load Balancer
  • スキーム:Internet-facing
  • サブネット:Public Subnet(2AZ)
  • セキュリティグループ:ALB 用 SG
  • リスナー:HTTP (80)
  • ターゲットグループ:作成したターゲットグループを選択

7. ALB のルールを設定

ALB から API Gateway に正しくリクエストが届くよう、リスナールールで Host ヘッダーを書き換えます。

  • 条件:パス = /*
  • トランスフォーム:
    • 一致:.*
    • 置換:{API_ID}.execute-api.ap-northeast-1.amazonaws.com
  • アクション:ターゲットグループへ転送

Host ヘッダーを API Gateway のエンドポイントに書き換えています。

8. 動作確認

動作確認.png

ALB の DNS 名に対して /test/ を指定してアクセスしたところ、API Gateway を経由して Lambda のレスポンスが返ることを確認しました。

おわりに

今回は「ALB の背後に API Gateway を配置する構成」を作成してみました。

構成を作成する過程で、ALB 側での Host ヘッダーの書き換え設定に苦戦しました。同様の構成を試される際はご注意ください。

また、今回の検証は挙動確認を目的としたものであり、本番利用については考慮していないことをご理解ください。

本記事が参考になれば幸いです。

クラスメソッドオペレーションズ株式会社について

クラスメソッドグループのオペレーション企業です。

運用・保守開発・サポート・情シス・バックオフィスの専門チームが、IT・AIをフル活用した「しくみ」を通じて、お客様の業務代行から課題解決や高付加価値サービスまでを提供するエキスパート集団です。

当社は様々な職種でメンバーを募集しています。

「オペレーション・エクセレンス」と「らしく働く、らしく生きる」を共に実現するカルチャー・しくみ・働き方にご興味がある方は、クラスメソッドオペレーションズ株式会社 コーポレートサイト をぜひご覧ください。※2026年1月 アノテーション㈱から社名変更しました

この記事をシェアする

FacebookHatena blogX

関連記事