• 検索結果がありません。

IAM ポリシーとユーザーの作成

ドキュメント内 Amazon Kinesis Data Streams - 開発者ガイド (ページ 31-34)

シャードに関する追加情報

このチュートリアルを除き、初めて Kinesis Data Streams を使用する場合は、もっと慎重にストリーム作 成プロセスを計画する必要がある場合があります。シャードをプロビジョニングするときには、予想され る最大需要を考慮する必要があります。このシナリオを例として使用すると、米国の株式市場の取引トラ フィックは、昼間 (東部標準時) にピークを迎えます。その時刻をサンプルとして需要の予測を行う必要 があります。その後、予想される最大需要に合わせてプロビジョニングするか、需要の変動に応じてスト リームを拡大または縮小することができます。

シャードは、スループット容量の単位です。[Kinesis ストリームの作成] ページで、[必要なシャード数の予 想] を展開します。次のガイドラインに従って、平均レコードサイズ、1 秒間に書き込まれる最大レコード 数、コンシューマーアプリケーションの数を入力します。

平均レコードサイズ

計算される平均レコードサイズの予測。この値がわからない場合は、予測される最大レコードサイズ を使用します。

書き込まれる最大レコード数

データを提供するエンティティの数と各エンティティで 1 秒間に生成されるおよそのレコード数を考 慮に入れます。たとえば、20 台の取引サーバーから株式取引データを取得し、各サーバーで 1 秒間に 250 個の取引が生成される場合、1 秒あたりの合計取引数 (レコード数) は 5,000 になります。

コンシューマーアプリケーションの数

独立してストリームを読み取り、ストリームを固有の方法で処理し、固有の出力を生成するアプリ ケーションの数。各アプリケーションでは、複数のインスタンスを異なるマシン (つまり、クラス ター) で実行することができます。このため、大規模なストリームでも遅延することなく処理できま す。

表示された予測シャード数が現在のシャード制限を超えた場合は、その数のシャード数を含むストリー ムを作成する前に、制限を引き上げるリクエストの送信が必要な場合があります。シャード制限の引 き上げをリクエストするには、Kinesis Data Streams 制限のフォームを使用します。ストリームおよび シャードの詳細については、「データストリームの作成および更新 (p. 5)」および「ストリームの作成と管 理 (p. 39)」を参照してください。

次のステップ

ステップ 2: IAM ポリシーとユーザーの作成 (p. 26)

ステップ 2: IAM ポリシーとユーザーの作成

AWS では、セキュリティのベストプラクティスとして、詳細なアクセス許可を使用して様々なリソースへ のアクセスを制御することが推奨されています。AWS Identity and Access Management (IAM) を使用する と、AWS のユーザーとユーザー許可を管理できます。IAM ポリシーは、許可されるアクションとそのアク ションが適用されるリソースを明示的にリストアップします。

一般的に、Kinesis Data Streams プロデューサーおよびコンシューマーには、次の最小アクセス権限が必 要になります。

プロデューサー

アクション リソース 目的

DescribeStream Kinesis data stream レコードを書き込む前に、プロデューサーは、ストリームが存在し、アクティブであることを確認する必要 があります。

PutRecord、PutRecords Kinesis data stream レコードを Kinesis Data Streams に書き込みます。

ステップ 2: IAM ポリシーとユーザーの作成

コンシューマー

アクション リソース 目的

DescribeStream Kinesis data stream レコードを読み取る前に、コンシューマーは、ストリームが存在し、アクティブであることを確認し、スト リームにシャードが含まれることを確認します。

GetRecords、GetShardIteratorKinesis data stream Kinesis Data Streams シャードからレコードを読み込みます。

CreateTable、DescribeTable、GetItemAmazon DynamoDB、PutItem、Scan、UpdateItem

テーブル Kinesis クライアントライブラリ (KCL) を使用してコンシューマーが開発されている場合は、アプリケーショ ンの処理状態を追跡するときに DynamoDB テーブルにアクセスする必要があります。テーブルは、最初に開 始したコンシューマーによって作成されます。

DeleteItem Amazon DynamoDB

テーブル コンシューマーが Kinesis Data Streams シャードで分割と結合のオペレーションを実行する場合。

PutMetricData Amazon CloudWatch

ログ KCL は、アプリケーションをモニタリングするのに便利なメトリクスを CloudWatch にアップロードしま す。

このアプリケーションでは、前述のすべてのアクセス許可を付与する IAM ポリシーを作成します。実際 には、プロデューサーとコンシューマーに 1 つずつ、2 つのポリシーを作成することになるかもしれませ ん。

IAM ポリシーを作成するには

1. 新しいストリームの Amazon リソースネーム (ARN) を見つけます。この ARN は、 [ストリーム ARN]

として [詳細]タブの上部に表示されます。ARN 形式 は次のとおりです。

arn:aws:kinesis:region:account:stream/name

リージョン

リージョンコード (us-west-2 など)。詳細については、「リージョンとアベイラビリティーゾー ンの概念」を参照してください。

アカウント

AWS アカウント ID (「アカウント設定」を参照してください)。

name

ステップ 1: データストリームの作成 (p. 25) からのストリームの名前 (StockTradeStream)。

2. コンシューマーによって使用される (最初のコンシューマーインスタンスによって作成された) DynamoDB テーブルの ARN を確認します。次のような形式になります。

arn:aws:dynamodb:region:account:table/name

リージョンとアカウントは前のステップと同じ場所のものですが、この場合の名前はコンシューマー アプリケーションによって作成および使用されるテーブルの名前となります。コンシューマーによっ て使用される KCL では、アプリケーション名がテーブル名として使用されます。後で使用されるアプ リケーション名である StockTradesProcessor を使用します。

3. IAM コンソールで、[ポリシー] (https://console.aws.amazon.com/iam/home#policies) から [ポリシーの 作成] を選択します。IAM ポリシーを初めて使用する場合は、[今すぐ始める]、[ポリシーの作成] の順 に選択します。

4. [ポリシージェネレーター] の横の [選択] を選択します。

5. AWS のサービスとして [Amazon Kinesis] を選択します。

ステップ 2: IAM ポリシーとユーザーの作成

6. 許可されるアクションとし

て、DescribeStream、GetShardIterator、GetRecords、PutRecord、および PutRecords を選択します。

7. ステップ 1 で作成した ARN を入力します。

8. 以下の各項目について、[ステートメントを追加] を使用します。

AWS サービス アクション ARN

Amazon DynamoDB CreateTable、DeleteItem、DescribeTableステップ 2 で作成した ARN、GetItem、PutItem、Scan、UpdateItem Amazon CloudWatch PutMetricData *

ARN を指定するときに使用されるアスタリスク (*) は必要ありません。PutMetricData アクション が呼び出される特定のリソースが CloudWatch に存在しない場合などがこれに該当します。

9. [Next Step] を選択します。

10. [ポリシー名] を StockTradeStreamPolicy に変更し、コードを確認して、[ポリシーの作成] を選択 します。

取得されたポリシードキュメントには、次のような結果が表示されます

{

"Version": "2012-10-17", "Statement": [

{

"Sid": "Stmt123", "Effect": "Allow", "Action": [

"kinesis:DescribeStream", "kinesis:PutRecord", "kinesis:PutRecords", "kinesis:GetShardIterator", "kinesis:GetRecords"

],

"Resource": [

"arn:aws:kinesis:us-west-2:123:stream/StockTradeStream"

] }, {

"Sid": "Stmt456", "Effect": "Allow", "Action": [

"dynamodb:*"

],

"Resource": [

"arn:aws:dynamodb:us-west-2:123:table/StockTradesProcessor"

] }, {

"Sid": "Stmt789", "Effect": "Allow", "Action": [

"cloudwatch:PutMetricData"

],

"Resource": [ "*"

] } ]

ドキュメント内 Amazon Kinesis Data Streams - 開発者ガイド (ページ 31-34)

関連したドキュメント