API Gatewayと言えば、REST APIを利用してLambda関数を呼び出してサーバーレス構成を実現すると思われますが、最近はPrivate API Gatewayを利用したことがありますので、解説いたします。
API Gatewayの種類
Private API Gatewayについて
プライベートAPI Gatewayのプライベートとは、パブリックから直接アクセスできないとなるだけで、あなただけがアクセスできるプライベートネットワーク内のAPIという意味ではありません。(だって、それってVPCですよね。API GatewayはVPCに属しません)
なので、AWSのプライベートネットワーク内においては特に制限をしない限り、誰でもアクセスできるAPI Gatewayです。
Private API Gatewayにアクセスするための設定
プライベートAPI GatewayはInterface Endpoint経由でアクセスしているので、内部といってもリソースポリシーが必要です。
リソースポリシー
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": "*",
"Action": "execute-api:Invoke",
"Resource": "arn:aws:execute-api:ap-northeast-1:809449918173:dd75nu3d01/*"
},
{
"Effect": "Deny",
"Principal": "*",
"Action": "execute-api:Invoke",
"Resource": "arn:aws:execute-api:ap-northeast-1:809449918173:dd75nu3d01/*",
"Condition": {
"StringNotEquals": {
"aws:SourceVpce": "vpce-0c76e9272ffbeef67"
}
}
}
]
}
Private API Gatewayの作成
作成時、エンドポイントの入力は求められています。
上記の設定では、アベイラビリティーゾーン二つ跨いでいる構成となり、各ENIに対して適切なセキュリティグループの作成が必要ですのでご注意ください。
まとめ
簡単ながら、Private API Gatewayの構築例を解説いたしました。実際サーバーレス構成で良く使うと思うので、ご参考になれば幸いです。