概要
AWS FIS がネットワーク接続中断をサポートしたとのことで、いくつか試してみました。
スコープは以下が対応しているようです。
- all– すべてのトラフィックを拒否します。
- availability-zone– 他のアベイラビリティーゾーンのサブネットとの間の VPC 内トラフィックを拒否します。
- dynamodb– DynamoDB との間のトラフィックを拒否します。
- prefix-list– 指定されたプレフィックス リストとの間のトラフィックを拒否します。
- s3– Amazon S3 との間のトラフィックを拒否します。
- vpc– VPC に出入りするトラフィックを拒否します。
サブネットに対してアクションを実行できるようです。
- aws:ec2:subnet
ALL
前提
- パブリックサブネットに、マルチAZ で ECS(Fargate) のタスクを 4 個起動。
- ALB はわざと利用していません。
設定
結果
次の通り、ターゲットで指定した AZ-1c のみ接続ができなくなりました。
curl http://<AZ-1aのパブリックIP>
<html> <head> <title>Amazon ECS Sample App</title> <style>body {margin-top: 40px; background-color: #333;} </style> </head><body> <div style=color:white;text-align:center> <h1>Amazon ECS Sample App</h1> <h2>Congratulations!</h2> <p>Your application is now running on a container in Amazon ECS.</p> </div></body></html>
curl http://<AZ-1aのパブリックIP>
<html> <head> <title>Amazon ECS Sample App</title> <style>body {margin-top: 40px; background-color: #333;} </style> </head><body> <div style=color:white;text-align:center> <h1>Amazon ECS Sample App</h1> <h2>Congratulations!</h2> <p>Your application is now running on a container in Amazon ECS.</p> </div></body></html>
curl http://<AZ-1cのパブリックIP>
curl: (28) Failed to connect to X.X.X.X port 80 after 75010 ms: Operation timed out
curl http://<AZ-1cのパブリックIP>
curl: (28) Failed to connect to X.X.X.X port 80 after 75010 ms: Operation timed out
DynamoDB
前提
- DynamoDB を準備。
- プライベートサブネット、AZ-1a/AZ-1c に Lambda を配置し、VPCエンドポイントを経由して、DynamoDBにアクセス。
設定1
結果1
Test Event Name
test
Response
{
"name": "sato",
"test_id": "001"
}
設定2
結果2
次の通りタイムアウトとなりました。
Test Event Name
test
Response
{
"errorMessage": "2022-11-26T10:41:26.891Z c90afa5d-ca84-4d2a-90bb-8243df2b9b9e Task timed out after 3.02 seconds"
}
Function Logs
START RequestId: c90afa5d-ca84-4d2a-90bb-8243df2b9b9e Version: $LATEST
2022-11-26T10:41:26.891Z c90afa5d-ca84-4d2a-90bb-8243df2b9b9e Task timed out after 3.02 seconds
END RequestId: c90afa5d-ca84-4d2a-90bb-8243df2b9b9e
REPORT RequestId: c90afa5d-ca84-4d2a-90bb-8243df2b9b9e Duration: 3015.78 ms Billed Duration: 3000 ms Memory Size: 128 MB Max Memory Used: 66 MB
Request ID
c90afa5d-ca84-4d2a-90bb-8243df2b9b9e
VPC
前提
- VPC を指定した場合、出入りするトラフィックを拒否するとのことなので、今回は単純にパブリックサブネットに、マルチAZ で ECS(Fargate) のタスクを 2 個起動。
- ALB はわざと利用していません。
設定
結果
次の通り、ターゲットで指定した AZ-1c のみ接続ができなくなりました。
curl http://<AZ-1aのパブリックIP>
<html> <head> <title>Amazon ECS Sample App</title> <style>body {margin-top: 40px; background-color: #333;} </style> </head><body> <div style=color:white;text-align:center> <h1>Amazon ECS Sample App</h1> <h2>Congratulations!</h2> <p>Your application is now running on a container in Amazon ECS.</p> </div></body></html>
curl http://<AZ-1cのパブリックIP>
curl: (28) Failed to connect to X.X.X.X port 80 after 75010 ms: Operation timed out