この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。
Amazon Kinesis Data Streamsにオンデマンドが登場しました。これによって、シャード数の管理が不要になります。
本記事では、CloudFormationでKinesis Data Streams オンデマンドを作ってみました。
おすすめの方
- Kinesis Data Streams オンデマンドをCloudFormationで作りたい方
CloudFormationでKinesis Data Streams オンデマンドを作る
CloudFormationテンプレート
ON_DEMAND
を指定します。StreamModeDetails
も必要なので注意です。
kinesis.yaml
AWSTemplateFormatVersion: "2010-09-09"
Description: Kinesis Data Streams On-demand Sample
Resources:
SampleStream:
Type: AWS::Kinesis::Stream
Properties:
StreamModeDetails:
StreamMode: ON_DEMAND
デプロイ
aws cloudformation deploy \
--template-file kinesis.yaml \
--stack-name Kinesis-Ondemand-Sample-Stack \
--capabilities CAPABILITY_NAMED_IAM
Kinesis Data Streamsを確認する
バッチリ作成できました。
おまけ: 既存のKinesis Data Streamsをオンデマンドに変更してみる
シャード数が1のKinesis Data Streamsを作る
kinesis.yaml
AWSTemplateFormatVersion: "2010-09-09"
Description: Kinesis-To-Ondemand-Sample
Resources:
SampleStream:
Type: AWS::Kinesis::Stream
Properties:
ShardCount: 1
オンデマンドに変更する
kinesis.yaml
AWSTemplateFormatVersion: "2010-09-09"
Description: Kinesis-To-Ondemand-Sample
Resources:
SampleStream:
Type: AWS::Kinesis::Stream
Properties:
StreamModeDetails:
StreamMode: ON_DEMAND
変更できました!
なお、切り替えは1日2回までなので、ご注意ください。
オンデマンドモードとプロビジョニングモードは 1 日に 2 回切り替えることができます。
https://aws.amazon.com/jp/blogs/news/amazon-kinesis-data-streams-on-demand-stream-data-at-scale-without-managing-capacity/
さいごに
下記も参考にどうぞ。
参考
- オンデマンドモードをサポートしたKinesis Data Streamsを試してみた #reinvent | DevelopersIO
- Amazon Kinesis Data Streams On-Demand – キャパシティーを管理せずに大規模にデータをストリーミング | Amazon Web Services ブログ
- AWS::Kinesis::Stream - AWS CloudFormation
- create-stream — AWS CLI 2.4.4 Command Reference
- 秒間15,000件のデータを Kinesis Data Streams のオンデマンドモードで処理してみました #reinvent | DevelopersIO