###################################################################### # All Rights Reserved, Copyright FUJITSU LIMITED 2015-2018 # # API実行サンプル名: # 05-010_ロードバランサー作成【SSL証明書設定】 # # 内容: # SSL証明書設定を行ったロードバランサーを作成する手順です。 # # 版数:v1.0 # 更新日:2017/10/19 ###################################################################### 手順: ─────────────────────────────────── 項番1.ロードバランサー作成【SSL証明書設定】 項番2.ロードバランサー確認 ─────────────────────────────────── 事前準備: あらかじめ以下を準備する必要があります。 ─────────────────────────────────── ・ネットワーク ・サブネット ・セキュリティグループ ・仮想サーバ ・鍵情報 ・鍵情報コンテナ ─────────────────────────────────── 注意事項: ・ロードバランサー作成後にサブネットの「host_routes」を設定した場合、 ロードバランサーにサブネットの「host_routes」の 設定が反映されない ため、ロードバランサーの再作成が必要になります。サブネットの 「host_routes」の 設定が必要な場合には、あらかじめサブネットの 「host_routes」の設定を実施してください。 ・インターネットからのトラフィックを負荷分散する場合、外部ネット ワークに接続されている仮想ルータとサブネットが接続されている必要が あります。 ・SSL証明書設定で使用する鍵情報コンテナについてはAPI実行サンプル 「鍵情報/鍵情報コンテナの登録」を参照してください。 ・ロードバランサーの各パラメータの設定方法についてはAPI実行サンプル 「ロードバランサー作成」を参照してください。 項番1.ロードバランサー作成【SSL証明書設定】 SSL証明書を設定したフロントエンドの通信プロトコルHTTPS(443ポート)、 バックエンドの通信プロトコルがHTTP(80ポート)のロードバランサーを 作成します。 注意事項: ・ロードバランサー名に記号は使用できません。 環境定義コマンド例: ====================================================================== # LB_NAME=<作成するロードバランサー名> LB_NAME=TestSSLInternalLB01 # INPORT=<フロントエンド接続のポート番号> INPORT=443 # INPROTOCOL=<フロントエンド接続のプロトコル> INPROTOCOL=https # OUTPORT=<バックエンド接続のポート番号> OUTPORT=80 # OUTPROTOCOL=<バックエンド接続のプロトコル> OUTPROTOCOL=http # SUBNET_ID=<ロードバランサーが接続するサブネットID> SUBNET_ID=45b691d0-d20d-46b2-9b02-952d900778d4 # SCHEME=<ロードバランサータイプ(「internal」「public」を指定)> SCHEME=internal # GRADE=<グレード(「Standard」「Middle」「High」を指定)> GRADE=Standard # CERTIFICATE_ID=<事前に登録したSSL証明書の鍵情報コンテナID> CERTIFICATE_ID=1964f415-6a5a-4716-bf95-c42bc77t3985 API実行コマンド例: ====================================================================== curl -Ss "$LB/?LoadBalancerName=$LB_NAME&Listeners.member.1.LoadBalancerPort=$INPORT&Listeners.member.1.Protocol=$INPROTOCOL&Listeners.member.1.InstancePort=$OUTPORT&Listeners.member.1.InstanceProtocol=$OUTPROTOCOL&Subnets.member.1=$SUBNET_ID&Scheme=$SCHEME&Grade=$GRADE&Listeners.member.1.SSLCertificateId=$CERTIFICATE_ID&Action=CreateLoadBalancer" -X GET -H "X-Auth-Token:$OS_AUTH_TOKEN" -H "Content-Type:application/json" | jq . レスポンス例: ====================================================================== { "CreateLoadBalancerResponse": { "ResponseMetadata": { "RequestId": "41988c38-a59e-470e-b619-340470ec0c55" }, "CreateLoadBalancerResult": { "DNSName": "TestSSLInternalLB01-541d1998371c41e291dc65fdabd2uef6.loadbalancing-jp-west-2.cloud.global.fujitsu.com" } } } ====================================================================== 項番2.ロードバランサー確認 ロードバランサーが作成されたことを確認します。 「"State": "InService"」となっていることを確認してください。 注意事項: ・環境によって、ステータスが「InService」になるまでに時間が必要と なる場合があります。 ・ステータスが「OutOfService」の場合は、時間を空けてから再度確認 APIを実行し、ステータスを確認してください。 ・ロードバランサーの各パラメータの設定方法についてはAPI実行サンプル 「ロードバランサー作成」を参照してください。 環境定義コマンド例: ====================================================================== # LB_NAME=<作成したロードバランサー名> LB_NAME=TestSSLInternalLB01 API実行コマンド例: ====================================================================== curl -Ss "$LB/?LoadBalancerNames.member.1=$LB_NAME&Action=DescribeLoadBalancers" -X GET -H "Content-Type: application/json" -H "Accept: application/json" -H "X-Auth-Token: $OS_AUTH_TOKEN" | jq . レスポンス例: ====================================================================== { "DescribeLoadBalancersResponse": { "ResponseMetadata": { "requestId": "aee59397-5851-4106-939a-112c6a3f379b" }, "DescribeLoadBalancersResult": { "LoadBalancerDescriptions": { "member": [ { "Grade": "Standard", "Scheme": "internal", "CreatedTime": "2017-09-12T00:14:34.000Z", "LoadBalancerName": "TestSSLInternalLB01", "DNSName": "TestSSLInternalLB01-541d1998371c41e291dc65fdabd2uef6.loadbalancing-jp-west-2.cloud.global.fujitsu.com", "State": "InService", "ListenerDescriptions": { "member": [ { "PolicyNames": [ { "member": "LBServiceSecurityPolicy-2017-05" } ], "Listener": { "SSLCertificateId": "1964f415-6a5a-4716-bf95-c42bc77t3985", "InstancePort": "80", "InstanceProtocol": "http", "LoadBalancerPort": "443", "Protocol": "https" } } ] }, "Policies": { "OtherPolicies": [ { "member": "LBServiceSecurityPolicy-2017-05" } ] }, "Subnets": [ { "member": "45b691d0-d20d-46b2-9b02-952d900778d4" } ], "HealthCheck": { "HealthyThreshold": "10", "UnhealthyThreshold": "2", "Timeout": "5", "Interval": "30", "Target": "http:80/" }, "SecurityGroups": [ { "member": "a69fa1a1-01e9-4eca-a497-41a9f312t381" } ] } ] } } } } ====================================================================== 以上