View a markdown version of this page

Cross-Region: Konektivitas - AWS Layanan Injeksi Kesalahan

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Cross-Region: Konektivitas

Anda dapat menggunakan Cross-Region: Connectivity skenario untuk memblokir lalu lintas jaringan aplikasi dari Wilayah percobaan ke Wilayah tujuan dan menjeda replikasi lintas wilayah untuk tabel global Amazon S3 dan Amazon DynamoDB Multi-wilayah. Lintas Wilayah: Konektivitas memengaruhi lalu lintas aplikasi keluar dari Wilayah tempat Anda menjalankan eksperimen (Wilayah percobaan). Lalu lintas masuk tanpa status dari Wilayah yang ingin Anda isolasi dari wilayah percobaan (Wilayah tujuan) mungkin tidak diblokir. Lalu lintas dari layanan terkelola AWS mungkin tidak diblokir.

Skenario ini dapat digunakan untuk menunjukkan bahwa aplikasi Multi-wilayah beroperasi seperti yang diharapkan ketika sumber daya di Wilayah tujuan tidak dapat diakses dari Wilayah percobaan. Ini termasuk memblokir lalu lintas jaringan dari Wilayah percobaan ke Wilayah tujuan dengan menargetkan gateway transit dan tabel rute. Ini juga menjeda replikasi lintas wilayah untuk tabel global S3 dan DynamoDB. Secara default, tindakan yang tidak ditemukan targetnya akan dilewati.

Tindakan

Bersama-sama, tindakan berikut memblokir konektivitas lintas wilayah untuk layanan AWS yang disertakan. Tindakan dijalankan secara paralel. Secara default, skenario memblokir lalu lintas selama 3 jam, yang dapat Anda tingkatkan hingga durasi maksimum 12 Jam.

Mengganggu Konektivitas Gateway Transit

Cross Region: Connectivitytermasuk aws:network:transit-gateway-disrupt-cross-region-connection untuk memblokir lalu lintas jaringan lintas wilayah dari VPC di Wilayah percobaan ke VPC di Wilayah tujuan yang terhubung oleh gateway transit. Ini tidak mempengaruhi akses ke titik akhir VPC dalam Wilayah percobaan tetapi akan memblokir lalu lintas dari Wilayah percobaan yang ditujukan untuk titik akhir VPC di Wilayah tujuan.

Tindakan ini menargetkan gateway transit yang menghubungkan Wilayah percobaan dan Wil ayah tujuan. Secara default, ini menargetkan gateway transit dengan tag bernama DisruptTransitGateway dengan nilaiAllowed. Anda dapat menambahkan tag ini ke gateway transit atau mengganti tag default dengan tag Anda sendiri di template percobaan. Secara default, jika tidak ada gateway transit yang valid ditemukan, tindakan ini akan dilewati.

Mengganggu Konektivitas Subnet

Cross Region: Connectivitytermasuk aws:network:route-table-disrupt-cross-region-connection untuk memblokir lalu lintas jaringan lintas wilayah dari VPC di Wilayah percobaan ke blok IP AWS publik di Wilayah tujuan. Blok IP publik ini mencakup titik akhir layanan AWS di Wilayah tujuan, misalnya titik akhir regional S3, dan blok IP AWS untuk layanan terkelola, misalnya alamat IP yang digunakan untuk penyeimbang beban dan Amazon API Gateway. Tindakan ini juga memblokir konektivitas jaringan melalui koneksi Peering VPC lintas wilayah dari Wilayah percobaan ke Wilayah tujuan. Ini tidak mempengaruhi akses ke titik akhir VPC di Wilayah percobaan tetapi akan memblokir lalu lintas dari Wilayah percobaan yang ditujukan untuk titik akhir VPC di Wilayah tujuan.

Tindakan ini menargetkan subnet di Wilayah percobaan. Secara default, ini menargetkan subnet dengan tag bernama DisruptSubnet dengan nilaiAllowed. Anda dapat menambahkan tag ini ke subnet Anda atau mengganti tag default dengan tag Anda sendiri di template percobaan. Secara default, jika tidak ada subnet yang valid ditemukan tindakan ini akan dilewati.

Mengganggu Konektivitas Titik Akhir VPC

Cross Region: Connectivitytermasuk aws:network:disrupt-vpc-endpoint mengganggu konektivitas ke layanan yang terkait dengan titik akhir VPC target. Misalnya, jika titik akhir VPC membuat Tautan Pribadi ke com.amazonaws.us-east-1.ec2, maka konektivitas ke layanan tersebut akan terganggu.

Tindakan ini menargetkan titik akhir VPC di wilayah percobaan. Secara default, ini menargetkan titik akhir VPC antarmuka dengan tag bernama DisruptVpcEndpoint dengan nilai. Allowed Anda dapat menambahkan tag ini ke titik akhir VPC Anda atau mengganti tag default dengan tag Anda sendiri di template percobaan. Secara default, jika tidak ada titik akhir VPC yang valid ditemukan, tindakan ini akan dilewati.

Jeda Replikasi S3

Cross Region: Connectivitytermasuk aws:s3:bucket-pause-replicasi untuk menjeda replikasi S3 dari Wilayah percobaan ke Wilayah tujuan untuk bucket yang ditargetkan. Replikasi dari Wilayah tujuan ke Wil ayah percobaan tidak akan terpengaruh. Setelah skenario berakhir, replikasi bucket akan dilanjutkan dari titik dijeda. Perhatikan bahwa waktu yang diperlukan untuk replikasi untuk menjaga semua objek tetap sinkron akan bervariasi berdasarkan durasi percobaan, dan laju upload objek ke bucket.

Tindakan ini menargetkan bucket S3 di Wilayah percobaan dengan Cross-Region Replikasi (CRR) diaktifkan ke bucket S3 di Wilayah tujuan. Secara default, ini menargetkan bucket DisruptS3 dengan tag bernama dengan nilaiAllowed. Anda dapat menambahkan tag ini ke bucket Anda atau mengganti tag default dengan tag Anda sendiri di template percobaan. Secara default, jika tidak ada bucket yang valid ditemukan, tindakan ini akan dilewati.

Jeda Replikasi DynamoDB

Cross-Region: Connectivitytermasuk aws:dynamodb:global-table-pause-replicasi untuk menjeda replikasi antara Wilayah percobaan dan semua Wilayah lainnya, termasuk Wilayah tujuan. Ini mencegah replikasi masuk dan keluar dari Wil ayah percobaan tetapi tidak mempengaruhi replikasi antara Wilayah lain. Setelah skenario berakhir, replikasi tabel akan dilanjutkan dari titik dijeda. Perhatikan bahwa waktu yang diperlukan untuk replikasi untuk menjaga semua data tetap sinkron akan bervariasi berdasarkan durasi percobaan dan laju perubahan pada tabel.

Tindakan ini menargetkan DynamoDB Multi-region yang kuat dan akhirnya konsisten tabel global di Wilayah percobaan. Secara default, ini menargetkan tabel DisruptDynamoDb dengan tag bernama dengan nilaiAllowed. Anda dapat menambahkan tag ini ke tabel Anda atau mengganti tag default dengan tag Anda sendiri di template percobaan. Secara default, jika tidak ada tabel global yang valid ditemukan tindakan ini akan dilewati.

Jeda Replikasi Multi-wilayah MemoryDB

Cross-Region: Connectivitytermasuk aws:memorydb:multi-region-cluster-pause-replicasi untuk menjeda replikasi dari cluster anggota regional di Wilayah percobaan ke seluruh cluster di cluster Multi-wilayah yang ditargetkan. Replikasi antara cluster anggota regional lainnya tidak akan terpengaruh. Setelah skenario berakhir, replikasi akan dilanjutkan dari titik dijeda. Perhatikan bahwa waktu replikasi untuk menyinkronkan data antara cluster anggota akan bervariasi berdasarkan durasi percobaan, dan laju data yang ditulis ke cluster.

Tindakan ini menargetkan Multi-Region cluster MemoryDB dengan anggota regional di Wilayah percobaan. Secara default, ini menargetkan cluster Multi-wilayah dengan tag bernama DisruptMemoryDB dengan nilaiAllowed. Anda dapat menambahkan tag ini ke cluster Multi-wilayah atau mengganti tag default dengan tag Anda sendiri di template percobaan. Secara default, jika tidak ada cluster yang valid ditemukan tindakan ini akan dilewati.

Batasan

  • Skenario ini tidak termasuk kondisi berhenti. Kondisi berhenti yang benar untuk aplikasi Anda harus ditambahkan ke template percobaan.

Persyaratan

  • Tambahkan izin yang diperlukan ke peran eksperimen AWS FIS.

  • Tag sumber daya harus diterapkan ke sumber daya yang akan ditargetkan oleh eksperimen. Ini dapat menggunakan konvensi penandaan Anda sendiri atau tag default yang ditentukan dalam skenario.

Perizinan

Kebijakan berikut memberi AWS FIS izin yang diperlukan untuk menjalankan eksperimen dengan Cross-Region: Connectivity skenario. Kebijakan ini harus dilampirkan pada peran eksperimen.

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

Isi Skenario

Konten berikut mendefinisikan skenario. JSON ini dapat disimpan dan digunakan untuk membuat template percobaan menggunakan perintah create-experimentent-template dari AWS Command Line Interface (AWS CLI). Untuk versi skenario terbaru, kunjungi pustaka skenario di konsol FIS.

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