

# DynamoDB のチートシート
<a name="CheatSheet"></a>

このチートシートは、Amazon DynamoDB とそのさまざまな AWS SDK を操作するためのクイックリファレンスを提供します。

## 初期セットアップ
<a name="CheatSheet.InitialSetup"></a>

1. [ にサインアップします。AWS](SettingUp.DynamoWebService.html#SettingUp.DynamoWebService.SignUpForAWS)

1. プログラムで DynamoDB にアクセスするための [AWS アクセスキーを取得](SettingUp.DynamoWebService.html#SettingUp.DynamoWebService.GetCredentials)します。

1. [DynamoDB 認証情報を設定します](SettingUp.DynamoWebService.html#SettingUp.DynamoWebService.ConfigureCredentials)。

**以下も参照してください。**
+ [DynamoDB (ウェブサービス) の設定](SettingUp.DynamoWebService.html)
+ [DynamoDB の使用開始](GettingStartedDynamoDB.html)
+ [コアコンポーネントの基本概要](HowItWorks.CoreComponents.html)

 

## SDK または CLI
<a name="CheatSheet.Platform"></a>

任意の [SDK](sdk-general-information-section.html) を選択するか、[AWS CLI](/cli/latest/index.html) を設定します。

**注記**  
Windows で AWS CLI を使用すると、引用符の中にないバックスラッシュ (\$1) はキャリッジリターンとして扱われます。また、他の引用符の中にある引用符や中かっこはエスケープする必要があります。例については、次のセクションの「テーブルの作成」の **[Windows]** タブを参照してください。

**以下も参照してください。**
+ [AWS CLIDynamoDB での](Tools.CLI.html)
+ [DynamoDB の使用開始 – ステップ 2](getting-started-step-2.html)

## 基本アクション
<a name="CheatSheet.BasicActions"></a>

このセクションでは、基本的な DynamoDB タスクのコードを提供します。これらのタスクの詳細については、「[DynamoDB とAWS SDK の使用開始](GettingStarted.html)」を参照してください。

### テーブルを作成する
<a name="CheatSheet.BasicActions.CreateTable"></a>

------
#### [ Default ]

```
aws dynamodb create-table \
    --table-name Music \
    --attribute-definitions \
        AttributeName=Artist,AttributeType=S \
        AttributeName=SongTitle,AttributeType=S \
    --key-schema AttributeName=Artist,KeyType=HASH AttributeName=SongTitle,KeyType=RANGE \
    --billing-mode PAY_PER_REQUEST \
    --table-class STANDARD
```

------
#### [ Windows ]

```
aws dynamodb create-table ^
    --table-name Music ^
    --attribute-definitions ^
        AttributeName=Artist,AttributeType=S ^
        AttributeName=SongTitle,AttributeType=S ^
    --key-schema AttributeName=Artist,KeyType=HASH AttributeName=SongTitle,KeyType=RANGE ^
    --billing-mode PAY_PER_REQUEST ^
    --table-class STANDARD
```

------

### テーブルへの項目の書き込み
<a name="CheatSheet.BasicActions.WriteItem"></a>

```
aws dynamodb put-item \ --table-name Music \ --item file://item.json
```

### テーブルから項目の読み込み
<a name="CheatSheet.BasicActions.ReadItem"></a>

```
aws dynamodb get-item \ --table-name Music \ --item file://item.json
```

### テーブルから項目の削除
<a name="CheatSheet.BasicActions.DeleteItem"></a>

```
aws dynamodb delete-item --table-name Music --key file://key.json
```

### テーブルに対してクエリを実行する
<a name="CheatSheet.BasicActions.QueryTable"></a>

```
aws dynamodb query --table-name Music 
--key-condition-expression "ArtistName=:Artist and SongName=:Songtitle"
```

### テーブルを削除する
<a name="CheatSheet.BasicActions.DeleteTable"></a>

```
aws dynamodb delete-table --table-name Music
```

### テーブル名のリスト化
<a name="CheatSheet.BasicActions.ListTableNames"></a>

```
aws dynamodb list-tables
```

## 名前付けルール
<a name="CheatSheet.NamingRules"></a>
+ すべての名前は UTF-8 を使用してエンコードする必要があり、大文字と小文字が区別されます。
+ テーブル名とインデックス名の長さは 3～255 文字で、次の文字のみを含めることができます。
  + `a-z`
  + `A-Z`
  + `0-9`
  + `_` (下線)
  + `-` (ハイフン)
  + `.` (ドット)
+ 属性名は 1 文字以上、64 KB 未満のサイズである必要があります。

詳細については、「[命名規則](HowItWorks.NamingRulesDataTypes.html)」を参照してください。

## サービスクォータの基本
<a name="CheatSheet.ServiceBasics"></a>

**読み込みユニットと書き込みユニット**
+ **読み込みキャパシティユニット (RCU)** – 最大サイズが 4 KB の項目について、読み込みキャパシティユニット = 1 秒あたり 1 回の強力な整合性のある読み込み、あるいは 1 秒あたり 2 回の結果整合性のある読み込み。
+ **書き込みキャパシティユニット (WCU)** – 最大サイズが 1 KB の項目について、書き込みキャパシティユニット = 1 秒あたり 1 回の書き込み。

**テーブルリミット**
+ **テーブルサイズ** – テーブルのサイズには実用的な制限はありません。テーブルは項目数やバイト数について制限がありません。
+ **テーブルの数** – AWS アカウントについては、AWS リージョンごとに 2,500 個のテーブルという初期クォータがあります。
+ **クエリとスキャンのページサイズの制限** – クエリまたはスキャンごとに、1 ページあたり 1 MB に制限されています。クエリパラメータまたはテーブルでのスキャン操作の結果データが 1 MB を超える場合、DynamoDB は最初に一致した項目を返します。また、新しいリクエストで次のページを読むときに使用できる `LastEvaluatedKey` プロパティも返されます。

**インデックス**
+ **ローカルセカンダリインデックス (LSI)** – 最大 5 つのローカルセカンダリインデックスを定義できます。LSI は主に、インデックスがベーステーブルと強い一貫性を持たなければならない場合に役立ちます。
+ **グローバルセカンダリインデックス (GSI)** – デフォルトクォータとして、テーブルごとに 20 個のグローバルセカンダリインデックスがあります。
+ **テーブル毎のセカンダリインデックス属性の射影** – 合計最大 100 の属性を、1 つのテーブルのすべてのグローバルセカンダリインデックスに射影することができます。これは、ユーザー指定の射影された属性だけに適用されます。

**パーティションキー**
+ パーティションキーと値の最小長は 1 バイトです。最大長は 2048 バイトです
+ テーブルまたはセカンダリインデックスについて、パーティションキー値の明確な数に関する実質的な制限はありません。
+ ソートキーと値の最小長は 1 バイトです。最大長は 1024 バイトです
+ 一般的に、パーティションキーの値ごとのソートキーの値の数について、実質的に制限はありません。セカンダリインデックスを持つテーブルは例外です。

セカンダリインデックス、パーティションキー設計、ソートキー設計の詳細については、「[ベストプラクティス](best-practices.html)」を参照してください。

**一般的に使用されるデータ型の制限**
+ **文字列** – 文字列の長さは、項目の最大サイズである 400 KB に制約されます。文字列は、UTF-8 バイナリエンコードの Unicode です。
+ **数値** – 数値は、最大 38 桁の精度であり、正、負、または 0 のいずれかです。
+ **バイナリ** – バイナリの長さは、項目の最大サイズである 400 KB に制約されます。バイナリ属性を操作するアプリケーションは、データを DynamoDB に送信する前に、base64 でエンコードする必要があります。

サポートされているデータ型のリストについては、「[データ型](HowItWorks.NamingRulesDataTypes.html#HowItWorks.DataTypes)」を参照してください。詳細については、「[Service Quotas](ServiceQuotas.html#limits-items)」(サービスクォータ) を参照してください。

### 項目、属性、式パラメータ
<a name="CheatSheet.ServiceBasics.Misc"></a>

DynamoDB の項目の最大サイズは 400 KB で、属性名のバイナリの長さ (UTF-8 の長さ) と属性値の長さ (UTF-8 の長さ) を含みます。属性名はサイズ制限に反映されます。

値を含む項目が 400 KB の制限内である限り、リスト、マップ、またはセットにおける値の最大数の制限はありません。

式パラメータでは、式文字列の最大長は 4 KB です。

項目サイズ、属性、および式パラメータの詳細については、「[Service Quotas](ServiceQuotas.html#limits-items)」(サービスクォータ) を参照してください。

## 詳細情報
<a name="CheatSheet.FurtherInfo"></a>
+ [セキュリティ](security.html)
+ [モニタリングとログ記録](monitoring.html):
+ [ストリームの使用](streamsmain.html)
+ [バックアップ](Backup-and-Restore.html)と[ポイントインタイムリカバリ](Point-in-time-recovery.html)
+ [他の AWS のサービスとの統合](OtherServices.html) 
+ [API リファレンス](/amazondynamodb/latest/APIReference/Welcome.html)
+ [アーキテクチャセンター: データベースのベストプラクティス](https://aws.amazon.com/architecture/databases/)
+ [ビデオチュートリアル](https://youtu.be/Mw8wCj0gkRc)
+ [DynamoDB フォーラム](https://repost.aws/search/questions?globalSearch=dynamodb)