Erstellen eines DAX-Clusters mit AWS CLI - Amazon-DynamoDB

Erstellen eines DAX-Clusters mit AWS CLI

In diesem Abschnitt wird beschrieben, wie Sie einen Amazon-DynamoDB-Accelerator-(DAX)-Cluster mit der AWS Command Line Interface (AWS CLI) erstellen. Wenn Sie es noch nicht getan haben, müssen Sie AWS CLI installieren und konfigurieren. Eine Anleitung finden Sie unter den folgenden Themen im AWS Command Line Interface-Benutzerhandbuch:

Wichtig

Um DAX-Cluster mit AWS CLI zu verwalten, installieren Sie Version 1.11.110 oder höher.

In allen AWS CLI-Beispielen werden die Region us-west-2 und fiktive Konto-IDs verwendet.

Schritt 1: Erstellen einer IAM-Servicerolle für DAX zum Zugriff auf DynamoDB mithilfe von AWS CLI

Bevor Sie einen Amazon-DynamoDB-Accelerator-(DAX)-Cluster erstellen können, müssen Sie eine Servicerolle dafür erstellen. Eine Servicerolle ist eine AWS Identity and Access Management (IAM)-Rolle, die es einem AWS-Service erlaubt, in Ihrem Namen zu agieren. Die Servicerolle ermöglicht DAX den Zugriff auf Ihre DynamoDB-Tabellen, als würden Sie selbst darauf zugreifen.

In diesem Schritt erstellen Sie eine IAM-Richtlinie und fügen diese dann einer IAM-Rolle hinzu. So können Sie die Rolle einem DAX-Cluster zuweisen, sodass er DynamoDB-Operationen in Ihrem Namen durchführen kann.

So erstellen Sie eine IAM-Service-Rolle für DAX
  1. Erstellen Sie eine Datei mit dem Namen service-trust-relationship.json und dem folgenden Inhalt.

    JSON
    { "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "dax.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
  2. Erstellen Sie die Servicerolle.

    aws iam create-role \ --role-name DAXServiceRoleForDynamoDBAccess \ --assume-role-policy-document file://service-trust-relationship.json
  3. Erstellen Sie eine Datei mit dem Namen service-role-policy.json und dem folgenden Inhalt.

    JSON
    { "Version":"2012-10-17", "Statement": [ { "Action": [ "dynamodb:DescribeTable", "dynamodb:PutItem", "dynamodb:GetItem", "dynamodb:UpdateItem", "dynamodb:DeleteItem", "dynamodb:Query", "dynamodb:Scan", "dynamodb:BatchGetItem", "dynamodb:BatchWriteItem", "dynamodb:ConditionCheckItem" ], "Effect": "Allow", "Resource": [ "arn:aws:dynamodb:us-west-2:111122223333:*" ] } ] }

    Ersetzen Sie accountID durch Ihre AWS-Konto-ID. Ihre AWS-Konto-ID finden Sie, indem Sie Ihre Anmelde-ID in der rechten oberen Ecke der Konsole auswählen. Ihre AWS-Konto-ID wird im Dropdown-Menü angezeigt.

    Die accountID im Amazon-Ressourcenname (ARN) des Beispiels muss eine zwölfstellige Zahl sein. Verwenden Sie keine Bindestriche oder anderen Satzzeichen.

  4. Erstellen Sie eine IAM-Richtlinie für die Servicerolle:

    aws iam create-policy \ --policy-name DAXServicePolicyForDynamoDBAccess \ --policy-document file://service-role-policy.json

    Beachten Sie in der Ausgabe den ARN für die Richtlinie, die Sie erstellt haben.

    arn:aws:iam::123456789012:policy/DAXServicePolicyForDynamoDBAccess

  5. Fügen Sie die Richtlinie der Servicerolle an. Ersetzen Sie arn mit dem tatsächlichen Rollen-ARN aus dem vorherigen Schritt.

    aws iam attach-role-policy \ --role-name DAXServiceRoleForDynamoDBAccess \ --policy-arn arn

Als Nächstes geben Sie eine Subnetzgruppe für Ihre Standard-VPC an. Eine Subnetzgruppe ist eine Sammlung eines oder mehrerer Subnetze innerhalb der VPC. Siehe Schritt 2: Erstellung einer Subnetzgruppe.

Schritt 2: Erstellung einer Subnetzgruppe

Gehen Sie folgendermaßen vor, um eine Subnetzgruppe für Ihren Amazon-DynamoDB-Accelerator-(DAX)-Cluster mit AWS Command Line Interface (AWS CLI) zu erstellen.

Anmerkung

Wenn Sie bereits eine Subnetzgruppe für die Standard-VPC erstellt haben, können Sie diesen Schritt überspringen.

DAX wurde für die Ausführung in einer Amazon-Virtual-Private-Cloud-Umgebung (Amazon VPC) entwickelt. Wenn Sie Ihr AWS-Konto nach dem 4. Dezember 2013 erstellt haben, verfügen Sie bereits in jeder AWS-Region über eine Standard-VPC. Weitere Informationen finden Sie unter Standard-VPC und Standard-Subnetze im Amazon-VPC-Benutzerhandbuch.

Anmerkung

Die VPC mit diesem DAX-Cluster kann andere Ressourcen und sogar VPC-Endpunkte für die anderen Services mit Ausnahme des VPC-Endpunkts für ElastiCache enthalten, was zu Fehlern bei den DAX-Clustervorgängen führen kann.

So erstellen Sie eine Subnetzgruppe
  1. Um die ID des Standard-VPCs zu bestimmen, geben Sie den folgenden Befehl ein.

    aws ec2 describe-vpcs

    Beachten Sie in der Ausgabe die ID der Standard-VPC, wie im folgenden Beispiel dargestellt.

    vpc-12345678

  2. Ermitteln Sie die mit der Standard-VPC verknüpften Subnetz-IDs. Ersetzen Sie vpcID mit der tatsächlichen VPC-ID, z. B. vpc-12345678.

    aws ec2 describe-subnets \ --filters "Name=vpc-id,Values=vpcID" \ --query "Subnets[*].SubnetId"

    Notieren Sie sich in der Ausgabe die Subnetz-IDs – z. B. subnet-11111111.

  3. Erstellen Sie die Subnetzgruppe. Stellen Sie sicher, dass Sie mindestens eine Subnetz-ID im Parameter --subnet-ids angeben.

    aws dax create-subnet-group \ --subnet-group-name my-subnet-group \ --subnet-ids subnet-11111111 subnet-22222222 subnet-33333333 subnet-44444444

Informationen zum Erstellen des Clusters finden Sie unter Schritt 3: Erstellen eines DAX-Clusters mithilfe von AWS CLI.

Schritt 3: Erstellen eines DAX-Clusters mithilfe von AWS CLI

Gehen Sie folgendermaßen vor, um mit dem AWS Command Line Interface (AWS CLI) einen Amazon-DynamoDB-Accelerator-(DAX)-Cluster in Ihrer Standard-Amazon-VPC zu erstellen.

So erstellen Sie einen DAX-Cluster
  1. Rufen Sie den Amazon-Ressourcennamen (ARN) für die Servicerolle ab.

    aws iam get-role \ --role-name DAXServiceRoleForDynamoDBAccess \ --query "Role.Arn" --output text

    Beachten Sie in der Ausgabe den Servicerollen-ARN, wie im folgenden Beispiel dargestellt.

    arn:aws:iam::123456789012:role/DAXServiceRoleForDynamoDBAccess

  2. DAX-Cluster erstellen. Ersetzen Sie roleARN mit der ARN aus dem vorherigen Schritt.

    aws dax create-cluster \ --cluster-name mydaxcluster \ --node-type dax.r4.large \ --replication-factor 3 \ --iam-role-arn roleARN \ --subnet-group my-subnet-group \ --sse-specification Enabled=true \ --region us-west-2

    Alle Knoten in dem Cluster sind vom Typ dax.r4.large (--node-type). Es gibt drei Knoten (--replication-factor) – einen primären Knoten und zwei Replikate.

    Anmerkung

    Da sudo und grep-reservierte Schlüsselwörter sind, können Sie keinen DAX-Cluster mit diesen Wörtern im Cluster-Namen erstellen. Beispiel: sudo und sudocluster sind ungültige Cluster-Namen.

Zum Anzeigen des Cluster-Status geben Sie den folgenden Befehl ein:

aws dax describe-clusters

Der Status wird in der Ausgabe angezeigt - z. B. "Status": "creating".

Anmerkung

Das Erstellen des Clusters kann einige Minuten dauern. Sobald der Cluster bereit ist, ändert sich sein Status zu available. Fahren Sie in der Zwischenzeit mit Schritt 4: Konfigurieren der Regeln für eingehenden Datenverkehr für Sicherheitsgruppen mit der AWS CLI fort und folgen Sie den Anweisungen.

Schritt 4: Konfigurieren der Regeln für eingehenden Datenverkehr für Sicherheitsgruppen mit der AWS CLI

Die Knoten in dem Amazon-DynamoDB-Accelerator-(DAX)-Cluster verwenden die Standardsicherheitsgruppe für Ihre Amazon VPC. Für die Standardsicherheitsgruppe müssen Sie eingehenden Datenverkehr auf TCP-Port 8111 für unverschlüsselte Cluster oder Port 9111 für verschlüsselte Cluster autorisieren. Auf diese Weise können Amazon-EC2-Instances in der Amazon VPC auf den DAX-Cluster zugreifen.

Anmerkung

Wenn Sie den DAX-Cluster mit einer anderen Sicherheitsgruppe (einer anderen als default) gestartet haben, müssen Sie stattdessen den hier beschriebenen Prozess für diese Gruppe durchführen.

So konfigurieren Sie Regeln für eingehenden Datenverkehr für Sicherheitsgruppen
  1. Um die Standard-Sicherheitsgruppen-ID zu bestimmen, geben Sie den folgenden Befehl ein. Ersetzen Sie vpcID mit der tatsächlichen VPC-ID (aus Schritt 2: Erstellung einer Subnetzgruppe).

    aws ec2 describe-security-groups \ --filters Name=vpc-id,Values=vpcID Name=group-name,Values=default \ --query "SecurityGroups[*].{GroupName:GroupName,GroupId:GroupId}"

    Beachten Sie in der Ausgabe die Sicherheitsgruppen-ID - z. B. sg-01234567.

  2. Geben Sie dann Folgendes ein. Ersetzen Sie sgID mit der tatsächlichen Sicherheitsgruppen-ID. Verwenden Sie Port 8111 für unverschlüsselte Cluster und 9111 für verschlüsselte Cluster.

    aws ec2 authorize-security-group-ingress \ --group-id sgID --protocol tcp --port 8111