DynamoDBのテーブル作成

# はじめに
DynamoDBの概要を理解したところで、実際に画面上でテーブルを作ってみてみて理解を深める。

# 作成するテーブル
最終的には以下のようなユーザテーブルを作成する想定で進める。

| Id   | Name        | Ruby              | Mail                    | Pass     | City   | Sex  | Birthday   |
| ---- | ----------- | ----------------- | ----------------------- | -------- | ------ | ---- | ---------- |
| 1    | 間宮 国男   | マミヤ クニオ     | xfDvUc@sample.co.jp     | PklNlcnF | 愛知県 | 男   | 1985/11/19 |
| 2    | 菊川 靖子   | キクカワ ヤスコ   | VO_FsEz855@test.net     | LQcibfvm | 熊本県 | 女   | 1971/9/16  |
| 3    | 神保 正平   | ジンポ ショウヘイ | ImYjX14nw_@test.jp      | uR7RkP0h | 山形県 | 男   | 2007/12/3  |

* パーティションキーは[Id]のみの単独PKテーブル
* GSIとして以下を追加（射影項目は全て）
    * City：Name（～県の～さんを検索できる）
    * Sex：Name（性別の～さんを検索できる）
    * Mail：なし（メールアドレスで検索する）

# テーブル作成画面
最初にテーブルの名前とプライマリキーを指定する。[デフォルト設定の使用]のチェックは外しておく。
![DynamoDB · AWS Console.png](https://qiita-image-store.s3.amazonaws.com/0/269452/f4d42fef-4407-d2b0-4c42-3fe14081890a.png)

そしてGSIを作成する。請求モードは[プロビジョンドキャパシティー]を選択する。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/269452/f41b9ac0-d548-2801-a8ab-0a89d745aab4.png)

キャパシティは選択できない。なぜならAuto Scalingを利用しているから。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/269452/c9ba244d-e635-4984-fa77-a7cff923f309.png)

Auto Scalingの設定は読み込みと書き込みで分けることができる。GSIも別に設定できるけど、とりあえずデフォルトにする。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/269452/80e60c9c-a04d-7adf-d711-401e17c6abf9.png)

暗号化はAWSがデフォルトで用意しているキーを利用する。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/269452/c496d35b-833f-8e05-9d49-4eb606c2c32d.png)

これで作成する。

# テーブル管理画面
## 概要
作成されたテーブルの概要が表示されている。デフォルトではストリームは有効になっていない。
一方でポイントインタイムリカバリは有効になっている。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/269452/34bbb736-e216-5d87-31f5-90f75c158749.png)

TTLも有効になっていない。キャパシティも最低限で一回も増減していないことがわかる。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/269452/97f57db2-48fc-2102-2772-928bb8be0f68.png)

## 項目
項目では、テーブルの内容が確認できる。アクションはテーブル／アイテムに対する操作ができるけど、今はデータが入ってないので何もない。CSVインポートができそうにない。。。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/269452/7a787ef0-8ed3-edfd-b919-b527b3e0d217.png)

[項目の作成]では、画面上でデータが作成できる。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/269452/39dd53a3-2af9-651f-0bb9-496963797a63.png)

## メトリックス
メトリックスでは、各種グラフが表示される。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/269452/8cde1bf0-24fd-e4a8-f2f0-1d0503ec485a.png)

## アラーム
アラームでは、CloudWatchへのアラームを作成できる。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/269452/02277dcb-ae1e-a0da-2877-f3012984a2de.png)

## キャパシティー
キャパシティーでは、いつスケールアウト／スケールインしたかのアクティビティと、キャパシティの設定変更ができる。請求モードもAutoScalingも後から変えられる。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/269452/9213b8e1-2d4a-7e1c-e7b1-a701b62fff4f.png)

## インデックス
インデックスもテーブル作成時の内容が表示されている。インデックスって後から追加できるのかは、データをいれてから別途確認する。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/269452/25d166ba-5ac5-6338-0c18-789e144f5f90.png)

## グローバルテーブル
上半分は有効化について。まだストリームを有効にしていないので、エラーが出ている。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/269452/71adb3e8-4f55-64da-5919-ffcb870f55ea.png)

下半分は、複製されたリージョンが確認できる。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/269452/12e8bdca-a180-6d87-f444-0a613ec83c63.png)

## バックアップ
[さらに]を開くと表示される。上半分にはポイントインタイムリカバリの内容が表示されている。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/269452/04daae99-a03a-ea09-79fa-e3d95b88fc8b.png)

下半分はオンデマンドバックアップの内容が表示される。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/269452/4b2f6be6-b3e4-df1c-5de5-bc297bbb1dac.png)

## トリガー
ここでトリガーを作成することで、Lambdaに発火できる。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/269452/c132619b-306c-e73a-e1cf-22f4e7fd31bc.png)

## アクセスコントロール
DynamoDBには、リソースベースでのアクセスコントロールもできる模様。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/269452/4c4c6eb6-5a01-1af0-70ef-e91312c41680.png)

## タグ
もちろん、タグも設定できる。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/269452/c4b40ca4-400d-3c5e-07bf-ed1122136346.png)

# バックアップ画面
テーブル横串でバックアップデータが見られる。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/269452/f4ef81a5-0deb-d4b8-9d90-69fc800ac0ba.png)

# リザーブドキャパシティ画面
キャパシティはリザーブドとして購入できる。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/269452/0a21ab7f-5498-8d09-0f50-328af1aabfe0.png)

# 設定画面
設定では何が設定できるのか。コンソールの画面レイアウトを設定できるだけだった。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/269452/7e794a1e-5071-0b8e-96b3-ac43b2ac4941.png)

# まとめ
概要を理解すれば、画面は直観的に理解できる。DAXについては、応用編として別の機会にまた確認する。次はデータのインポートをしたいが、ちょっと面倒くさそう。。。