View a markdown version of this page

Cross-Region: Konnektivität - AWS Service zur Fehlerinjektion

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: Konnektivität

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

Dieses Szenario kann verwendet werden, um zu demonstrieren, dass Anwendungen mit mehreren Regionen erwartungsgemäß funktionieren, wenn von der Versuchsregion aus nicht auf Ressourcen in der Zielregion zugegriffen werden kann. Es beinhaltet das Blockieren des Netzwerkverkehrs von der Versuchsregion zur Zielregion, indem es auf Transit-Gateways und Routing-Tabellen abzielt. Außerdem wird die regionsübergreifende Replikation für globale S3- und DynamoDB-Tabellen unterbrochen. 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 wirkt sich nicht auf den Zugriff auf VPC-Endpunkte innerhalb 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 Transit-Gateways ab, die die Experimentregion und die Zielregion verbinden. Standardmäßig zielt sie auf Transit-Gateways ab, deren Tag mit dem Wert von benannt DisruptTransitGateway ist. Allowed Sie können dieses Tag zu Ihren Transit-Gateways hinzufügen oder das Standard-Tag in der Versuchsvorlage 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 Dienste, 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. Sie wirkt sich nicht auf den Zugriff auf VPC-Endpunkte in der Experimentregion aus, blockiert jedoch den Datenverkehr aus der Experimentregion, der für einen VPC-Endpunkt in der Zielregion bestimmt ist.

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

Unterbrechen Sie die VPC-Endpunktkonnektivität

Cross Region: Connectivitybeinhaltet aws:network:disrupt-vpc-endpoint Disrupt-Konnektivität zu einem Dienst, der den VPC-Zielendpunkten zugeordnet ist. Wenn beispielsweise ein VPC-Endpunkt einen privaten Link zu com.amazonaws.us-east-1.ec2 erstellt, wird die Konnektivität zu diesem Dienst unterbrochen.

Diese Aktion zielt auf VPC-Endpunkte in der Versuchsregion ab. Standardmäßig zielt sie auf Schnittstellen-VPC-Endpunkte mit einem Tag ab, der mit einem Wert benannt DisruptVpcEndpoint ist. Allowed Sie können dieses Tag zu Ihren VPC-Endpunkten hinzufügen oder das Standard-Tag in der Versuchsvorlage durch Ihr eigenes Tag ersetzen. Wenn keine gültigen VPC-Endpunkte 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 Experiment-Region zur Zielregion für die Ziel-Buckets anzuhalten. Die Replikation von der Zielregion zur Experimentregion bleibt davon unberührt. Nach Ende des Szenarios wird die Bucket-Replikation an dem Punkt fortgesetzt, an dem sie unterbrochen wurde. Beachten Sie, dass die Zeit, die die Replikation benötigt, 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 Experimentregion ab, wobei die Cross-Region Replikation (CRR) für einen S3-Bucket in der Zielregion aktiviert ist. Standardmäßig zielt sie auf Buckets ab, deren Tag mit dem Wert von benannt DisruptS3 ist. 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.

Unterbrechen Sie die DynamoDB-Replikation

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

Diese Aktion zielt sowohl stark auf DynamoDB Multiregion als auch letztlich auf konsistente globale Tabellen in der Experiment-Region ab. Standardmäßig zielt sie auf Tabellen ab, deren Tag mit dem Wert von benannt DisruptDynamoDb ist. Allowed Sie können dieses Tag zu Ihren Tabellen hinzufügen oder das Standard-Tag in der Versuchsvorlage durch Ihr eigenes Tag ersetzen. Wenn keine gültigen globalen Tabellen gefunden werden, wird diese Aktion standardmäßig übersprungen.

Unterbrechen Sie die MemoryDB-Replikation für mehrere Regionen

Cross-Region: Connectivityschließt aws:memorydb:multi-region-cluster-pause-replication ein, um die Replikation vom regionalen Mitgliedscluster in der Versuchsregion auf die übrigen Cluster im Zielcluster mit mehreren Regionen zu unterbrechen. Die Replikation zwischen anderen regionalen Mitgliedsclustern bleibt davon unberührt. Nach Ende des Szenarios wird die Replikation an dem Punkt fortgesetzt, an dem sie unterbrochen wurde. Beachten Sie, dass die Zeit, die für die Replikation zur Synchronisation der Daten zwischen den Mitgliedsclustern benötigt wird, je nach Dauer des Experiments und der Rate der in die Cluster geschriebenen Daten variiert.

Diese Aktion zielt auf Multi-Region MemoryDB-Cluster mit einem regionalen Mitglied in der Experimentregion ab. Standardmäßig zielt sie auf Cluster mit mehreren Regionen ab, deren Tag mit dem Wert von benannt DisruptMemoryDB ist. Allowed Sie können dieses Tag zu Ihren Clustern mit mehreren Regionen hinzufügen oder das Standard-Tag in der Versuchsvorlage durch Ihr eigenes Tag ersetzen. Wenn keine gültigen Cluster 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 Experimentrolle 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", "ec2:ModifyManagedPrefixList" ], "Resource": "arn:aws:ec2:*:*:prefix-list/*", "Condition": { "StringEquals": { "aws:ResourceTag/managedByFIS": "true" } } }, { "Sid": "EC2DescribeResources", "Effect": "Allow", "Action": [ "ec2:DescribeNetworkInterfaces", "ec2:DescribeVpcs", "ec2:DescribeVpcPeeringConnections", "ec2:DescribeManagedPrefixLists", "ec2:DescribeSubnets", "ec2:DescribeRouteTables", "ec2:DescribeVpcEndpoints", "ec2:DescribeTransitGatewayPeeringAttachments", "ec2:DescribeTransitGatewayAttachments", "ec2:DescribeTransitGateways", "ec2:DescribeSecurityGroups" ], "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": "TransitGatewayDisruptConnectivity1", "Effect": "Allow", "Action": [ "ec2:DisassociateTransitGatewayRouteTable", "ec2:AssociateTransitGatewayRouteTable" ], "Resource": [ "arn:aws:ec2:*:*:transit-gateway-route-table/*", "arn:aws:ec2:*:*:transit-gateway-attachment/*" ] }, { "Sid": "S3CrossRegion1", "Effect": "Allow", "Action": "s3:ListAllMyBuckets", "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": "DynamoDbPauseReplication", "Effect": "Allow", "Action": [ "dynamodb:DescribeTable", "dynamodb:PutResourcePolicy", "dynamodb:GetResourcePolicy", "dynamodb:DeleteResourcePolicy" ], "Resource": [ "arn:aws:dynamodb:*:*:table/*" ] }, { "Sid": "DynamoDbMrscPauseReplication", "Effect": "Allow", "Action": [ "dynamodb:InjectError" ], "Resource": ["*"] }, { "Sid": "ResolveResourcesViaTags", "Effect": "Allow", "Action": "tag:GetResources", "Resource": "*" }, { "Sid": "MemDbCrossRegion", "Effect": "Allow", "Action": [ "memorydb:DescribeMultiRegionClusters", "memorydb:PauseMultiRegionClusterReplication" ], "Resource": [ "arn:aws:memorydb::*:multiregioncluster/*" ] }, { "Sid": "DisruptVPCE1", "Effect": "Allow", "Action": "ec2:CreateSecurityGroup", "Resource": [ "arn:aws:ec2:*:*:vpc/*", "arn:aws:ec2:*:*:security-group/*" ] }, { "Sid": "DisruptVPCE2", "Effect": "Allow", "Action": "ec2:CreateTags", "Resource": "arn:aws:ec2:*:*:security-group/*", "Condition": { "StringEquals": { "ec2:CreateAction": "CreateSecurityGroup", "aws:RequestTag/managedByFIS": "true" } } }, { "Sid": "DisruptVPCE3", "Effect": "Allow", "Action": [ "ec2:DeleteSecurityGroup", "ec2:RevokeSecurityGroupEgress" ], "Resource": "arn:aws:ec2:*:*:security-group/*", "Condition": { "StringEquals": { "aws:ResourceTag/managedByFIS": "true" } } }, { "Sid": "DisruptVPCE4", "Effect": "Allow", "Action": "vpce:AllowMultiRegion", "Resource": "arn:aws:ec2:*:*:vpc-endpoint/*" }, { "Sid": "ModifyVPCE", "Effect": "Allow", "Action": "ec2:ModifyVpcEndpoint", "Resource": [ "arn:aws:ec2:*:*:vpc-endpoint/*", "arn:aws:ec2:*:*:security-group/*" ] } ] }

Inhalt des Szenarios

Der folgende Inhalt definiert das Szenario. Dieses JSON kann gespeichert und verwendet werden, um eine Versuchsvorlage mithilfe des Befehls create-experiment-template aus der AWS-Befehlszeilenschnittstelle (AWS CLI) 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": {} }, "VPC-Endpoint": { "resourceType": "aws:ec2:vpc-endpoint", "resourceTags": { "DisruptPrivateLink": "Allowed" }, "selectionMode": "ALL" }, "S3-Bucket": { "resourceType": "aws:s3:bucket", "resourceTags": { "S3Impact": "Allowed" }, "selectionMode": "ALL" }, "DynamoDB-Global-Table": { "resourceType": "aws:dynamodb:global-table", "resourceTags": { "DisruptDynamoDb": "Allowed" }, "selectionMode": "ALL" }, "MemoryDB-Multi-Region-Cluster": { "resourceType": "aws:memorydb:multi-region-cluster", "resourceTags": { "DisruptMemoryDb": "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" } }, "Disrupt-Vpc-Endpoint": { "actionId": "aws:network:disrupt-vpc-endpoint", "parameters": { "duration": "PT3H" }, "targets": { "VPCEndpoints": "VPC-Endpoint" } }, "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:global-table-pause-replication", "parameters": { "duration": "PT3H" }, "targets": { "Tables": "DynamoDB-Global-Table" } }, "Pause-MemoryDB-Multi-Region-Cluster-Replication": { "actionId": "aws:memorydb:multi-region-cluster-pause-replication", "parameters": { "duration": "PT3H", "region": "eu-west-1" }, "targets": { "MultiRegionClusters": "MemoryDB-Multi-Region-Cluster" } } }, "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" }