Cross-Region: Connectivity - AWS Fehlerinjektionsservice

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Cross-Region: Connectivity

Sie können das Cross-Region: Connectivity Szenario verwenden, um den Netzwerkverkehr der Anwendung von der Versuchsregion zur Zielregion zu blockieren und die regionsübergreifende Replikation für Amazon S3 und Amazon DynamoDB anzuhalten. Regionsübergreifend: Die Konnektivität wirkt sich auf den ausgehenden Anwendungsdatenverkehr aus der Region aus, in der Sie das Experiment ausführen (Versuchsregion). Zustandsloser eingehender Verkehr aus der Region, die Sie von der Versuchsregion isolieren möchten (Zielregion), wird möglicherweise nicht blockiert. Der Datenverkehr von AWS Managed Services darf nicht blockiert werden.

Dieses Szenario kann verwendet werden, um zu demonstrieren, dass Anwendungen mit mehreren Regionen erwartungsgemäß funktionieren, wenn auf Ressourcen in der Zielregion von der Versuchsregion aus nicht zugegriffen werden kann. Es beinhaltet das Blockieren des Netzwerkverkehrs von der Versuchsregion zur Zielregion, indem auf Transit-Gateways und Routentabellen gezielt wird. Außerdem wird die regionsübergreifende Replikation für S3 und DynamoDB angehalten. Standardmäßig werden Aktionen, für die keine Ziele gefunden wurden, übersprungen.

Aktionen

Zusammen blockieren die folgenden Aktionen die regionsübergreifende Konnektivität für die enthaltenen AWS-Services. Die Aktionen werden parallel ausgeführt. Standardmäßig blockiert das Szenario den Verkehr für 3 Stunden, die Sie auf eine maximale Dauer von 12 Stunden erhöhen können.

Unterbrechen Sie die Transit-Gateway-Konnektivität

Cross Region: Connectivitybeinhaltet aws:network:transit-gateway-disrupt-cross-region-connectivity, um den regionsübergreifenden Netzwerkverkehr von VPCs in der Versuchsregion zu VPCs in der Zielregion zu blockieren, die über ein Transit-Gateway verbunden sind. Dies hat keinen Einfluss auf den Zugriff auf VPC-Endpunkte innerhalb der Versuchsregion, blockiert jedoch den Datenverkehr aus der Versuchsregion, der für einen VPC-Endpunkt in der Zielregion bestimmt ist.

Diese Aktion zielt auf Transit-Gateways ab, die die Versuchsregion mit der Zielregion verbinden. Standardmäßig zielt sie auf Transit-Gateways ab, deren Tag DisruptTransitGateway den Wert hat. Allowed Sie können dieses Tag zu Ihren Transit-Gateways hinzufügen oder das Standard-Tag in der Experimentvorlage durch Ihr eigenes Tag ersetzen. Wenn keine gültigen Transit-Gateways gefunden werden, wird diese Aktion standardmäßig übersprungen.

Unterbrechen Sie die Subnetzkonnektivität

Cross Region: Connectivitybeinhaltet aws:network:route-table-disrupt-cross-region-connectivity, um den regionsübergreifenden Netzwerkverkehr von VPCs in der Versuchsregion zu öffentlichen AWS-IP-Blöcken in der Zielregion zu blockieren. Zu diesen öffentlichen IP-Blöcken gehören AWS-Serviceendpunkte in der Zielregion, z. B. der regionale S3-Endpunkt, und AWS-IP-Blöcke für verwaltete Services, z. B. die IP-Adressen, die für Load Balancer und Amazon API Gateway verwendet werden. Diese Aktion blockiert auch die Netzwerkkonnektivität über regionsübergreifende VPC-Peering-Verbindungen von der Versuchsregion zur Zielregion. Es wirkt sich nicht auf den Zugriff auf VPC-Endpunkte in der Versuchsregion aus, blockiert jedoch den Datenverkehr aus der Versuchsregion, der für einen VPC-Endpunkt in der Zielregion bestimmt ist.

Diese Aktion zielt auf Subnetze in der Versuchsregion ab. Standardmäßig zielt sie auf Subnetze ab, deren Tag DisruptSubnet den Wert hat. Allowed Sie können dieses Tag zu Ihren Subnetzen hinzufügen oder das Standard-Tag in der Experimentvorlage durch Ihr eigenes Tag ersetzen. Wenn keine gültigen Subnetze gefunden werden, wird diese Aktion standardmäßig übersprungen.

S3-Replikation anhalten

Cross Region: Connectivitybeinhaltet aws:s3:bucket-pause-replication, um die S3-Replikation von der Versuchsregion zur Zielregion für die Ziel-Buckets anzuhalten. Die Replikation von der Zielregion zur Experimentregion bleibt davon unberührt. Nach dem Ende des Szenarios wird die Bucket-Replikation an dem Punkt fortgesetzt, an dem sie angehalten wurde. Beachten Sie, dass die Zeit, die für die Replikation benötigt wird, um alle Objekte synchron zu halten, je nach Dauer des Experiments und der Geschwindigkeit, mit der Objekte in den Bucket hochgeladen werden, variiert.

Diese Aktion zielt auf S3-Buckets in der Versuchsregion ab, wobei die regionsübergreifende Replikation (CRR) für einen S3-Bucket in der Zielregion aktiviert ist. Standardmäßig zielt sie auf Buckets ab, deren Tag den Wert hatDisruptS3. Allowed Sie können dieses Tag zu Ihren Buckets hinzufügen oder das Standard-Tag in der Experimentvorlage durch Ihr eigenes Tag ersetzen. Wenn keine gültigen Buckets gefunden werden, wird diese Aktion standardmäßig übersprungen.

DynamoDB-Replikation unterbrechen

Cross-Region: Connectivitybeinhaltet aws:dynamodb:global-table-pause-replication, um die Replikation zwischen der Versuchsregion und allen anderen Regionen, einschließlich der Zielregion, anzuhalten. Dies verhindert die Replikation in und aus der Versuchsregion, hat aber keinen Einfluss auf die Replikation zwischen anderen Regionen. Nach dem Ende des Szenarios wird die Tabellenreplikation an dem Punkt fortgesetzt, an dem sie angehalten wurde. Beachten Sie, dass die Zeit, die für die Replikation benötigt wird, um alle Daten synchron zu halten, von der Dauer des Experiments und der Geschwindigkeit der Änderungen an der Tabelle abhängt.

Diese Aktion zielt auf globale DynamoDB-Tabellen in der Versuchsregion ab. Standardmäßig zielt sie auf Tabellen ab, deren Tag DisruptDynamoDb den Wert hat. Allowed Sie können dieses Tag zu Ihren Tabellen hinzufügen oder das Standard-Tag in der Experimentvorlage durch Ihr eigenes Tag ersetzen. Wenn keine gültigen globalen Tabellen gefunden werden, wird diese Aktion standardmäßig übersprungen.

Einschränkungen

  • Dieses Szenario beinhaltet keine Stoppbedingungen. Die richtigen Stoppbedingungen für Ihre Anwendung sollten der Versuchsvorlage hinzugefügt werden.

Voraussetzungen

  • Fügen Sie der AWS FIS-Experimentrolle die erforderliche Berechtigung hinzu.

  • Ressourcen-Tags müssen auf Ressourcen angewendet werden, auf die das Experiment abzielen soll. Diese können Ihre eigene Tagging-Konvention oder die im Szenario definierten Standard-Tags verwenden.

Berechtigungen

Die folgende Richtlinie gewährt AWS FIS die erforderlichen Berechtigungen, um ein Experiment mit dem Cross-Region: Connectivity Szenario durchzuführen. Diese Richtlinie muss der Rolle des Experiments zugeordnet werden.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "RouteTableDisruptConnectivity1", "Effect": "Allow", "Action": "ec2:CreateRouteTable", "Resource": "arn:aws:ec2:*:*:route-table/*", "Condition": { "StringEquals": { "aws:RequestTag/managedByFIS": "true" } } }, { "Sid": "RouteTableDisruptConnectivity2", "Effect": "Allow", "Action": "ec2:CreateRouteTable", "Resource": "arn:aws:ec2:*:*:vpc/*" }, { "Sid": "RouteTableDisruptConnectivity21", "Effect": "Allow", "Action": "ec2:CreateTags", "Resource": "arn:aws:ec2:*:*:route-table/*", "Condition": { "StringEquals": { "ec2:CreateAction": "CreateRouteTable", "aws:RequestTag/managedByFIS": "true" } } }, { "Sid": "RouteTableDisruptConnectivity3", "Effect": "Allow", "Action": "ec2:CreateTags", "Resource": "arn:aws:ec2:*:*:network-interface/*", "Condition": { "StringEquals": { "ec2:CreateAction": "CreateNetworkInterface", "aws:RequestTag/managedByFIS": "true" } } }, { "Sid": "RouteTableDisruptConnectivity4", "Effect": "Allow", "Action": "ec2:CreateTags", "Resource": "arn:aws:ec2:*:*:prefix-list/*", "Condition": { "StringEquals": { "ec2:CreateAction": "CreateManagedPrefixList", "aws:RequestTag/managedByFIS": "true" } } }, { "Sid": "RouteTableDisruptConnectivity5", "Effect": "Allow", "Action": "ec2:DeleteRouteTable", "Resource": [ "arn:aws:ec2:*:*:route-table/*", "arn:aws:ec2:*:*:vpc/*" ], "Condition": { "StringEquals": { "ec2:ResourceTag/managedByFIS": "true" } } }, { "Sid": "RouteTableDisruptConnectivity6", "Effect": "Allow", "Action": "ec2:CreateRoute", "Resource": "arn:aws:ec2:*:*:route-table/*", "Condition": { "StringEquals": { "ec2:ResourceTag/managedByFIS": "true" } } }, { "Sid": "RouteTableDisruptConnectivity7", "Effect": "Allow", "Action": "ec2:CreateNetworkInterface", "Resource": "arn:aws:ec2:*:*:network-interface/*", "Condition": { "StringEquals": { "aws:RequestTag/managedByFIS": "true" } } }, { "Sid": "RouteTableDisruptConnectivity8", "Effect": "Allow", "Action": "ec2:CreateNetworkInterface", "Resource": [ "arn:aws:ec2:*:*:subnet/*", "arn:aws:ec2:*:*:security-group/*" ] }, { "Sid": "RouteTableDisruptConnectivity9", "Effect": "Allow", "Action": "ec2:DeleteNetworkInterface", "Resource": "arn:aws:ec2:*:*:network-interface/*", "Condition": { "StringEquals": { "ec2:ResourceTag/managedByFIS": "true" } } }, { "Sid": "RouteTableDisruptConnectivity10", "Effect": "Allow", "Action": "ec2:CreateManagedPrefixList", "Resource": "arn:aws:ec2:*:*:prefix-list/*", "Condition": { "StringEquals": { "aws:RequestTag/managedByFIS": "true" } } }, { "Sid": "RouteTableDisruptConnectivity11", "Effect": "Allow", "Action": "ec2:DeleteManagedPrefixList", "Resource": "arn:aws:ec2:*:*:prefix-list/*", "Condition": { "StringEquals": { "ec2:ResourceTag/managedByFIS": "true" } } }, { "Sid": "RouteTableDisruptConnectivity12", "Effect": "Allow", "Action": "ec2:ModifyManagedPrefixList", "Resource": "arn:aws:ec2:*:*:prefix-list/*", "Condition": { "StringEquals": { "ec2:ResourceTag/managedByFIS": "true" } } }, { "Sid": "RouteTableDisruptConnectivity13", "Effect": "Allow", "Action": [ "ec2:DescribeNetworkInterfaces", "ec2:DescribeVpcs", "ec2:DescribeVpcPeeringConnections", "ec2:DescribeManagedPrefixLists", "ec2:DescribeSubnets", "ec2:DescribeRouteTables", "ec2:DescribeVpcEndpoints" ], "Resource": "*" }, { "Sid": "RouteTableDisruptConnectivity14", "Effect": "Allow", "Action": "ec2:ReplaceRouteTableAssociation", "Resource": [ "arn:aws:ec2:*:*:subnet/*", "arn:aws:ec2:*:*:route-table/*" ] }, { "Sid": "RouteTableDisruptConnectivity15", "Effect": "Allow", "Action": "ec2:GetManagedPrefixListEntries", "Resource": "arn:aws:ec2:*:*:prefix-list/*" }, { "Sid": "RouteTableDisruptConnectivity16", "Effect": "Allow", "Action": "ec2:AssociateRouteTable", "Resource": [ "arn:aws:ec2:*:*:subnet/*", "arn:aws:ec2:*:*:route-table/*" ] }, { "Sid": "RouteTableDisruptConnectivity17", "Effect": "Allow", "Action": "ec2:DisassociateRouteTable", "Resource": [ "arn:aws:ec2:*:*:route-table/*" ], "Condition": { "StringEquals": { "ec2:ResourceTag/managedByFIS": "true" } } }, { "Sid": "RouteTableDisruptConnectivity18", "Effect": "Allow", "Action": "ec2:DisassociateRouteTable", "Resource": [ "arn:aws:ec2:*:*:subnet/*" ] }, { "Sid": "RouteTableDisruptConnectivity19", "Effect": "Allow", "Action": "ec2:ModifyVpcEndpoint", "Resource": [ "arn:aws:ec2:*:*:route-table/*" ], "Condition": { "StringEquals": { "ec2:ResourceTag/managedByFIS": "true" } } }, { "Sid": "RouteTableDisruptConnectivity20", "Effect": "Allow", "Action": "ec2:ModifyVpcEndpoint", "Resource": [ "arn:aws:ec2:*:*:vpc-endpoint/*" ] }, { "Sid": "TransitGatewayDisruptConnectivity1", "Effect": "Allow", "Action": [ "ec2:DisassociateTransitGatewayRouteTable", "ec2:AssociateTransitGatewayRouteTable" ], "Resource": [ "arn:aws:ec2:*:*:transit-gateway-route-table/*", "arn:aws:ec2:*:*:transit-gateway-attachment/*" ] }, { "Sid": "TransitGatewayDisruptConnectivity2", "Effect": "Allow", "Action": [ "ec2:DescribeTransitGatewayPeeringAttachments", "ec2:DescribeTransitGatewayAttachments", "ec2:DescribeTransitGateways" ], "Resource": "*" }, { "Sid": "S3CrossRegion1", "Effect": "Allow", "Action": [ "s3:ListAllMyBuckets" ], "Resource": "*" }, { "Sid": "S3CrossRegion2", "Effect": "Allow", "Action": [ "tag:GetResources" ], "Resource": "*" }, { "Sid": "S3CrossRegion3", "Effect": "Allow", "Action": [ "s3:PauseReplication" ], "Resource": "arn:aws:s3:::*", "Condition": { "StringLike": { "s3:DestinationRegion": "*" } } }, { "Sid": "S3CrossRegion4", "Effect": "Allow", "Action": [ "s3:GetReplicationConfiguration", "s3:PutReplicationConfiguration" ], "Resource": "arn:aws:s3:::*", "Condition": { "BoolIfExists": { "s3:isReplicationPauseRequest": "true" } } }, { "Sid": "DdbCrossRegion1", "Effect": "Allow", "Action": [ "tag:GetResources" ], "Resource": "*" }, { "Sid": "DdbCrossRegion2", "Effect": "Allow", "Action": [ "dynamodb:DescribeTable", "dynamodb:DescribeGlobalTable" ], "Resource": [ "arn:aws:dynamodb:*:*:table/*", "arn:aws:dynamodb:*:*:global-table/*" ] }, { "Sid": "DdbCrossRegion3", "Effect": "Allow", "Action": [ "kms:DescribeKey", "kms:GetKeyPolicy", "kms:PutKeyPolicy" ], "Resource": "arn:aws:kms:*:*:key/*" } ] }

Inhalt des Szenarios

Der folgende Inhalt definiert das Szenario. Diese JSON-Datei kann gespeichert und verwendet werden, um mithilfe des Befehls create-experiment-template über die AWS-Befehlszeilenschnittstelle (AWS CLI) eine Experimentvorlage zu erstellen. Die neueste Version des Szenarios finden Sie in der Szenariobibliothek in der FIS-Konsole.

{ "targets": { "Transit-Gateway": { "resourceType": "aws:ec2:transit-gateway", "resourceTags": { "TgwTag": "TgwValue" }, "selectionMode": "ALL" }, "Subnet": { "resourceType": "aws:ec2:subnet", "resourceTags": { "SubnetKey": "SubnetValue" }, "selectionMode": "ALL", "parameters": {} }, "S3-Bucket": { "resourceType": "aws:s3:bucket", "resourceTags": { "S3Impact": "Allowed" }, "selectionMode": "ALL" }, "DynamoDB-Global-Table": { "resourceType": "aws:dynamodb:encrypted-global-table", "resourceTags": { "DisruptDynamoDb": "Allowed" }, "selectionMode": "ALL" } }, "actions": { "Disrupt-Transit-Gateway-Connectivity": { "actionId": "aws:network:transit-gateway-disrupt-cross-region-connectivity", "parameters": { "duration": "PT3H", "region": "eu-west-1" }, "targets": { "TransitGateways": "Transit-Gateway" } }, "Disrupt-Subnet-Connectivity": { "actionId": "aws:network:route-table-disrupt-cross-region-connectivity", "parameters": { "duration": "PT3H", "region": "eu-west-1" }, "targets": { "Subnets": "Subnet" } }, "Pause-S3-Replication": { "actionId": "aws:s3:bucket-pause-replication", "parameters": { "duration": "PT3H", "region": "eu-west-1" }, "targets": { "Buckets": "S3-Bucket" } }, "Pause-DynamoDB-Replication": { "actionId": "aws:dynamodb:encrypted-global-table-pause-replication", "parameters": { "duration": "PT3H" }, "targets": { "Tables": "DynamoDB-Global-Table" } } }, "stopConditions": [ { "source": "none" } ], "roleArn": "", "logConfiguration": { "logSchemaVersion": 2 }, "tags": { "Name": "Cross-Region: Connectivity" }, "experimentOptions": { "accountTargeting": "single-account", "emptyTargetResolutionMode": "skip" }, "description": "Block application network traffic from experiment Region to target Region and pause cross-Region replication" }