AWS Mobile Application Development

AWSのサービスをモバイルから使うにあたって調べた情報などまとめて行きます。

AndroidとDynamoDB実装方法 (3/4) - DynamoDB初期設定 -

AWSのNoSQLデータベースDynamoDBをDBとしてデータ操作を行うための基本的な設定のご紹介です。

AndroidとDynamoDB実装方法 (3/4) - DynamoDB初期設定 -に続き、AWS DynamoDBの設定を行います。

[目次]

設定の前にまずDynamoDBについて基本から抑えておき、設定まで進みます。

DynamoDBの基本

まずDynamoDBの基本ですが、DynamoDBはNoSQL型のデータベースで以下で詳細に紹介されていますが、かいつまんで構造に関する部分のみ列挙します。

データの特徴

name/value型でjsonのようなデータの構造になっている

DynamoDBの構成要素

  • テーブル(table)

RDBで言うテーブルと同意

  • アイテム(item)

RDBで言う行(row)と同意

  • 属性(attribute)

RDBで言う列(column)と同意

RDBで言うプライマリキー。パーティションキーに指定した属性にハッシュインデックスが作成される。

  • ソートキー(旧レンジプライマリレンジキー(Range Primary Key / Primary sort key)

RDBで言うプライマリキー以外に、ソートキーとして指定した属性にレンジハッシュインデックスが作成される。

DynamoDB設定手順

DynamoDBのテーブル作成

DynamoDBでサンプルのテーブル「Books」を作ってみます。AWSコンソールにログインしてDynamoDBを選択します。
f:id:azumami:20161107054736p:plain


続いて、「Create Table」をクリックします。
f:id:azumami:20161107054745p:plain


「Table name」、「Primary key」を入力後、「add sort key」をクリックし以下の通り入力します。その後「Create」をクリックしテーブルを作成します。
f:id:azumami:20161107054754p:plain
この「Primary key(ハッシュプライマリキー)」はRDBでいう、そのままですがプライマリキーで、「Sort Key」というのがテーブルに1つだけ設定できるデータをソートするための列です。DynamoDBではこのソートキーでしたソートができません。

参照
www.magtranetwork.com


作成後、詳細が表示されるますが次のステップではこのテーブルへの権限設定をするため、「Amazon Resource Name (ARN)」の文字列にてこのテーブルを指定するためテキストとしてコピーしておきます。
f:id:azumami:20161107054803p:plain

IAMでのポリシー作成

AWSコンソールにログインして「Identity & Access Management」を選択します。左側のメニューのロールを選択します。前ステップで作成したDyanmoDBテーブル名が含まれたエントリが2つありますので、「Unauth」の文字列がある方をクリックします。
f:id:azumami:20161107153845p:plain


表示される画面の中で以下の「Create Role Policy」を選択します。
f:id:azumami:20161107153903p:plain


「Policy Generator」を選択した状態で「Select」を選択します。
f:id:azumami:20161107153910p:plain


以下の設定を行います。前ステップで作成したARN(DyanmoDBの作成したテーブル)へフルアクセスを可能とするポリシーという意味になります。「Add Statement」をクリックし、「Next Step」をクリックします。
f:id:azumami:20161107153917p:plain


生成されるjson形式のポリシーが表示されますので「Apply Policy」をクリックして終了します。
f:id:azumami:20161107153948p:plain


以上で、Cognito経由でDynamoDBへアクセスするための権限設定が完了です。

続いてプログラミングです。