blog top

CloudFront Functions で爆速格安 API を作る

今回作成したAPIもどきがこちらです!ただ日本時間を返すだけのエンドポイントです。

https://clock.bigdragon.tech

コンテンツ自体は残念ですが、ポイントはCloudFrontだけで完結しているということです!

CloudFront だけで完結?

CloudFrontはオリジンを設定する必要がありますが、今回は使用していまん。

正しくは、ダミーのS3をオリジンに設定し、CloudFront Functionsで即座にレスポンスを返しています

エッジサーバーが脊髄反射している形なので、爆速だし格安です。

作り方

全体の手順は以下の通りです。

  1. 空のS3を作成
  2. CloudFront Functionsの関数を作成
  3. CloudFrontのディストリビューションを作成
    • オリジンに上で作ったS3を設定
    • ビューワーリクエストに上で作った関数を設定
  4. 好きなドメインを紐づける(任意)
    • ディストリビューションドメイン名からでもアクセス可能

なお、今回使用した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を使うとさらに面白いことができそうです。