
BIG-IPのMulti-AZ HAクラスターをCloudFormationで作成してみた
BIG-IPのMulti-AZ HAクラスターを簡単に作成したい
こんにちは、のんピ(@non____97)です。
皆さんはBIG-IPのMulti-AZ HAクラスターを簡単に作成したいなと思ったことはありますか? 私はあります。
以下のような場面ではALB/NLBではなく、BIG-IPを使いたくなります。
- 既存のBIG-IPからの移行
- iRuleを用いた複雑な処理
- IPベースの維持設定
- SNATなしでのルーティング
- 長時間のアイドルタイムアウト設定
- TCPポートへの高度なMonitor設定
BIG-IPでMulti-AZのHAクラスターを構築することは可能です。
しかし、以下記事で紹介されているとおり、それなりの作業量があります。
そんな折、F5のBIG-IPのドキュメントを見ていると、AWS上のBIG-IPでMulti-AZのHAクラスターを組むCloudFormationが公開されていました。
これは触るしかないですね。
実際に触ってみたので紹介します。
CloudFormationスタックのデプロイ
検証環境
検証環境は以下のとおりです。
フェイルオーバーすると、Webサーバーへのトラフィックは以下のような経路に変わります。
上述のGitHubリポジトリ内の図とサブネットCIDRは合わせています。
また、ターゲットとなるWebサーバーは/
にアクセスするとホスト名を返すように設定しています。
BIG-IPのサブスクリプション
AWS MarktplaceからBIG-IPのサブスクリプションを行います。
今回は高機能、高性能は不要なので BIG-IP Virtual Edition - GOOD (PAYG, 25Mbps) を選択しました。
事前にサブスクリプションしないと、Stackをデプロイした際にIn order to use this AWS Marketplace product you need to accept terms and subscribe. To do so please visit https://aws.amazon.com/marketplace/pp?sku=6gxrih3enhavyxlj11or9z9ht
とエラーになります。
忘れずに行いましょう。
ちなみに、GOOD/BETTER/BESTの機能比較は以下にまとめられています。
Stackのデプロイ
Stackのデプロイをします。
用意されているCloudFormationテンプレートは以下の2種類があります。
- Failover : https://f5-cft-v2.s3.amazonaws.com/f5-aws-cloudformation-v2/v3.6.0.0/examples/failover/failover.yaml
- Failover Existing Network : https://f5-cft-v2.s3.amazonaws.com/f5-aws-cloudformation-v2/v3.6.0.0/examples/failover/failover-existing-network.yaml
前者がVPCやサンプルアプリも丸ごと作成するテンプレート、後者が既存のVPCにBIG-IPのHAクラスターに必要なリソースのみを作るものになります。
最初は前者でトライしていたのですが、以下のようなトラブルがあったので後者を使用します。
- サンプルアプリで使用するAMIが存在しない
-
サンプルアプリを使用しようとすると以下のようなエラーが表示される
Resource handler returned message: "The image id '[ami-00543d76373f96fe7]' does not exist (Service: Ec2, Status Code: 400, Request ID: 24118111-c022-4662-873a-8c4a5da313b7) (SDK Attempt Count: 1)" (RequestToken: 6c219ef3-ee4a-c523-61aa-e8d877bc6969, HandlerErrorCode: InvalidRequest)
- これは既知のエラーであり、いくつかのIssueが切られている
- サンプルアプリで使用するAMIを明示的に使用することはできず、このテンプレートを使用するにはサンプルアプリを作成しないようにする必要がある
- サブネットのCIDRとENIに割り当てるIPアドレスが噛み合わず失敗する
-
デフォルト設定でデプロイすると、BIG-IPの仮想アプライアンス作成時に以下のようなエラーが表示される
Resource handler returned message: "Address does not fall within the subnet's address range (Service: Ec2, Status Code: 400, Request ID: 7212e058-ef44-4d32-85d9-9d2a6bded0a0) (SDK Attempt Count: 1)" (RequestToken: 699a3877-12da-d9ff-ba96-3af9efaa5011, HandlerErrorCode: InvalidRequest)
-
詳細を確認すると、Stack内で作成したサブネットのCIDRとENIに割り当てるIPアドレスが噛み合っていない
10.0.4.11
のENIを10.0.7.0/24
のサブネットに作成しようとする
Failover Existing Networkのテンプレートでデプロイしていきましょう。
テンプレートを指定します。
スタック名や各種パラメーターを指定します。
パラメーターの詳細な説明はGitHubで公開されています。
Template Locationはデフォルトのままにします。
Network Configurationでは事前に用意しておいたVPCやサブネットの情報を指定します。IPアドレスは変更していません。
Amazon EC2 Configurationはデフォルトのまま未指定です。DAG/Ingressでは指定のIPアドレスから操作できるように、自IPとManagement InterfaceへのパブリックIPの割り当てを有効化します。
BIG-IP Configurationでは、ホスト名とCustom Image Id、Enter valid instance type、CFE S3 Bucketを入力しました。
AMI IDは先ほどサブスクライブしたBIG-IPの製品名で検索をして確認します。
> aws ec2 describe-images \
--filters "Name=name,Values=*17.5.1-0.0.7**PAYG-Good 25Mbps*"
{
"Images": [
{
"PlatformDetails": "Linux/UNIX",
"UsageOperation": "RunInstances",
"BlockDeviceMappings": [
{
"Ebs": {
"DeleteOnTermination": true,
"SnapshotId": "snap-09cbfd286b405259c",
"VolumeSize": 41,
"VolumeType": "gp2",
"Encrypted": false
},
"DeviceName": "/dev/xvda"
}
],
"Description": "F5 BIGIP-17.5.1-0.0.7 PAYG-Good 25Mbps-250618085253",
"EnaSupport": true,
"Hypervisor": "xen",
"ImageOwnerAlias": "aws-marketplace",
"Name": "F5 BIGIP-17.5.1-0.0.7 PAYG-Good 25Mbps-250618085253-8e1217d4-a046-4cdf-894e-e38175bae37f",
"RootDeviceName": "/dev/xvda",
"RootDeviceType": "ebs",
"SriovNetSupport": "simple",
"VirtualizationType": "hvm",
"DeprecationTime": "2027-07-01T05:58:52.000Z",
"SourceImageId": "ami-0afabea61397af20d",
"SourceImageRegion": "us-east-1",
"ImageId": "ami-0235157aba1851b1f",
"ImageLocation": "aws-marketplace/F5 BIGIP-17.5.1-0.0.7 PAYG-Good 25Mbps-250618085253-8e1217d4-a046-4cdf-894e-e38175bae37f",
"State": "available",
"OwnerId": "679593333241",
"CreationDate": "2025-07-01T05:58:52.000Z",
"Public": true,
"ProductCodes": [
{
"ProductCodeId": "8esk90vx7v713sa0muq2skw3j",
"ProductCodeType": "marketplace"
}
],
"Architecture": "x86_64",
"ImageType": "machine"
}
]
}
サブスクライブした製品がサポートしているインスタンスタイプはAWS Marketplaceのコンソールから確認する形が良いでしょう。m7iやc7iといったインスタンスクラスは現状未サポートでした。
インスタンスタイプの選定は単純なCPUやメモリの性能だけではなく、割り当て可能なENI数とENIに割り当て可能なIPアドレス数も加味する必要があります。
例えば、m6i.xlargeの場合は最大4NIで、各ENIに15個のIPアドレスを割り当てることが可能です。インスタンスタイプごとのENIとIPアドレス数は以下AWS公式ドキュメントをご覧ください。
IPアドレスはBIG-IP内のVirtual Serverごとに振ることになるため、m6i.xlargeの場合は作成できるVirtual Serverは(15個 - プライマリIPアドレス) × External用に割り当てることが可能なENI数2 = 28個
までとなります。多数のVirtual Serverを動作させる場合はその分より大きなインスタンスサイズを選択することになるため注意しましょう。
Application ConfigurationではProvition Public IP'sのみtrueに変更しました。他は全てデフォルトです。
スタックオプションの指定です。下のチェックボックス2つにチェックを入れて次へ
をクリックします。
内容を確認してデプロイします。
デプロイ中です。
以下ネストされたStackが作成されていますね
- Function
- Dag
- Access
- BigIpInstance01
- BigIpInstance02
BigIpInstance01
を確認してみると、絶賛インスタンス作成中です。
EC2インスタンスとしての側は既に出来上がっていますね。
myuniqstr-bigip-vm-01に管理用、Self-IP用、VIP用の3つのEIPが割り当てられていることが分かります。
myuniqstr-bigip-vm-01のシステムログを確認すると、以下のようにスタートアップスクリプトが正常に完了していることがわかります。
/src/mock_tracer/mock_context.ts
./f5-bigip-runtime-init-aws/node_modules/opentracing/src/mock_tracer/mock_report.ts
./f5-bigip-runtime-init-aws/node_modules/opentracing/src/mock_tracer/mock_span.ts
.
.
(中略)
.
.
./f5-bigip-runtime-init-aws/src/schema/base_schema.json
./f5-bigip-runtime-init-aws/src/version
29321 blocks
2025-07-14T02:32:32 - Getting lastest AT metadata at https://cdn.f5.com/product/cloudsolutions/f5-extension-metadata/latest/metadata.json
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0
100 64119 100 64119 0 0 1592k 0 --:--:-- --:--:-- --:--:-- 1647k
2025-07-14T02:32:32 - Creating command utility.
2025-07-14T02:32:33 - RPM installation is completed.
+ f5-bigip-runtime-init --config-file /config/cloud/runtime-init.conf --skip-telemetry
2025-07-14T09:32:34.179Z [9154]: info: Configuration file: /config/cloud/runtime-init.conf
2025-07-14T09:32:34.187Z [9154]: info: Processing controls parameters
2025-07-14T09:32:34.189Z [9154]: info: F5 Telemetry is disabled.
2025-07-14T09:32:34.189Z [9154]: info: Validating provided declaration
2025-07-14T09:32:34.234Z [9154]: info: Successfully validated declaration
mcpd has reached 'running' state
2025-07-14T09:33:35.551Z [9154]: info: Resolving parameters
2025-07-14T09:33:36.126Z [9154]: info: Interface:1.1
2025-07-14T09:33:36.129Z [9154]: info: MAC adddress is not populated on 1.1 BIGIP interface. Trying to re-fetch interface data. Left attempts: 99
2025-07-14T09:33:36.143Z [9154]: info: Interface:1.2
2025-07-14T09:33:36.144Z [9154]: info: MAC adddress is not populated on 1.2 BIGIP interface. Trying to re-fetch interface data. Left attempts: 99
2025-07-14T09:33:36.158Z [9154]: info: Interface:1.1
2025-07-14T09:33:36.159Z [9154]: info: MAC adddress is not populated on 1.1 BIGIP interface. Trying to re-fetch interface data. Left attempts: 99
2025-07-14T09:33:46.155Z [9154]: info: Interface:1.1
2025-07-14T09:33:46.157Z [9154]: info: MAC address found for 1.1: 0e:44:6d:52:d2:c1
2025-07-14T09:33:46.162Z [9154]: info: Primary IP for 0e:44:6d:52:d2:c1: 10.0.0.11
2025-07-14T09:33:46.164Z [9154]: info: ip and mask for 0e:44:6d:52:d2:c1: 10.0.0.11/24
2025-07-14T09:33:46.170Z [9154]: info: Interface:1.2
2025-07-14T09:33:46.171Z [9154]: info: MAC address found for 1.2: 0e:dc:be:71:31:49
2025-07-14T09:33:46.173Z [9154]: info: Primary IP for 0e:dc:be:71:31:49: 10.0.2.11
2025-07-14T09:33:46.176Z [9154]: info: ip and mask for 0e:dc:be:71:31:49: 10.0.2.11/24
2025-07-14T09:33:46.184Z [9154]: info: Interface:1.1
2025-07-14T09:33:46.187Z [9154]: info: MAC address found for 1.1: 0e:44:6d:52:d2:c1
2025-07-14T09:33:46.188Z [9154]: info: Primary IP for 0e:44:6d:52:d2:c1: 10.0.0.11
2025-07-14T09:33:46.190Z [9154]: info: ip and mask for 0e:44:6d:52:d2:c1: 10.0.0.11/24
2025-07-14T09:33:46.280Z [9154]: info: Executing install operations.
2025-07-14T09:33:46.287Z [9154]: info: Installing - do 1.44.0
2025-07-14T09:33:48.656Z [9154]: info: Validating - do extension is available.
2025-07-14T09:33:58.687Z [9154]: info: Installing - as3 3.51.0
2025-07-14T09:34:02.003Z [9154]: info: Validating - as3 extension is available.
2025-07-14T09:34:27.900Z [9154]: info: Installing - cf 2.1.2
2025-07-14T09:34:30.516Z [9154]: info: Validating - cf extension is available.
2025-07-14T09:34:40.533Z [9154]: info: Executing service operations.
2025-07-14T09:34:40.643Z [9154]: info: Creating - do 1.44.0 {"schemaVersion":"1.0.0","class":"Device","async":true,"label":"Failover 3NIC BIG-IP declaration for Declarative Onboarding with PAYG license","Common":{"class":"Tenant","My_DbVariables":{"class":"DbVariables","config.allow.rfc3927":"enable","tm.tcpudptxchecksum":"Software-only"},"My_Ntp":{"class":"NTP","servers":["0.pool.ntp.org","1.pool.ntp.org"],"timezone":"UTC"},"My_Dns":{"class":"DNS","nameServers":["169.254.169.253"],"search":["f5.com"]},"My_System":{"autoPhonehome":true,"class":"System","hostname":"failover01.www.non-97.net"},"admin":{"class":"User","userType":"regular","password":"********","shell":"bash"},"external":{"class":"VLAN","tag":4094,"mtu":1500,"interfaces":[{"name":"1.1","tagged":false}]},"external-self":{"class":"SelfIp","address":"10.0.0.11/24","vlan":"external","allowService":["tcp:443","udp:1026","tcp:4353","tcp:6123","tcp:6124","tcp:6125","tcp:6126","tcp:6127","tcp:6128"],"trafficGroup":"traffic-gr[2025-07-14T09:34:40.899796]oup-local-only"},"internal":{"class":"VLAN","interfaces":[{"name":"1.2","tagged":false}],"mtu":1500,"tag":4093},"internal-self":{"class":"SelfIp","address":"10.0.2.11/24","allowService":"none","trafficGroup":"traffic-group-local-only","vlan":"internal"},"default":{"class":"Route","gw":"10.0.0.1","network":"default","mtu":1500,"localOnly":true}}}
2025-07-14T09:35:01.150Z [9154]: info: Creating - cf 2.1.2 {"schemaVersion":"1.0.0","class":"Cloud_Failover","environment":"aws","controls":{"class":"Controls","logLevel":"silly"},"externalStorage":{"encryption":{"serverSide":{"enabled":true,"algorithm":"AES256"}},"scopingTags":{"f5_cloud_failover_label":"bigip_high_availability_solution"}},"failoverAddresses":{"enabled":true,"scopingTags":{"f5_cloud_failover_label":"bigip_high_availability_solution"},"requireScopingTags":false}}
2025-07-14T09:35:09.409Z [9154]: info: Creating - do 1.44.0 {"schemaVersion":"1.0.0","class":"Device","async":true,"label":"Failover 3NIC BIG-IP declaration for Declarative Onboarding with PAYG license","Common":{"class":"Tenant","My_DbVariables":{"class":"DbVariables","config.allow.rfc3927":"enable","tm.tcpudptxchecksum":"Software-only"},"My_Ntp":{"class":"NTP","servers":["0.pool.ntp.org","1.pool.ntp.org"],"timezone":"UTC"},"My_Dns":{"class":"DNS","nameServers":["169.254.169.253"],"search":["f5.com"]},"My_System":{"autoPhonehome":true,"class":"System","hostname":"failover01.www.non-97.net"},"admin":{"class":"User","userType":"regular","password":"********","shell":"bash"},"external":{"class":"VLAN","tag":4094,"mtu":1500,"interfaces":[{"name":"1.1","tagged":false}]},"external-self":{"class":"SelfIp","address":"10.0.0.11/24","vlan":"external","allowService":["tcp:443","udp:1026","tcp:4353","tcp:6123","tcp:6124","tcp:6125","tcp:6126","tcp:6127","tcp:6128"],"trafficGroup":"traffic-gr[2025-07-14T09:35:09.500088]oup-local-only"},"internal":{"class":"VLAN","interfaces":[{"name":"1.2","tagged":false}],"mtu":1500,"tag":4093},"internal-self":{"class":"SelfIp","address":"10.0.2.11/24","allowService":"none","trafficGroup":"traffic-group-local-only","vlan":"internal"},"default":{"class":"Route","gw":"10.0.0.1","network":"default","mtu":1500,"localOnly":true},"configSync":{"class":"ConfigSync","configsyncIp":"/Common/external-self/address"},"failoverAddress":{"class":"FailoverUnicast","address":"/Common/external-self/address"},"failoverGroup":{"class":"DeviceGroup","type":"sync-failover","members":["failover01.www.non-97.net","failover02.www.non-97.net"],"owner":"/Common/failoverGroup/members/0","autoSync":true,"saveOnAutoSync":false,"networkFailover":true,"fullLoadOnSync":false,"asmSync":false},"trust":{"class":"DeviceTrust","localUsername":"admin","localPassword":"********","remoteHost":"/Common/failoverGroup/members/0","remoteUsername":"admin","remotePassword":"********"}}}
2025-07-14T09:35:29.698Z [9154]: info: All operations finished successfully
+ [[ 0 -eq 0 ]]
+ /opt/aws/bin/cfn-signal -e 0 --stack BigIp-Failover-Existing-Network-Example-BigIpInstance01-W7OZT3OX0QYW --resource Bigip3NicInstance --region us-east-1
++ date +%Y-%m-%dT%H:%M:%S.%3NZ
+ echo '2025-07-14T09:36:00.870Z : Startup Script Finish'
2025-07-14T09:36:00.870Z : Startup Script Finish
+ rm -f /tmp/6263.tmp
cf 2.1.2
とあることから、BIG-IPのCloud Failoverの拡張機能も一緒にインストールしてくれていそうですね。
しばらくするとStackのデプロイが完了しました。全体で10分程度であればサクッと検証するときにありがたいですね。
実行時間が長いBigIpInstance01のStackを覗くと、BIG-IPのインスタンスを作成するのに6分ほどかかっていたことが分かります。
Stackから出力された値は以下のとおりです。
EC2インスタンスとENI、EIPのタグの確認
BIG-IPがAWSをはじめとするクラウド上でフェイルオーバーする際に使用する拡張機能Cloud Failoverでは、タグを使って制御をします。
どのようなタグが付与されているのか確認しましょう。
まずはEC2インスタンスです。
EC2インスタンスではHAクラスターのピアとなるインスタンスのIPアドレスやホスト名といった情報を保持していることが分かります。また、VIPを紐づけるプライベートIPアドレスの情報vip1Addr
もありますね。
> aws ec2 describe-instances \
--filters "Name=tag:Name,Values=myuniqstr*" \
--output json | jq -r '
["InstanceId", "TagKey", "TagValue"],
(.Reservations[].Instances[] |
. as $instance |
(.Tags | sort_by(.Key)[] |
[$instance.InstanceId, .Key, .Value])) |
@tsv' | column -t
InstanceId TagKey TagValue
i-03ab50d0e593d8887 Name myuniqstr-bigip-vm-01
i-03ab50d0e593d8887 application f5app
i-03ab50d0e593d8887 aws:cloudformation:logical-id Bigip3NicInstance
i-03ab50d0e593d8887 aws:cloudformation:stack-id arn:aws:cloudformation:us-east-1:<AWSアカウントID>:stack/BigIp-Failover-Existing-Network-Example-BigIpInstance01-W7OZT3OX0QYW/201dc1a0-6095-11f0-af79-0affdb4011df
i-03ab50d0e593d8887 aws:cloudformation:stack-name BigIp-Failover-Existing-Network-Example-BigIpInstance01-W7OZT3OX0QYW
i-03ab50d0e593d8887 aws:ec2launchtemplate:id lt-03fa4edfd85b7d08e
i-03ab50d0e593d8887 aws:ec2launchtemplate:version 1
i-03ab50d0e593d8887 bigIpPeerAddr 10.0.1.11
i-03ab50d0e593d8887 bigIpPeerHostname failover02.www.non-97.net
i-03ab50d0e593d8887 costcenter f5cost
i-03ab50d0e593d8887 environment f5env
i-03ab50d0e593d8887 failoverTag bigip_high_availability_solution
i-03ab50d0e593d8887 group f5group
i-03ab50d0e593d8887 hostname failover01.www.non-97.net
i-03ab50d0e593d8887 owner f5owner
i-03ab50d0e593d8887 vip1Addr 10.0.0.101
i-03ab50d0e593d8887 vip2Addr NOT_USED
i-03ab50d0e593d8887 vip3Addr NOT_USED
i-03ab50d0e593d8887 vip4Addr NOT_USED
i-08def11c0268f8fbd Name myuniqstr-bigip-vm-02
i-08def11c0268f8fbd application f5app
i-08def11c0268f8fbd aws:cloudformation:logical-id Bigip3NicInstance
i-08def11c0268f8fbd aws:cloudformation:stack-id arn:aws:cloudformation:us-east-1:<AWSアカウントID>:stack/BigIp-Failover-Existing-Network-Example-BigIpInstance02-OUCGW9TMOA7T/201eac00-6095-11f0-99b5-0e906b73ee85
i-08def11c0268f8fbd aws:cloudformation:stack-name BigIp-Failover-Existing-Network-Example-BigIpInstance02-OUCGW9TMOA7T
i-08def11c0268f8fbd aws:ec2launchtemplate:id lt-0301dfeae0830f8da
i-08def11c0268f8fbd aws:ec2launchtemplate:version 1
i-08def11c0268f8fbd bigIpPeerAddr 10.0.1.11
i-08def11c0268f8fbd bigIpPeerHostname failover01.www.non-97.net
i-08def11c0268f8fbd costcenter f5cost
i-08def11c0268f8fbd environment f5env
i-08def11c0268f8fbd failoverTag bigip_high_availability_solution
i-08def11c0268f8fbd group f5group
i-08def11c0268f8fbd hostname failover02.www.non-97.net
i-08def11c0268f8fbd owner f5owner
i-08def11c0268f8fbd vip1Addr 10.0.4.101
i-08def11c0268f8fbd vip2Addr NOT_USED
i-08def11c0268f8fbd vip3Addr NOT_USED
i-08def11c0268f8fbd vip4Addr NOT_USED
次にENIです。
管理用のENI以外はf5_cloud_failover_label
やf5_cloud_failover_nic_map
が設定されていることが分かります。
> aws ec2 describe-network-interfaces \
--filters "Name=tag:Name,Values=myuniqstr*" \
--output json | jq -r '
["NetworkInterfaceId", "TagKey", "TagValue"],
(.NetworkInterfaces[] |
. as $eni |
(.TagSet | sort_by(.Key)[] |
[$eni.NetworkInterfaceId, .Key, .Value])) |
@tsv' | column -t
NetworkInterfaceId TagKey TagValue
eni-0ad274756355a02b3 Name myuniqstr-bigip-static-external-int-02
eni-0ad274756355a02b3 application f5app
eni-0ad274756355a02b3 aws:cloudformation:logical-id BigipStaticExternalInterface
eni-0ad274756355a02b3 aws:cloudformation:stack-id arn:aws:cloudformation:us-east-1:<AWSアカウントID>:stack/BigIp-Failover-Existing-Network-Example-BigIpInstance02-OUCGW9TMOA7T/201eac00-6095-11f0-99b5-0e906b73ee85
eni-0ad274756355a02b3 aws:cloudformation:stack-name BigIp-Failover-Existing-Network-Example-BigIpInstance02-OUCGW9TMOA7T
eni-0ad274756355a02b3 costcenter f5cost
eni-0ad274756355a02b3 environment f5env
eni-0ad274756355a02b3 f5_cloud_failover_label bigip_high_availability_solution
eni-0ad274756355a02b3 f5_cloud_failover_nic_map external
eni-0ad274756355a02b3 group f5group
eni-0ad274756355a02b3 owner f5owner
eni-03790053af14b8e72 Name myuniqstr-bigip-static-mgmt-int-02
eni-03790053af14b8e72 application f5app
eni-03790053af14b8e72 aws:cloudformation:logical-id BigipStaticManagementInterface
eni-03790053af14b8e72 aws:cloudformation:stack-id arn:aws:cloudformation:us-east-1:<AWSアカウントID>:stack/BigIp-Failover-Existing-Network-Example-BigIpInstance02-OUCGW9TMOA7T/201eac00-6095-11f0-99b5-0e906b73ee85
eni-03790053af14b8e72 aws:cloudformation:stack-name BigIp-Failover-Existing-Network-Example-BigIpInstance02-OUCGW9TMOA7T
eni-03790053af14b8e72 costcenter f5cost
eni-03790053af14b8e72 environment f5env
eni-03790053af14b8e72 group f5group
eni-03790053af14b8e72 owner f5owner
eni-05e3409db92210a8d Name myuniqstr-bigip-static-internal-int-02
eni-05e3409db92210a8d application f5app
eni-05e3409db92210a8d aws:cloudformation:logical-id BigipStaticInternalInterface
eni-05e3409db92210a8d aws:cloudformation:stack-id arn:aws:cloudformation:us-east-1:<AWSアカウントID>:stack/BigIp-Failover-Existing-Network-Example-BigIpInstance02-OUCGW9TMOA7T/201eac00-6095-11f0-99b5-0e906b73ee85
eni-05e3409db92210a8d aws:cloudformation:stack-name BigIp-Failover-Existing-Network-Example-BigIpInstance02-OUCGW9TMOA7T
eni-05e3409db92210a8d costcenter f5cost
eni-05e3409db92210a8d environment f5env
eni-05e3409db92210a8d f5_cloud_failover_label bigip_high_availability_solution
eni-05e3409db92210a8d f5_cloud_failover_nic_map internal
eni-05e3409db92210a8d group f5group
eni-05e3409db92210a8d owner f5owner
eni-088673926ad09017f Name myuniqstr-bigip-static-internal-int-01
eni-088673926ad09017f application f5app
eni-088673926ad09017f aws:cloudformation:logical-id BigipStaticInternalInterface
eni-088673926ad09017f aws:cloudformation:stack-id arn:aws:cloudformation:us-east-1:<AWSアカウントID>:stack/BigIp-Failover-Existing-Network-Example-BigIpInstance01-W7OZT3OX0QYW/201dc1a0-6095-11f0-af79-0affdb4011df
eni-088673926ad09017f aws:cloudformation:stack-name BigIp-Failover-Existing-Network-Example-BigIpInstance01-W7OZT3OX0QYW
eni-088673926ad09017f costcenter f5cost
eni-088673926ad09017f environment f5env
eni-088673926ad09017f f5_cloud_failover_label bigip_high_availability_solution
eni-088673926ad09017f f5_cloud_failover_nic_map internal
eni-088673926ad09017f group f5group
eni-088673926ad09017f owner f5owner
eni-0089909d46aae6c03 Name myuniqstr-bigip-static-external-int-01
eni-0089909d46aae6c03 application f5app
eni-0089909d46aae6c03 aws:cloudformation:logical-id BigipStaticExternalInterface
eni-0089909d46aae6c03 aws:cloudformation:stack-id arn:aws:cloudformation:us-east-1:<AWSアカウントID>:stack/BigIp-Failover-Existing-Network-Example-BigIpInstance01-W7OZT3OX0QYW/201dc1a0-6095-11f0-af79-0affdb4011df
eni-0089909d46aae6c03 aws:cloudformation:stack-name BigIp-Failover-Existing-Network-Example-BigIpInstance01-W7OZT3OX0QYW
eni-0089909d46aae6c03 costcenter f5cost
eni-0089909d46aae6c03 environment f5env
eni-0089909d46aae6c03 f5_cloud_failover_label bigip_high_availability_solution
eni-0089909d46aae6c03 f5_cloud_failover_nic_map external
eni-0089909d46aae6c03 group f5group
eni-0089909d46aae6c03 owner f5owner
eni-0646bd7fd390afb8d Name myuniqstr-bigip-static-mgmt-int-01
eni-0646bd7fd390afb8d application f5app
eni-0646bd7fd390afb8d aws:cloudformation:logical-id BigipStaticManagementInterface
eni-0646bd7fd390afb8d aws:cloudformation:stack-id arn:aws:cloudformation:us-east-1:<AWSアカウントID>:stack/BigIp-Failover-Existing-Network-Example-BigIpInstance01-W7OZT3OX0QYW/201dc1a0-6095-11f0-af79-0affdb4011df
eni-0646bd7fd390afb8d aws:cloudformation:stack-name BigIp-Failover-Existing-Network-Example-BigIpInstance01-W7OZT3OX0QYW
eni-0646bd7fd390afb8d costcenter f5cost
eni-0646bd7fd390afb8d environment f5env
eni-0646bd7fd390afb8d group f5group
eni-0646bd7fd390afb8d owner f5owner
最後にEIPです。
VIP用のEIPであるmyuniqstr-bigip-external-eip-03のみ、f5_cloud_failover_label
とf5_cloud_failover_vips
が設定されていますね。
> aws ec2 describe-addresses \
--filters "Name=tag:Name,Values=myuniqstr*" \
--output json | jq -r '
["AllocationId", "TagKey", "TagValue"],
(.Addresses[] |
. as $eip |
(.Tags | sort_by(.Key)[] |
[$eip.AllocationId, .Key, .Value])) |
@tsv' | column -t
AllocationId TagKey TagValue
eipalloc-058551cc0f2de8204 Name myuniqstr-bigip-external-eip-03
eipalloc-058551cc0f2de8204 application f5app
eipalloc-058551cc0f2de8204 aws:cloudformation:logical-id BigipExternalEipAddress03
eipalloc-058551cc0f2de8204 aws:cloudformation:stack-id arn:aws:cloudformation:us-east-1:<AWSアカウントID>:stack/BigIp-Failover-Existing-Network-Example-Dag-25LWX211ZSDL/b2aa0ac0-6094-11f0-b044-0efa85c79d6d
eipalloc-058551cc0f2de8204 aws:cloudformation:stack-name BigIp-Failover-Existing-Network-Example-Dag-25LWX211ZSDL
eipalloc-058551cc0f2de8204 costcenter f5cost
eipalloc-058551cc0f2de8204 environment f5env
eipalloc-058551cc0f2de8204 f5_cloud_failover_label bigip_high_availability_solution
eipalloc-058551cc0f2de8204 f5_cloud_failover_vips 10.0.0.101,10.0.4.101
eipalloc-058551cc0f2de8204 group f5group
eipalloc-058551cc0f2de8204 owner f5owner
eipalloc-079b643ec1c5b071f Name myuniqstr-bigip-management-eip-02
eipalloc-079b643ec1c5b071f application f5app
eipalloc-079b643ec1c5b071f aws:cloudformation:logical-id BigipManagementEipAddress02
eipalloc-079b643ec1c5b071f aws:cloudformation:stack-id arn:aws:cloudformation:us-east-1:<AWSアカウントID>:stack/BigIp-Failover-Existing-Network-Example-Dag-25LWX211ZSDL/b2aa0ac0-6094-11f0-b044-0efa85c79d6d
eipalloc-079b643ec1c5b071f aws:cloudformation:stack-name BigIp-Failover-Existing-Network-Example-Dag-25LWX211ZSDL
eipalloc-079b643ec1c5b071f costcenter f5cost
eipalloc-079b643ec1c5b071f environment f5env
eipalloc-079b643ec1c5b071f group f5group
eipalloc-079b643ec1c5b071f owner f5owner
eipalloc-07f2d046d905f2788 Name myuniqstr-bigip-management-eip-01
eipalloc-07f2d046d905f2788 application f5app
eipalloc-07f2d046d905f2788 aws:cloudformation:logical-id BigipManagementEipAddress01
eipalloc-07f2d046d905f2788 aws:cloudformation:stack-id arn:aws:cloudformation:us-east-1:<AWSアカウントID>:stack/BigIp-Failover-Existing-Network-Example-Dag-25LWX211ZSDL/b2aa0ac0-6094-11f0-b044-0efa85c79d6d
eipalloc-07f2d046d905f2788 aws:cloudformation:stack-name BigIp-Failover-Existing-Network-Example-Dag-25LWX211ZSDL
eipalloc-07f2d046d905f2788 costcenter f5cost
eipalloc-07f2d046d905f2788 environment f5env
eipalloc-07f2d046d905f2788 group f5group
eipalloc-07f2d046d905f2788 owner f5owner
eipalloc-072223ccd79ae84ff Name myuniqstr-bigip-external-eip-01
eipalloc-072223ccd79ae84ff application f5app
eipalloc-072223ccd79ae84ff aws:cloudformation:logical-id BigipExternalEipAddress01
eipalloc-072223ccd79ae84ff aws:cloudformation:stack-id arn:aws:cloudformation:us-east-1:<AWSアカウントID>:stack/BigIp-Failover-Existing-Network-Example-Dag-25LWX211ZSDL/b2aa0ac0-6094-11f0-b044-0efa85c79d6d
eipalloc-072223ccd79ae84ff aws:cloudformation:stack-name BigIp-Failover-Existing-Network-Example-Dag-25LWX211ZSDL
eipalloc-072223ccd79ae84ff costcenter f5cost
eipalloc-072223ccd79ae84ff environment f5env
eipalloc-072223ccd79ae84ff group f5group
eipalloc-072223ccd79ae84ff owner f5owner
eipalloc-0a3299fe8dabc48fb Name myuniqstr-bigip-external-eip-02
eipalloc-0a3299fe8dabc48fb application f5app
eipalloc-0a3299fe8dabc48fb aws:cloudformation:logical-id BigipExternalEipAddress02
eipalloc-0a3299fe8dabc48fb aws:cloudformation:stack-id arn:aws:cloudformation:us-east-1:<AWSアカウントID>:stack/BigIp-Failover-Existing-Network-Example-Dag-25LWX211ZSDL/b2aa0ac0-6094-11f0-b044-0efa85c79d6d
eipalloc-0a3299fe8dabc48fb aws:cloudformation:stack-name BigIp-Failover-Existing-Network-Example-Dag-25LWX211ZSDL
eipalloc-0a3299fe8dabc48fb costcenter f5cost
eipalloc-0a3299fe8dabc48fb environment f5env
eipalloc-0a3299fe8dabc48fb group f5group
eipalloc-0a3299fe8dabc48fb owner f5owner
デプロイ後のBIG-IPの確認
BIG-IPへの接続
BIG-IPへ接続をしてみましょう。
認証情報はSecrets Managerに保存されているので、取得しておきます。
ブラウザからmyuniqstr-bigip-vm-01の管理用IPアドレスを叩いてアクセスします。
ログイン画面が表示されましたね。Usernameにadmin
をPasswordには先ほど取得した認証情報を入力してログインします。
すると、正常にログインが完了しました。
どちらがActive/Standbyなのかの確認
BIG-IPのコンソールから色々確認したいのは山々ですが、BIG-IPの管理コンソールの左上を確認するとONLINE (STANDBY)
となっていました。
Traffice Groupsを確認すると、Active Deviceがfailover02.wwww.non-97.net
とmyuniqstr-bigip-vm-02の方となっています。
先ほどEC2のコンソールから確認した際はVIP用のEIPが破り当たっていたのですが、フェイルオーバーしたのでしょうか。
EC2のコンソールから確認すると、確かにVIPのEIPであるmyuniqstr-bigip-external-eip-03
がmyuniqstr-bigip-vm-02に割り当てられていました。
一方、myuniqstr-bigip-vm-01は割り当てられているEIPが先ほど確認した時から一つ減っていますね。
ということで、デプロイ完了までの間にフェイルオーバーが発生したようです。
フェイルオーバー時にはS3バケットにオブジェクトが書き込まれます。
バケットを確認すると、f5cloudfailoverstate.json
が出力されていました。
こちらのオブジェクトの中身は以下のとおりです。
{
"taskState": "SUCCEEDED",
"message": "Failover Complete",
"timestamp": "2025-07-14T09:35:52.746Z",
"instance": "failover02.www.non-97.net",
"failoverOperations": {
"addresses": {
"publicAddresses": {
"3.214.127.249": {
"current": {
"PrivateIpAddress": "10.0.0.101",
"AssociationId": "eipassoc-05a7360aea1028e17"
},
"target": {
"PrivateIpAddress": "10.0.4.101",
"NetworkInterfaceId": "eni-0ad274756355a02b3"
},
"AllocationId": "eipalloc-058551cc0f2de8204"
}
},
"interfaces": {
"disassociate": [
{
"networkInterfaceId": "eni-0089909d46aae6c03",
"addresses": []
},
{
"networkInterfaceId": "eni-088673926ad09017f",
"addresses": []
}
],
"associate": [
{
"networkInterfaceId": "eni-0ad274756355a02b3",
"addresses": []
},
{
"networkInterfaceId": "eni-05e3409db92210a8d",
"addresses": []
}
]
},
"loadBalancerAddresses": {}
},
"routes": {}
}
}
各種情報の確認
各種情報を確認しておきます。
Self IPs
VLAN List
Route (Common)
Route (LOCAL_ONLY)
Package Management LX
Cloud Failover Extentionの情報確認
Cloud Failover Extention(以降CFE)の設定はREST APIを用いて行います。
設定方法は以下GitHubリポジトリやF5公式ドキュメントが参考になります。
REST APIでCFEのバージョンを確認します。
> curl \
-sku admin:$admin_password \
-X GET https://34.200.100.3/mgmt/shared/cloud-failover/info \
| jq .
{
"version": "2.1.2",
"release": "2",
"schemaCurrent": "2.1.2",
"schemaMinimum": "0.9.1"
}
現在のCFEの定義を確認します。
> curl \
-sku admin:$admin_password \
-X GET https://34.200.100.3/mgmt/shared/cloud-failover/declare \
| jq .
{
"message": "success",
"declaration": {
"schemaVersion": "1.0.0",
"class": "Cloud_Failover",
"environment": "aws",
"controls": {
"class": "Controls",
"logLevel": "silly"
},
"externalStorage": {
"encryption": {
"serverSide": {
"enabled": true,
"algorithm": "AES256"
}
},
"scopingTags": {
"f5_cloud_failover_label": "bigip_high_availability_solution"
}
},
"failoverAddresses": {
"enabled": true,
"scopingTags": {
"f5_cloud_failover_label": "bigip_high_availability_solution"
},
"requireScopingTags": false
}
}
}
フェイルオーバーの確認
Active側のEC2インスタンスを停止させて、フェイルオーバーすることを確認します。
現在Activeなmyuniqstr-bigip-vm-02を停止します。
すると、myuniqstr-bigip-vm-01のBIG-IPのコンソールにて、myuniqstr-bigip-vm-01がActiveに変わったことを確認できました。
S3バケットにはオブジェクトを上書きする形で新規オブジェクトがPUTされていました。
こちらのオブジェクトの中身は以下のとおりです。
{
"taskState": "SUCCEEDED",
"message": "Failover Complete",
"timestamp": "2025-07-14T10:30:30.190Z",
"instance": "failover01.www.non-97.net",
"failoverOperations": {
"addresses": {
"publicAddresses": {
"3.214.127.249": {
"current": {
"PrivateIpAddress": "10.0.4.101",
"AssociationId": "eipassoc-0c596fb4dc5c164ee"
},
"target": {
"PrivateIpAddress": "10.0.0.101",
"NetworkInterfaceId": "eni-0089909d46aae6c03"
},
"AllocationId": "eipalloc-058551cc0f2de8204"
}
},
"interfaces": {
"disassociate": [
{
"networkInterfaceId": "eni-05e3409db92210a8d",
"addresses": []
},
{
"networkInterfaceId": "eni-0ad274756355a02b3",
"addresses": []
}
],
"associate": [
{
"networkInterfaceId": "eni-088673926ad09017f",
"addresses": []
},
{
"networkInterfaceId": "eni-0089909d46aae6c03",
"addresses": []
}
]
},
"loadBalancerAddresses": {}
},
"routes": {}
}
}
JSON Linesで過去のフェイルオーバー情報がどんどん追加されていく形ではなく、最新のフェイルオーバー結果が確認できるようです。
BIG-IPからWebサーバーへのルーティング
Poolの設定
BIG-IPからWebサーバーへのルーティングがされるyおうに設定をしていきます。
まずはターゲットとなるWebサーバーの情報をPoolとして設定します。
2台のWebサーバーをPoolに登録します。
登録が完了すると、以下のようになります。Statusが緑になっていたらOKです。
Virtual Serverの設定
次にVirtual Serverの設定です。
送信先(Delisitnation Address/Mask)にmyuniqstr-bigip-vm-01のVIP用のプライベートIPアドレスを指定し、HTTP通信するように設定します。
Auto MapでSource NATする設定と、先ほど作成したPoolの割り当ても忘れずに行いましょう。
設定が完了すると以下のようになります。
動作確認
動作確認です。
Virtual Serverで指定したIPアドレスに紐づくEIPに繰り返しアクセスをします。
> curl http://3.214.127.249/
big-ip-application1-01
> curl http://3.214.127.249/
big-ip-application1-02
> curl http://3.214.127.249/
big-ip-application1-01
> curl http://3.214.127.249/
big-ip-application1-02
> curl http://3.214.127.249/
big-ip-application1-01
> curl http://3.214.127.249/
big-ip-application1-02
綺麗に交互にターゲットとなるWebサーバーにアクセスしていることがわかりますね。
各Webサーバーの/var/log/nginx/access.log
を確認すると、以下のようにヘルスチェック含めたアクセス時のログが記録されていました。
10.0.4.11 - - [15/Jul/2025:10:18:32 +0000] "GET /" 200 23 "-" "-" "-"
10.0.0.11 - - [15/Jul/2025:10:18:36 +0000] "GET / HTTP/1.1" 200 23 "-" "curl/8.14.1" "-"
10.0.0.11 - - [15/Jul/2025:10:18:36 +0000] "GET / HTTP/1.1" 200 23 "-" "curl/8.14.1" "-"
10.0.0.11 - - [15/Jul/2025:10:18:37 +0000] "GET /" 200 23 "-" "-" "-"
10.0.0.11 - - [15/Jul/2025:10:18:34 +0000] "GET / HTTP/1.1" 200 23 "-" "curl/8.14.1" "-"
10.0.0.11 - - [15/Jul/2025:10:18:35 +0000] "GET /" 200 23 "-" "-" "-"
10.0.4.11 - - [15/Jul/2025:10:18:35 +0000] "GET /" 200 23 "-" "-" "-"
10.0.0.11 - - [15/Jul/2025:10:18:37 +0000] "GET / HTTP/1.1" 200 23 "-" "curl/8.14.1" "-"
フェイルオーバーの動作確認
フェイルオーバーさせた際に、継続してWebサーバーにトラフィックを流すことができるか確認をします。
フェイルオーバーしてからどのぐらいの時間で正常にアクセスできるようになるか把握するために、継続して0.1秒間隔でアクセスしておきます。
$ while true; do
start_time=$(date +%s.%N)
response=$(curl -s --max-time 5 "http://3.214.127.249/index.html")
end_time=$(date +%s.%N)
elapsed=$(echo "$end_time - $start_time" | bc)
echo "$response | Response time: ${elapsed}s"
sleep 0.1
done
big-ip-application1-02 | Response time: .427902000s
big-ip-application1-01 | Response time: .419772000s
big-ip-application1-02 | Response time: .440274000s
big-ip-application1-01 | Response time: .401486000s
現在のDevice Managementの概要は以下のようになっています。
traffice-group1
を選択して、Force to Standby
をクリックします。
ターゲットがmyuniqstr-bigip-vm-02である、failover02.www.non-97.netであることを確認して、Force to Standby
をクリックします。
myuniqstr-bigip-vm-01がSTANDBYに変わりましたね。
この時のアクセス状況を確認すると、フェイルオーバーして以降、常にタイムアウトするようになりました。
.
.
(中略)
.
.
big-ip-application1-02 | Response time: .459294000s
big-ip-application1-01 | Response time: .548505000s
| Response time: 5.059013000s
| Response time: 5.087040000s
| Response time: 5.042120000s
| Response time: 5.056636000s
.
.
(以下略)
.
.
これはVirtual ServerのDestination AddressでしたIPアドレスがmyuniqstr-bigip-vm-01であり、フェイルオーバー先のmyuniqstr-bigip-vm-02のIPアドレスの設定が存在していないためです。
Virtual Serverの追加してフェイルオーバー
myuniqstr-bigip-vm-02用のVirtual Serverを追加しましょう。
Virtual Serverはそれぞれに作成が必要なことは以下ドキュメントにも記載があります。
Creating virtual servers on the BIG-IP VE
In order to pass traffic from your clients to the servers through the BIG-IP system, you must create at least two virtual servers on the BIG-IP VE using Traffic Group None using the following guidance. For AWS Across AZ templates, Traffic Group None must be on virtual addresses because by doing so the IP address (node) will not be synced between systems. AWS availability zones use separate subnets, so the virtual address (node) from system A on subnet A can not be synced over to system B using subnet B.
送信先(Delisitnation Address/Mask)にmyuniqstr-bigip-vm-02のVIP用のプライベートIPアドレスを指定し、HTTP通信するように設定します。他設定は先ほど作成したVirtual Serverと同じです。
作成が完了すると、以下のようになります。
Virtual Address Listは以下のようにtraffice-group-1
に2つあります。
CFE 1.9.0からはTraffic Groupをnone
にする必要はなくなったようなので、このままにします。
Why does the AWS failover diagram show that VIPs must be in traffic group ‘none’?¶
Beginning with CFE version 1.9.0., Virtual Addresses or services are no longer required to be in Traffic Group None and can be placed in Traffic Group 1.
Failover Objectにも含まれています。
この状態でフェイルオーバーの実施をします。
フェイルオーバーが完了しました。
この状態のログは以下のとおりです。
big-ip-application1-01 | Response time: .433065000s
big-ip-application1-01 | Response time: .421041000s
big-ip-application1-02 | Response time: .434683000s
| Response time: 5.073367000s
| Response time: 5.035714000s
| Response time: 5.054354000s
| Response time: 5.052302000s
| Response time: 5.062752000s
| Response time: 5.048661000s
| Response time: 5.059695000s
| Response time: 5.075163000s
| Response time: 5.054327000s
| Response time: 5.045204000s
| Response time: 5.056317000s
| Response time: 5.028236000s
| Response time: 5.047157000s
| Response time: 5.034971000s
big-ip-application1-01 | Response time: .421672000s
big-ip-application1-02 | Response time: .410290000s
big-ip-application1-01 | Response time: .420178000s
big-ip-application1-02 | Response time: .444149000s
フェイルオーバーしてから70秒ほど時間がかかりましたが、正常にアクセスできるようになりました。
Virtual AddressのTraffice Groupをnoneにしてフェイルオーバー
再度アクセスできるようになるまでの時間が気になります。
Virtual AddressのTraffice Groupをnone
に変更すると短くなるとかはあるのでしょうか。
試しにTraffic Groupをnone
に変更します。
フェイルオーバーを実施します。
正常に完了しました。
この時のログは以下のとおりです。
big-ip-application1-02 | Response time: .425742000s
big-ip-application1-01 | Response time: .429473000s
big-ip-application1-02 | Response time: 2.510334000s
big-ip-application1-01 | Response time: .458162000s
big-ip-application1-02 | Response time: .463644000s
big-ip-application1-02 | Response time: .451312000s
big-ip-application1-01 | Response time: .437285000s
フェイルオーバーしたタイミングで若干レスポンスまでの時間がかかりましたが、長時間のタイムアウトは発生していません。
たまたまなのか確認するために、Active側のBIG-IPのEC2インスタンスを停止します。
この時のログは以下のとおりです。
big-ip-application1-02 | Response time: .443596000s
big-ip-application1-01 | Response time: .427521000s
big-ip-application1-01 | Response time: .441297000s
big-ip-application1-02 | Response time: .413048000s
| Response time: 5.075821000s
| Response time: 5.044694000s
| Response time: 5.117505000s
big-ip-application1-02 | Response time: .447297000s
big-ip-application1-01 | Response time: .431422000s
big-ip-application1-01 | Response time: .435992000s
big-ip-application1-02 | Response time: .479641000s
big-ip-application1-02 | Response time: .459194000s
big-ip-application1-01 | Response time: .413107000s
big-ip-application1-02 | Response time: .454627000s
big-ip-application1-01 | Response time: .433499000s
| Response time: 5.060413000s
| Response time: 5.054609000s
| Response time: 5.059049000s
| Response time: 5.062327000s
| Response time: 5.040400000s
| Response time: 5.051898000s
| Response time: 5.026227000s
| Response time: 5.037674000s
| Response time: 5.045993000s
| Response time: 5.043089000s
| Response time: 5.061504000s
| Response time: 5.054754000s
| Response time: 5.057101000s
| Response time: 5.053960000s
| Response time: 5.059544000s
big-ip-application1-02 | Response time: .470164000s
big-ip-application1-01 | Response time: .445178000s
big-ip-application1-01 | Response time: .457716000s
big-ip-application1-02 | Response time: .476356000s
ちょっと不安定ですね。
もう一回試しましたが、同様にフェイルオーバー時の70秒ほどのダウンタイムが発生しました。
big-ip-application1-02 | Response time: .440192000s
big-ip-application1-01 | Response time: .447113000s
big-ip-application1-02 | Response time: .409286000s
big-ip-application1-01 | Response time: .432804000s
| Response time: 5.085381000s
| Response time: 5.041491000s
| Response time: 5.045862000s
| Response time: 5.048321000s
| Response time: 5.040426000s
| Response time: 5.078177000s
| Response time: 5.042123000s
| Response time: 5.047472000s
| Response time: 5.065415000s
| Response time: 5.064538000s
| Response time: 5.060548000s
| Response time: 5.047607000s
| Response time: 5.051801000s
| Response time: 5.073236000s
big-ip-application1-01 | Response time: .410263000s
big-ip-application1-01 | Response time: .400852000s
big-ip-application1-02 | Response time: .420805000s
big-ip-application1-01 | Response time: .477084000s
ALB/NLBで対応できない要件があるときに
BIG-IPのMulti-AZ HAクラスターをCloudFormationで作成してみました。
ALB/NLBで対応できない要件があるときに使えそうですね。
とはいえ、まずは要件の調整を努力しましょう。マネージドサービスと比較すると仮想アプライアンスはどうしても運用コストが膨らみがちです。
この記事が誰かの助けになれば幸いです。
以上、クラウド事業本部 コンサルティング部の のんピ(@non____97)でした!