Cross-Region: Connectivity - AWS Servizio di iniezione dei guasti

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Cross-Region: Connectivity

Puoi utilizzare il plugin Cross-Region: Connectivity scenario per bloccare il traffico di rete dell'applicazione dalla regione sperimentale alla regione di destinazione e sospendere la replica tra regioni per Amazon S3 e Amazon DynamoDB. Interregione: la connettività influisce sul traffico delle applicazioni in uscita dalla regione in cui viene eseguito l'esperimento (regione sperimentale). Il traffico in entrata senza stato proveniente dalla regione che desideri isolare dalla regione dell'esperimento (regione di destinazione) potrebbe non essere bloccato. Il traffico proveniente dai servizi AWS gestiti potrebbe non essere bloccato.

Questo scenario può essere utilizzato per dimostrare che le applicazioni multiregionali funzionano come previsto quando le risorse nella regione di destinazione non sono accessibili dalla regione sperimentale. Include il blocco del traffico di rete dalla regione dell'esperimento alla regione di destinazione prendendo di mira i gateway di transito e le tabelle delle rotte. Inoltre, sospende la replica tra regioni per S3 e DynamoDB. Per impostazione predefinita, le azioni per le quali non viene trovato alcun obiettivo verranno ignorate.

Azioni

Insieme, le seguenti azioni bloccano la connettività interregionale per i servizi inclusi. AWS Le azioni vengono eseguite in parallelo. Per impostazione predefinita, lo scenario blocca il traffico per 3 ore, che è possibile aumentare fino a una durata massima di 12 ore.

Interrompi la connettività Transit Gateway

Cross Region: Connectivity include aws:network: transit-gateway-disrupt-cross -region-connectivity per bloccare il traffico di rete interregionale dalla regione dell'esperimento alla VPCs regione di destinazione collegata da un gateway VPCs di transito. Ciò non influisce sull'accesso agli VPC endpoint all'interno della regione dell'esperimento, ma bloccherà il traffico proveniente dalla regione dell'esperimento destinato a un endpoint nella regione di destinazione. VPC

Questa azione si rivolge ai gateway di transito che collegano la regione dell'esperimento e la regione di destinazione. Per impostazione predefinita, ha come target i gateway di transito con un tag denominato DisruptTransitGateway con un valore di. Allowed Puoi aggiungere questo tag ai tuoi gateway di transito o sostituire il tag predefinito con il tuo tag nel modello dell'esperimento. Per impostazione predefinita, se non vengono trovati gateway di transito validi, questa azione verrà ignorata.

Interrompi la connettività della sottorete

Cross Region: Connectivity include aws:network: route-table-disrupt-cross -region-connectivity per bloccare il traffico di rete interregionale dalla regione dell'esperimento ai blocchi VPCs IP pubblici nella regione di destinazione. AWS Questi blocchi IP pubblici includono gli endpoint di AWS servizio nella regione di destinazione, ad esempio l'endpoint regionale S3, e i blocchi AWS IP per i servizi gestiti, ad esempio gli indirizzi IP utilizzati per i sistemi di bilanciamento del carico e Amazon Gateway. API Questa azione blocca anche la connettività di rete tramite connessioni VPC peering interregionali dalla regione dell'esperimento alla regione di destinazione. Non influisce sull'accesso agli VPC endpoint nella regione dell'esperimento, ma bloccherà il traffico proveniente dalla regione dell'esperimento destinato a un VPC endpoint nella regione di destinazione.

Questa azione si rivolge alle sottoreti nella regione dell'esperimento. Per impostazione predefinita, si rivolge alle sottoreti con un tag denominato DisruptSubnet con un valore di. Allowed Puoi aggiungere questo tag alle tue sottoreti o sostituire il tag predefinito con il tuo tag nel modello dell'esperimento. Per impostazione predefinita, se non vengono trovate sottoreti valide, questa azione verrà ignorata.

Metti in pausa la replica S3

Cross Region: Connectivity include aws:s3: bucket-pause-replication per sospendere la replica S3 dalla regione dell'esperimento alla regione di destinazione per i bucket mirati. La replica dalla regione di destinazione alla regione dell'esperimento non sarà influenzata. Al termine dello scenario, la replica del bucket riprenderà dal punto in cui era stata messa in pausa. Tieni presente che il tempo necessario alla replica per mantenere sincronizzati tutti gli oggetti varierà in base alla durata dell'esperimento e alla velocità di caricamento degli oggetti nel bucket.

Questa azione si rivolge ai bucket S3 nella regione dell'esperimento con Cross-Region Replication (CRR) abilitata su un bucket S3 nella regione di destinazione. Per impostazione predefinita, si rivolge ai bucket con un tag denominato con un valore di. DisruptS3 Allowed Puoi aggiungere questo tag ai tuoi bucket o sostituire il tag predefinito con il tuo tag nel modello dell'esperimento. Per impostazione predefinita, se non vengono trovati bucket validi, questa azione verrà ignorata.

Sospendi la replica di DynamoDB

Cross-Region: Connectivity include aws:dynamodb: global-table-pause-replication per sospendere la replica tra la regione dell'esperimento e tutte le altre regioni, inclusa la regione di destinazione. Ciò impedisce la replica all'interno e all'esterno della regione dell'esperimento ma non influisce sulla replica tra altre regioni. Al termine dello scenario, la replica della tabella riprenderà dal punto in cui era stata messa in pausa. Tieni presente che il tempo necessario alla replica per mantenere sincronizzati tutti i dati varierà in base alla durata dell'esperimento e alla frequenza delle modifiche alla tabella.

Questa azione si rivolge alle tabelle globali di DynamoDB nella regione dell'esperimento. Per impostazione predefinita, si rivolge alle tabelle con un tag denominato DisruptDynamoDb con un valore di. Allowed Puoi aggiungere questo tag alle tue tabelle o sostituire il tag predefinito con il tuo tag nel modello dell'esperimento. Per impostazione predefinita, se non vengono trovate tabelle globali valide, questa azione verrà ignorata.

Limitazioni

  • Questo scenario non include le condizioni di arresto. Le condizioni di arresto corrette per l'applicazione devono essere aggiunte al modello dell'esperimento.

Requisiti

  • Aggiungi l'autorizzazione richiesta al ruolo dell'AWSFISesperimento.

  • I tag delle risorse devono essere applicati alle risorse che devono essere prese di mira dall'esperimento. Questi possono utilizzare la propria convenzione di etichettatura o i tag predefiniti nello scenario.

Autorizzazioni

La seguente politica concede AWS FIS le autorizzazioni necessarie per eseguire un esperimento con Cross-Region: Connectivity scenario. Questa politica deve essere associata al ruolo dell'esperimento.

{ "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/*" } ] }

Contenuto dello scenario

Il seguente contenuto definisce lo scenario. Questo JSON può essere salvato e utilizzato per creare un modello di esperimento utilizzando il create-experiment-templatecomando dell'interfaccia a riga di AWS comando (AWSCLI). Per la versione più recente dello scenario, visitate la libreria di scenari nella FIS console.

{ "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" }