AWSは先日、セキュアでグローバルな低レイテンシーのKey-ValueデータストアであるAmazon CloudFront KeyValueStoreを発表した。このデータストアは、CloudFront Functionsからの読み取りアクセスを可能にし、CloudFrontのエッジロケーションで高度なカスタマイズ可能なロジックを実現した。
以前は、開発者は例えば、URLをリダイレクトすべきかどうかを決定するデータなど、関数のコード内に設定データを埋め込む必要があった。だが現在はCloudFront KeyValueStoreを使うことで、関数と関数コードに関連するデータを独立して更新できるため、関数コードを簡素化し、コード変更をデプロイする必要なくデータを簡単に更新できる。
CloudFront KeyValueStoreは、ストレージリソースを拡張することなく、毎秒数百万のリクエストに素早く対応できるようになっている。
開発者は、AWS Management Console、AWS Command Line Interface(AWSCLI)、AWS SDKsを使ってCloudFront KeyValueStoreを管理できる。さらに、同社はAWS CloudFormationのサポートを近々追加する予定だ。
key-value storeの作成(出典:AWS News Blog)
key-value storeを作成する際、開発者はこのJSON構造を持つAmazon S3上のソースファイルを使って、作成中にキー/バリューデータをインポートできる。
{
"data":[
{
"key":"key1",
"value":"val1"
},
{
"key":"key2",
"value":"val2"
}
]
}
key-value storeの最大サイズは5MBで、開発者はこれを1つのクラウドファンクションにリンクできる。さらに、キーの最大サイズは512バイト、値の最大サイズは1キロバイトだ。Redditのスレッドにはこのようなコメントがある。
CFファンクションのオプションはとても素晴らしいものです。5MBのストレージ制限は過少に感じますが、0.03ドル/100万リードは、他のAWSのオプションと比べると、非常に魅力的に感じます。
さらに、PineconeのプリンシパルエンジニアであるRohit Kulshreshtha氏は次のようにツイート(ポスト)している。
なぜキーバリューストアと呼ぶのでしょうか?キーバリューストアと呼ぶのは大げさな気がします。どちらかというと、コンフィギュレーションを格納する場所のように思えます。
AWSのチーフエバンジェリストであるDanilo Poccia氏はこのように回答している。
複雑なコンフィグは間違いなくユースケースの1つです。しかし、Web/アプリ層から更新することもでき、更新は数秒でエッジロケーションにレプリケートされます。
さらに、AWSサーバーレスのヒーローであるYan Cui氏はこのようにツイートしている。
これは面白い!CloudFrontはCloudFront 関数用にKeyValueStoreを追加しました。
かなり静的なkvペアがあるA/Bテストには便利で期待が持てそうですが、トランザクションデータには使えません。
最後に、CloudFront KeyValueStoreは世界中の全てのエッジロケーションで利用可能だ。また、ユーザーはパブリックAPIからの読み取り/書き込み操作とCloudFront Functions内からの読み取り操作に基づいて、使用した分だけの支払いで良い。詳細はCloudFrontの価格ページで確認してほしい。