

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# DynamoDB でのタグ付けの強制を支援
<a name="help-enforce-dynamodb-tagging"></a>

*Amazon Web Services、Mansi Suratwala*

## 概要
<a name="help-enforce-dynamodb-tagging-summary"></a>

このパターンは、事前定義の Amazon DynamoDB タグがAmazon Web Services (AWS) クラウドの DynamoDB リソースから見つからず、または削除された場合、自動通知を設定します。 

DynamoDB は、高速で予測可能なパフォーマンスとスケーラビリティを実現するフルマネージド NoSQL データベースサービスです。DynamoDB では、分散データベースの運用とスケーリングに伴うユーザーの管理上の負担を軽減できます。DynamoDB を使用して、ハードウェアのプロビジョニング、セットアップと構成、レプリケーション、ソフトウェアパッチ適用、クラスタースケーリングなどを配慮しなくても良いです。

このパターンでは、Amazon CloudWatch Events イベントと AWS Lambda 関数を作成する AWS CloudFormation テンプレートを使用します。このイベントでは、AWS CloudTrail を使用して、新規または既存の DynamoDB タグ情報を監視します。定義済みのタグが見つからない、または削除された場合、CloudWatch は Lambda 関数をトリガーし、違反を通知する Amazon Simple Notification Service (Amazon SNS) 通知を送信します。 

## 前提条件と制限事項
<a name="help-enforce-dynamodb-tagging-prereqs"></a>

**前提条件**
+ アクティブなAWS アカウント
+  バケットLambda 関数を実行するための Python スクリプトを含む Lambda .zip ファイルの、Amazon Simple Storage Service (Amazon S3)

**制限事項**
+ このソリューションは、`TagResource`または `UntagResource` のCloudTrail イベントが発生した場合にのみ機能します。他のイベントの通知は作成されません。

## アーキテクチャ
<a name="help-enforce-dynamodb-tagging-architecture"></a>

**ターゲットテクノロジースタック**
+ Amazon DynamoDB
+ AWS CloudTrail
+ Amazon CloudWatch
+ AWS Lambda
+ Amazon S3
+ Amazon SNS

**ターゲット アーキテクチャ**

![DynamoDB タグがない場合、Amazon SNS 通知を送信するための Lambda 関数と CloudWatch イベントがトリガーされます。](http://docs.aws.amazon.com/ja_jp/prescriptive-guidance/latest/patterns/images/pattern-img/638d2b87-e031-4a53-8677-2d62e563746b/images/acc448c5-c39b-40b7-94c0-3534d2e725d7.png)


**自動化とスケール**

AWS CloudFormation テンプレートは、さまざまな AWS リージョンとアカウントに複数回使用できます。各リージョンまたはアカウントで、テンプレートを 1 回実行するだけで済みます。

## ツール
<a name="help-enforce-dynamodb-tagging-tools"></a>

**ツール**
+ 「[Amazon DynamoDB](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Introduction.html) 」 — DynamoDBは、フルマネージド NoSQL データベースサービスであり、シームレスなスケーラビリティを備えた高速で予測可能なパフォーマンスを提供します。 
+ 「[AWS CloudTrail](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-user-guide.html)」 — CloudTrailは、AWS アカウントのガバナンス、コンプライアンス、および運用とリスクの監査について支援する AWS のサービスです。ユーザー、ロール、または AWS のサービスによって実行されたアクションは、CloudTrail にイベントとして記録されます。 
+ 「[Amazon CloudWatch Events](https://docs.aws.amazon.com/AmazonCloudWatch/latest/events/WhatIsCloudWatchEvents.html)」 — CloudWatch Events は、AWS リソースでの変更を説明するシステムイベントのほぼリアルタイムのストリームを提供します。 
+ [AWS Lambda](https://docs.aws.amazon.com/lambda/latest/dg/welcome.html) – Lambda は、サーバーのプロビジョニングや管理を行うことなくコードを実行できるコンピューティングサービスです。Lambda は必要に応じてコードを実行し、1 日あたり数個のリクエストから 1 秒あたり数千のリクエストまで自動的にスケールします。 
+ 「[Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/dev/Welcome.html)」 — Amazon Simple Storage Service (Amazon S3) は、拡張性の高いオブジェクトストレージサービスで、ウェブサイト、モバイルアプリケーション、バックアップ、データレイクなど、幅広いストレージソリューションに使用できます。
+ [Amazon SNS](https://docs.aws.amazon.com/sns/latest/dg/welcome.html) –Amazon Simple Notification Service (Amazon SNS) は、アプリケーション、エンドユーザー、およびデバイスでクラウドから通知を瞬時に送受信できるようにするウェブサービスです。 

**コード**
+ プロジェクトの .zip ファイルは添付ファイルとして入手できます。

## エピック
<a name="help-enforce-dynamodb-tagging-epics"></a>

### S3 バケットを定義
<a name="define-the-s3-bucket"></a>


| タスク | 説明 | 必要なスキル | 
| --- | --- | --- | 
| S3 バケットを削除します。 | Amazon S3 コンソールで、先頭にスラッシュを含まない一意の名前で S3 バケットを選択、作成します。この S3 バケットは Lambda コードの.zip ファイルをホストします。S3 バケットは、監視対象の DynamoDB リソースと同じ AWS リージョンに存在している必要があります。 | クラウドアーキテクト | 

### S3 バケットに Lambda コードをアップロードします
<a name="upload-the-lambda-code-to-the-s3-bucket"></a>


| タスク | 説明 | 必要なスキル | 
| --- | --- | --- | 
| S3 バケットに Lambda コードをアップロードします。 | 「*添付ファイル*」セクションにある Lambda コードの .zip ファイルを S3 バケットにアップロードします。S3 バケットは、監視中の DynamoDB リソースと同じリージョンに存在している必要があります。 | クラウドアーキテクト | 

### AWS CloudFormation テンプレートをデプロイする
<a name="deploy-the-aws-cloudformation-template"></a>


| タスク | 説明 | 必要なスキル | 
| --- | --- | --- | 
| AWS CloudFormation のテンプレートをデプロイします。 | AWS CloudFormation コンソールで、*添付ファイル*セクションで提供されている AWS CloudFormation テンプレートをデプロイします。次のエピックでは、パラメータの値を提供します。 | クラウドアーキテクト  | 

### AWS CloudFormation テンプレートのパラメータを入力します
<a name="complete-the-parameters-in-the-aws-cloudformation-template"></a>


| タスク | 説明 | 必要なスキル | 
| --- | --- | --- | 
| S3 バケットに名前を付けます。 | 最初のエピックで作成または選択した S3 バケットの名前を入力します。 | クラウドアーキテクト | 
| Amazon S3 キーを指定します。 | S3 バケット内の Lambda コードの .zip ファイルの場所を、先頭にスラッシュを付けずに指定します (例: `<folder>/<file-name>.zip`)。 | クラウドアーキテクト | 
| E メールアドレスを提供 | Amazon SNS 通知を受信するための有効なメールアドレスを指定します。 | クラウドアーキテクト  | 
| ログ記録のレベルを定義します。 | Lambda 関数のロギングレベルと頻度を定義します。 `Info` アプリケーションの進行状況に関する詳細な情報メッセージを指定します。 `Error` それでもアプリケーションの実行を継続できるエラーイベントを指定します。 `Warning` 潜在的に有害な状況を示します。 | クラウドアーキテクト | 
| 必要な DynamoDB タグキーを入力します。 | タグは必ず、それらの間にスペースを入れずにカンマで区切ります(例: `ApplicationId,CreatedBy,Environment,Organization`)。CloudWatch Events イベントはこれらのタグを検索し、見つからない場合は通知を送信します。 | クラウドアーキテクト | 

### サブスクリプションを確認します。
<a name="confirm-the-subscription"></a>


| タスク | 説明 | 必要なスキル | 
| --- | --- | --- | 
| サブスクリプションを確認します。 | テンプレートが正常にデプロイされると、指定したメールアドレスに購読メールメッセージが送信されます。違反通知を受信するには、このEメールサブスクリプションを確認する必要があります。 | クラウドアーキテクト  | 

## 関連リソース
<a name="help-enforce-dynamodb-tagging-resources"></a>
+ 「[S3 バケットの作成](https://docs.aws.amazon.com/AmazonS3/latest/user-guide/create-bucket.html)」
+ [ファイルを S3 バケットにアップロードする](https://docs.aws.amazon.com/AmazonS3/latest/user-guide/upload-objects.html) 
+ [DynamoDB でのタグ付けのリソース](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Tagging.Operations.html)
+ [AWS CloudTrail を使用して AWS API コールでトリガーする CloudWatch Events ルールの作成](https://docs.aws.amazon.com/AmazonCloudWatch/latest/events/Create-CloudWatch-Events-CloudTrail-Rule.html)

## アタッチメント
<a name="attachments-638d2b87-e031-4a53-8677-2d62e563746b"></a>

このドキュメントに関連する追加コンテンツにアクセスするには、次のファイルを解凍してください。「[attachment.zip](samples/p-attach/638d2b87-e031-4a53-8677-2d62e563746b/attachments/attachment.zip)」