CloudFront Functions で爆速格安 API を作る
今回作成したAPIもどきがこちらです!ただ日本時間を返すだけのエンドポイントです。
コンテンツ自体は残念ですが、ポイントはCloudFrontだけで完結しているということです!
CloudFront だけで完結?
CloudFrontはオリジンを設定する必要がありますが、今回は使用していまん。
正しくは、ダミーのS3をオリジンに設定し、CloudFront Functionsで即座にレスポンスを返しています。
エッジサーバーが脊髄反射している形なので、爆速だし格安です。
作り方
全体の手順は以下の通りです。
- 空のS3を作成
- CloudFront Functionsの関数を作成
- ClouFront > 関数 から作成できる
- CloudFrontのディストリビューションを作成
- オリジンに上で作ったS3を設定
- ビューワーリクエストに上で作った関数を設定
- 好きなドメインを紐づける(任意)
- ディストリビューションドメイン名からでもアクセス可能
なお、今回使用したCloudFront Functionsの関数はこちらです。
function handler(event) {
var response = {
statusCode: 200,
statusDescription: 'OK',
body: new Date(Date.now() + 9 * 60 * 60 * 1000)
.toISOString()
.replace("T", " ")
.replace(/-/g, "/")
.replace(/\.\d+Z/, "")
};
return response;
}
料金
CloudFront Functionsは、1ヶ月200万回まで呼び出しが無料です。
その後も100万回あたり0.10 USDなので、趣味程度ならほとんどお金がかかりません。
ちなみにLambdaやLambda@Edgeよりも安いです。
まとめ
CloudFront Functionsを使って簡単なエンドポイントを作成しました。
余談ですが、CloudFront KeyValueStoreを使うとさらに面白いことができそうです。