###################################################################### # All Rights Reserved, Copyright FUJITSU LIMITED 2015-2018 # # API実行サンプル名: # 05-011_ロードバランサー設定変更【アイドルタイムアウト値設定変更】 # # 内容: # 作成したロードバランサーのフロントエンドとバックエンドへのコネク # ションをアイドル状態で維持する期間を変更する手順です。 # # 版数:v1.1 # 更新日:2017/12/04 ###################################################################### 手順: ─────────────────────────────────── 項番1.ロードバランサー確認 項番2.ロードバランサーのアイドルタイムアウト値設定確認 項番3.ロードバランサーのアイドルタイムアウト値設定変更 項番4.ロードバランサーのアイドルタイムアウト値設定確認 ─────────────────────────────────── 事前準備: あらかじめ以下を準備する必要があります。 ─────────────────────────────────── ・ロードバランサー ─────────────────────────────────── 項番1.ロードバランサー確認 アイドルタイムアウト値を変更するロードバランサーの状態を確認します。 「"State": "InService"」となっていることを確認してください。 API実行コマンド例: ====================================================================== curl -Ss "$LB/?Action=DescribeLoadBalancers" -X GET -H "Content-Type: application/json" -H "Accept: application/json" -H "X-Auth-Token: $OS_AUTH_TOKEN" | jq . レスポンス例: ====================================================================== { "DescribeLoadBalancersResponse": { "ResponseMetadata": { "requestId": "5e2fbab9-29fe-4822-9d78-804d8aebf2d3" }, "DescribeLoadBalancersResult": { "LoadBalancerDescriptions": { "member": [ { "Grade": "Standard", "Scheme": "internal", "CreatedTime": "2017-09-11T07:49:57.000Z", "SecurityGroups": [ { "member": "a69fa1a1-01e9-4eca-a497-41a9f312t381" } ], "LoadBalancerName": "TestInternalLB01", "DNSName": "TestInternalLB01-541d1998371c41e291dc65fdabd9ewb4.loadbalancing-jp-west-2.internal.cloud.global.fujitsu.com", "State": "InService", "ListenerDescriptions": { "member": [ { "PolicyNames": [ { "member": "TestLBCookieStickinessPolicy01" } ], "Listener": { "InstancePort": "80", "InstanceProtocol": "http", "LoadBalancerPort": "80", "Protocol": "http" } } ] }, "Policies": { "OtherPolicies": [ { "member": "LBServiceSecurityPolicy-2017-05" } ], "SorryServerRedirectionPolicies": { "member": [ { "Location": "http://192.168.10.11/sorry.html", "PolicyName": "TestSorryPagePolicy01" } ] }, "LBCookieStickinessPolicies": { "member": [ { "CookieExpirationPeriod": "300", "PolicyName": "TestLBCookieStickinessPolicy01" } ] } }, "Subnets": [ { "member": "45b691d0-d20d-46b2-9b02-952d900778d4" } ], "Instances": { "member": [ { "InstanceId": "c543a9d5-839f-49d3-8eb5-0d467eff76r3" } ] }, "HealthCheck": { "HealthyThreshold": "1", "UnhealthyThreshold": "3", "Timeout": "10", "Interval": "30", "Target": "HTTP:80/index.html" } } ] } } } } ====================================================================== 項番2.ロードバランサーのアイドルタイムアウト値設定確認 「項番1」で確認したロードバランサーのアイドルタイムアウト値の設定 状況を確認します。 「"ConnectionSettings":"IdleTimeout"」の値を確認します。 環境定義コマンド例: ====================================================================== # LB_NAME=<アイドルタイムアウト値を確認するロードバランサー名> LB_NAME=TestInternalLB01 API実行コマンド例: ====================================================================== curl -Ss "$LB/?&LoadBalancerName=$LB_NAME&Action=DescribeLoadBalancerAttributes&Version=2014-11-01" -X GET -H "Content-Type: application/json" -H "Accept: application/json" -H "X-Auth-Token: $OS_AUTH_TOKEN" | jq . レスポンス例: ====================================================================== { "DescribeLoadBalancerAttributesResponse": { "ResponseMetadata": { "requestId": "1a89ea67-6732-4db7-a7a5-43bb7a231216" }, "DescribeLoadBalancerAttributesResult": { "LoadBalancerAttributes": { "ConnectionSettings": { "IdleTimeout": "60" } } } } } ====================================================================== 項番3.ロードバランサーのアイドルタイムアウト値設定変更 ロードバランサーのフロントエンドとバックエンドへのコネクションを アイドル状態で維持する期間を変更します。 注意事項: ・負荷分散対象の仮想サーバとの無通信アイドル時間が設定値を 超える場合、ロードバランサーは「応答なし」と判断し、当該 仮想サーバを切り離します。 環境定義コマンド例: ====================================================================== # LB_NAME=<アイドルタイムアウト値を変更するロードバランサー名> LB_NAME=TestInternalLB01 # TIMEOUT=<アイドルタイムアウト値(1-3600(秒)の範囲を指定)> TIMEOUT=120 API実行コマンド例: ====================================================================== curl -Ss "$LB/?LoadBalancerAttributes.ConnectionSettings.IdleTimeout=$TIMEOUT&LoadBalancerName=$LB_NAME&Action=ModifyLoadBalancerAttributes&Version=2014-11-01" -X GET -H "Content-Type: application/json" -H "Accept: application/json" -H "X-Auth-Token: $OS_AUTH_TOKEN" | jq . レスポンス例: ====================================================================== { "ModifyLoadBalancerAttributesResponse": { "ResponseMetadata": { "requestId": "304a65f7-d9d3-4e1a-b9c4-11ba10a1f44d" }, "ModifyLoadBalancerAttributesResult": { "LoadBalancerAttributes": { "ConnectionSettings": { "IdleTimeout": "120" } }, "LoadBalancerName": "TestInternalLB01" } } } ====================================================================== 項番4.ロードバランサーのアイドルタイムアウト値設定確認 設定を変更したロードバランサーのアイドルタイムアウト値を確認します。 「"ConnectionSettings":"IdleTimeout"」に設定されていることを 確認します。 環境定義コマンド例: ====================================================================== # LB_NAME=<アイドルタイムアウト値を確認するロードバランサー名> LB_NAME=TestInternalLB01 API実行コマンド例: ====================================================================== curl -Ss "$LB/?&LoadBalancerName=$LB_NAME&Action=DescribeLoadBalancerAttributes&Version=2014-11-01" -X GET -H "Content-Type: application/json" -H "Accept: application/json" -H "X-Auth-Token: $OS_AUTH_TOKEN" | jq . レスポンス例: ====================================================================== { "DescribeLoadBalancerAttributesResponse": { "ResponseMetadata": { "requestId": "075ccdbf-25d8-48e2-aae7-5ce96dd536c2" }, "DescribeLoadBalancerAttributesResult": { "LoadBalancerAttributes": { "ConnectionSettings": { "IdleTimeout": "120" } } } } } ====================================================================== 変更履歴: ─────────────────────────────────── v1.1版: ・ 「手順」:誤記修正 ─────────────────────────────────── 以上