AWS CLI を使用した DAX クラスターの作成
このセクションでは、AWS Command Line Interface (AWS CLI) を使用して Amazon DynamoDB Accelerator (DAX) クラスターを作成する方法を説明します。まだ AWS CLI をインストールして設定していない場合は、インストールして設定する必要があります。これを行うには、「AWS Command Line Interface ユーザーガイド」の手順を参照してください。
重要
AWS CLI を使用して DAX クラスターを管理するには、バージョン 1.11.110 以上をインストールするか、アップグレードしてください。
AWS CLI のすべての例で、us-west-2 リージョンと架空のアカウント ID を使用しています。
ステップ 1: AWS CLI を使用して、DAX から DynamoDB にアクセスするための IAM サービスロールを作成する
Amazon DynamoDB Accelerator (DAX) クラスターを作成する前に、クラスター用のサービスロールを作成する必要があります。サービスロールは、ユーザーに代わって AWS のサービスを承認する AWS Identity and Access Management (IAM) ロールです。サービスロールは、ユーザーがテーブルそのものにアクセスしているかのように、DAX に DynamoDB テーブルへのアクセスを許可します。
このステップでは、IAM ポリシーを作成し、次にそのポリシーを IAM ロールにアタッチします。こうすることで、DAX クラスターにロールを割り当て、ユーザーの代わりに DynamoDB オペレーションを実行させることができます。
DAX の IAM サービスロールを作成するには
-
次の内容で、
service-trust-relationship.jsonというファイルを作成します。 -
サービスロールを作成します。
aws iam create-role \ --role-name DAXServiceRoleForDynamoDBAccess \ --assume-role-policy-document file://service-trust-relationship.json -
次の内容で、
service-role-policy.jsonというファイルを作成します。accountIDをご自分の AWS アカウント ID に置き換えます。AWS アカウント ID を見つけるには、コンソールの右上隅で、ログイン ID を選択します。ドロップダウンメニューに AWS アカウント ID が表示されますこの例の Amazon リソースネーム (ARN) では、
accountIDは 12 桁の数字である必要があります。ハイフンなどの区切り文字を使用しないでください。 -
サービスロールの IAM ポリシーを作成します。
aws iam create-policy \ --policy-name DAXServicePolicyForDynamoDBAccess \ --policy-document file://service-role-policy.json出力では、以下の例のように、作成したポリシーの ARN に注意してください。
arn:aws:iam::123456789012:policy/DAXServicePolicyForDynamoDBAccess -
ポリシーをサービスロールにアタッチします。以下のコードにある
arnを、前のステップで書き留めた実際のロール ARN に置き換えます。aws iam attach-role-policy \ --role-name DAXServiceRoleForDynamoDBAccess \ --policy-arnarn
次に、デフォルト VPC のサブネットグループを指定します。サブネットグループは、VPC 内の 1 つ以上のサブネットのコレクションです。「」を参照してくださいステップ 2: サブネットグループの作成
ステップ 2: サブネットグループの作成
この手順に従って、AWS Command Line Interface (AWS CLI) を使用して Amazon DynamoDB Accelerator (DAX) クラスターのサブネットグループを作成します。
注記
デフォルト VPC のサブネットグループを作成済みである場合は、このステップを省略できます。
DAX は、Amazon Virtual Private Cloud (Amazon VPC) 環境内で実行するように設計されています。2013 年 12 月 4 日以降に AWS アカウントを作成した場合は、各 AWS リージョンにデフォルトで VPC が用意されています。詳細については、「Amazon VPC ユーザーガイド」の「デフォルト VPC とデフォルトサブネット」を参照してください。
注記
この DAX クラスターを持つ VPC には、他のリソースや、他のサービスの VPC エンドポイント (ElastiCache の VPC エンドポイントを除く) さえも含まれる場合があり、DAX クラスターオペレーションでエラーが発生する可能性があります。
サブネットグループを作成するには
-
デフォルト VPC の ID を確認するには、次のコマンドを入力します。
aws ec2 describe-vpcs出力では、以下の例のように、デフォルト VPC の識別子に注意してください。
vpc-12345678 -
デフォルト VPC に関連付けられているサブネットの ID を確認します。
vpcIDを実際の VPC ID に置き換えます (vpc-12345678など)。aws ec2 describe-subnets \ --filters "Name=vpc-id,Values=vpcID" \ --query "Subnets[*].SubnetId"出力で、サブネット ID を記録します (
subnet-11111111など)。 -
サブネットグループを作成します。
--subnet-idsパラメータに少なくとも 1 つのサブネット ID を指定してください。aws dax create-subnet-group \ --subnet-group-name my-subnet-group \ --subnet-idssubnet-11111111subnet-22222222subnet-33333333subnet-44444444
クラスターを作成するには、「ステップ 3: AWS CLI を使用して DAX クラスターを作成」を参照してください。
ステップ 3: AWS CLI を使用して DAX クラスターを作成
次の手順に従って、AWS Command Line Interface (AWS CLI) を使用して、デフォルト Amazon VPC に Amazon DynamoDB Accelerator (DAX) クラスターを作成します。
DAX クラスターを作成するには
-
サービスロールの Amazon リソースネーム (ARN) を取得します。
aws iam get-role \ --role-name DAXServiceRoleForDynamoDBAccess \ --query "Role.Arn" --output text出力では、以下の例のように、サービスロール ARN に注意してください。
arn:aws:iam::123456789012:role/DAXServiceRoleForDynamoDBAccess -
DAX クラスターを作成します。
を、前のステップで書き留めた ARN に置き換えます。roleARNaws dax create-cluster \ --cluster-name mydaxcluster \ --node-type dax.r4.large \ --replication-factor 3 \ --iam-role-arnroleARN\ --subnet-group my-subnet-group \ --sse-specification Enabled=true \ --region us-west-2クラスター内のすべてのノードは、タイプ
dax.r4.large(--node-type) です。3つのノード (--replication-factor) があります (1 つのプライマリノードと 2 つのレプリカ)。注記
sudoとgrepが予約キーワードである場合、クラスター名にこれらの語句を含む DAX クラスターを作成することはできません。たとえば、sudoとsudoclusterは無効なクラスター名です。
クラスターステータスを表示するには、次のコマンドを入力します。
aws dax describe-clusters
ステータスは出力に表示されます ("Status":
"creating" など)。
注記
クラスターを作成するには数分かかります。クラスターが使用可能になると、ステータスは available に変わります。その間に、「ステップ 4: AWS CLI を使用してセキュリティグループのインバウンドルールを設定」に進んでその指示に従います。
ステップ 4: AWS CLI を使用してセキュリティグループのインバウンドルールを設定
Amazon DynamoDB Accelerator (DAX) クラスター内のノードは、Amazon VPC のデフォルトのセキュリティグループを使用します。デフォルトのセキュリティグループでは、暗号化されていないクラスターには TCP ポート 8111、暗号化されたクラスターには 9111 のインバウンドトラフィックを許可する必要があります。これで Amazon VPC の Amazon EC2 インスタンスは DAX クラスターにアクセスできます。
注記
異なるセキュリティグループ (default 以外) で DAX クラスターを起動した場合、グループに対してこの手順を代わりに実行する必要があります。
セキュリティグループのインバウンドルールを設定するには
-
デフォルトセキュリティグループの ID を確認するには、次のコマンドを入力します。
を実際の VPC ID (「ステップ 2: サブネットグループの作成」を参照) に置き換えます。vpcIDaws ec2 describe-security-groups \ --filters Name=vpc-id,Values=vpcIDName=group-name,Values=default \ --query "SecurityGroups[*].{GroupName:GroupName,GroupId:GroupId}"出力で、セキュリティグループ ID を記録します (
sg-01234567など)。 -
次のように入力します。
を実際のセキュリティグループ ID に置き換えます。暗号化されていないクラスターの場合はポートsgID8111を、暗号化されたクラスターの場合は9111を使用します。aws ec2 authorize-security-group-ingress \ --group-idsgID--protocol tcp --port8111