すべてのプロダクト
Search
ドキュメントセンター

Auto Scaling:スケーリングイベント中にEIPを持つセカンダリENIをECSインスタンスに自動的にアタッチまたはデタッチする

最終更新日:Sep 12, 2024

高可用性クラスターを構築し、低コストのフェールオーバーを実装し、より正確な方法でネットワークを管理し、インターネットアクセスを有効にする場合は、スケールアウトイベント中にセカンダリelastic network Interface (ENI) をElastic Compute Service (ECS) インスタンスに自動的にアタッチできます。 オフピーク時にECSインスタンスをリリースする場合、またはインターネットアクセスを無効にする場合は、ECSインスタンスからのEIPを持つセカンダリENIの自動デタッチを有効にし、スケールインイベント中にセカンダリENIの自動リリースを有効にすることができます。 これは、リソース利用およびコスト効率を改善します。

説明
  • ENIは、仮想プライベートネットワーク (VPC) に存在するECSインスタンスにアタッチできる仮想ネットワークインターフェイスコントローラー (NIC) です。 ENIは、プライマリENIとセカンダリENIのタイプに分類できます。 詳細については、ENIの「概要」をご参照ください。

  • EIPは、独自に購入して所有できるパブリックIPアドレスです。 EIPは、リリースするまで期待どおりのサービスを提供します。 ビジネス要件に基づいて、ECSインスタンスやENIなどのリソースにEIPを関連付けたり、EIPの関連付けを解除したりできます。 詳細については、「Elastic IPアドレス」をご参照ください。

前提条件

  • スケーリンググループが作成され、[有効] 状態になります。 詳細については、「スケーリンググループの管理」をご参照ください。

  • 他のクラウドリソースにアクセスする権限は、CloudOps Orchestration Service (OOS) に付与されます。 詳細については、「RAMを使用してOOSに権限を付与する」をご参照ください。

    1. RAM (Resource Access Management) ロールが作成されます。

      RAMロールの信頼済みサービスはCloudOps Orchestration serviceです。 RAMロールの名前はOOSServiceRoleです。

    2. 必要なポリシーはRAMロールにアタッチされます。

      OOSを使用してタスクを実行する場合、ECS、Auto Scaling、およびEIPリソースが使用されます。 次のシステムポリシーをOOSServiceRoleロールにアタッチする必要があります。

      • AliyunECSFullAccess

      • AliyunESSFullAccess

      • AliyunEIPFullAccess

スケールアウトイベント中にEIPを持つセカンダリENIのECSインスタンスへの自動接続を有効にする

  1. ライフサイクルフックを作成します。

    この例で使用するパラメーター設定を次の表に示します。 次の表に含まれていないパラメーターについては、デフォルト設定を保持します。 詳細については、「ライフサイクルフックの管理」をご参照ください。

    パラメーター

    説明

    名前

    ESSHookForAttachNicWithEipを入力します。

    スケーリングアクティビティ

    [スケールアウトイベント] を選択します。

    タイムアウト期間

    ビジネス要件に基づいてTimeout Periodパラメーターを設定します。 この例では、このパラメーターは300に設定されています。 単位は秒です。

    重要

    タイムアウト期間は、インスタンスに対してカスタム操作を実行できる期間です。 タイムアウト期間がカスタム操作の実行に必要な期間よりも短い場合、操作は失敗する可能性があります。 インスタンスでカスタム操作を実行するために必要な期間を見積もり、見積もりに基づいてタイムアウト期間パラメーターを設定することを推奨します。

    ライフサイクルフックが有効になったときに通知を送信

    [OOSテンプレート] を選択し、次の操作を実行します。

    1. [パブリックテンプレート] を選択します。

    2. [ACS-ESS] を選択して、スケールアウトイベント中にEIPを持つセカンダリENIをECSインスタンスに自動接続できるようにします。

    3. ACS-ESS-LifeCycleCreateNetworkInterfaceAndEipAndAttachToInstanceの横にある [パラメーターの設定] をクリックします。

      この例で使用するパラメーター設定を次に示します。 次のリストに含まれていないパラメーターについては、デフォルト設定を保持します。

      • InternetChargeType: このパラメーターは、PayByBandwidthまたはPayByTrafficに設定できます。 PayByBandwidthは、指定された帯域幅に基づいて課金されることを指定します。 PayByTrafficは、実際のトラフィックに基づいて課金されることを指定します。 この例では、このパラメーターはPayByBandwidthに設定されています。

      • 帯域幅: この例では、このパラメーターは5に設定されています。 5の値は、ピークEIP帯域幅が5 Mbit/sであることを指定します。

      • OOSAssumeRole: この例では、このパラメーターはOOSServiceRoleに設定されています。

  2. スケールアウトイベントをトリガーします。

    この例では、スケールアウトイベントは、スケーリングルールを手動で実行して1つのECSインスタンスをスケーリンググループに追加することによってトリガーされます。 スケジュールタスクまたはイベントトリガータスクを実行して、スケールアウトイベントを自動的にトリガーすることもできます。 詳細については、「スケーリングルールの管理」をご参照ください。

    説明

    スケーリングルールを手動で実行してスケールアウトイベントをトリガーすると、ライフサイクルフック機能が有効になります。 ECSインスタンスを手動でスケーリンググループに追加した場合、ライフサイクルフック機能は有効になりません。

    スケールアウトイベントがトリガーされると、Auto Scalingは1つのECSインスタンスをスケーリンググループに追加します。 ESSHookForAttachNicWithEipライフサイクルフックにより、ECSインスタンスは [保留中の追加] 状態になり、Auto Scalingは、EIPを持つセカンダリENIをECSインスタンスにアタッチするようCloudOps Orchestration Service (OOS) に通知します。

    スケールアウトイベントが失敗した場合、次のエラーが報告されます。 この場合、OOSコンソールに移動して、O&M操作の実行ステータスを表示できます。 詳細については、「 (オプション) OOSテンプレートの実行ステータスの表示」をご参照ください。 instance-rollback

  3. EIPを持つセカンダリENIがECSインスタンスに自動的にアタッチされているかどうかを確認します。

    1. [インスタンス] > [自動作成] を選択し、スケールアウトされたECSインスタンスを見つけます。 次に、[ECSインスタンスID /名前] 列のインスタンスIDをクリックして、インスタンスの詳細ページに移動します。

    2. インスタンスの詳細ページで、[ENI] タブをクリックして、ECSインスタンスにアタッチされているENIを表示します。

      次の図に示すように、EIPを持つENIがECSインスタンスにアタッチされています。自动绑定的辅助ENI

      説明

      ECSインスタンスが作成され、ECSインスタンスにENIがアタッチされていない場合、またはENIにEIPが割り当てられていない場合、OOSコンソールでO&M操作の実行ステータスを確認できます。

  4. (オプション) OOSテンプレートの実行ステータスを表示する

    表示される実行詳細ページで、関連情報を表示できます。 [基本情報] セクションでは、実行IDとステータスを表示できます。 [実行手順と結果] セクションでは、実行の詳細と対応するログを表示できます。 詳細については、「実行の詳細の表示」をご参照ください。

    重要

    実行が失敗した場合は、実行の詳細ページにエラーメッセージが表示されます。

  5. (オプション) セカンダリENIを設定します。

    セカンダリENIがECSインスタンスにバインドされた後、インスタンスによって使用される一部のイメージは、セカンダリENIのIPアドレスを認識せず、セカンダリENIのルートを設定できない場合があります。 この問題が発生した場合、セカンダリENIはインスタンスで期待どおりに使用できません。 詳細については、「セカンダリENIの設定」をご参照ください。

スケールインイベント中にECSインスタンスからEIPを持つセカンダリENIの自動デタッチを有効にする

  1. ライフサイクルフックを作成します。

    この例で使用するパラメーター設定を次の表に示します。 次の表に含まれていないパラメーターについては、デフォルト設定を保持します。 詳細については、「ライフサイクルフックの管理」をご参照ください。

    パラメーター

    説明

    名前

    ESSHookForDeleteNicAndEipを入力します。

    スケーリングアクティビティ

    [スケールインイベント] を選択します。

    タイムアウト期間

    ビジネス要件に基づいてTimeout Periodパラメーターを設定します。 単位は秒です。 この例では、このパラメーターは300に設定されています。

    重要

    タイムアウト期間は、インスタンスに対してカスタム操作を実行できる期間です。 タイムアウト期間がカスタム操作の実行に必要な期間よりも短い場合、操作は失敗する可能性があります。 インスタンスでカスタム操作を実行するために必要な期間を見積もり、見積もりに基づいてタイムアウト期間パラメーターを設定することを推奨します。

    ライフサイクルフックが有効になったときに通知を送信

    [OOSテンプレート] を選択し、次の操作を実行します。

    1. [パブリックテンプレート] を選択します。

    2. [ACS-ESS-LifeCycleDetachNetworkInterfaceAndDeleteEip] を選択すると、スケールインイベント中にEIPを持つセカンダリENIをECSインスタンスから自動デタッチできます。

    3. LifeCycleDetachNetworkInterfaceAndDeleteEipの横にある [パラメーターの設定] をクリックしACS-ESS。

      OOSAssumeRoleパラメーターをOOSServiceRoleに設定し、他のパラメーターのデフォルト設定を保持します。

  2. スケールインイベントをトリガーします。

    この例では、スケーリングルールを手動で実行して、スケーリンググループから1つのECSインスタンスを削除することで、スケールインイベントがトリガーされます。 スケジュールタスクまたはイベントトリガータスクを実行して、スケールインイベントを自動的にトリガーすることもできます。 詳細については、「スケーリングルールの管理」をご参照ください。

    説明

    スケーリングルールを手動で実行してスケールインイベントをトリガーすると、ライフサイクルフック機能が有効になります。 既存のECSインスタンスをスケーリンググループから手動で削除した場合、ライフサイクルフック機能は有効になりません。

    スケールインイベントがトリガーされると、Auto Scalingはスケーリンググループから1つのECSインスタンスを削除します。 ESSHookForDeleteNicAndEipライフサイクルフックを使用すると、ECSインスタンスはPending Remove状態になり、Auto Scalingは、ECSインスタンスのEIPを持つセカンダリENIを自動的にリリースするようにOOSに通知します。

  3. ECSインスタンスにアタッチされたセカンダリENIとEIPが自動的にリリースされるかどうかを確認します。

    [Elastic Network Interface] および [Elastic IP Address] ページに移動して、対応するENIおよびEIPが存在するかどうかを確認できます。 ENIおよびEIPが存在しない場合、EIPおよびENIは解放される。

    説明

    ECSインスタンスがスケーリンググループから削除されても、ENIまたはEIPがまだ存在する場合、OOSコンソールでO&M操作の実行ステータスを確認できます。

  4. (オプション) OOSテンプレートの実行ステータスを表示する

    実行詳細ページでは、関連情報を表示できます。 [基本情報] セクションでは、実行IDとステータスを表示できます。 [実行手順と結果] セクションでは、実行の詳細と対応するログを表示できます。 詳細については、「実行の詳細の表示」をご参照ください。

    重要

    実行が失敗した場合は、実行の詳細ページにエラーメッセージが表示されます。

よくある質問

O&Mタスクの実行に失敗した場合は、実行結果のエラーメッセージに基づいて問題のトラブルシューティングを行います。 詳細は、「よくある質問」をご参照ください。

次の表に、一般的なエラーメッセージを示します。

エラーメッセージ

原因

解決策

Forbidden.Unauthorizedメッセージ: 指定されたアクションに必要な権限が提供されていません。

現在のアクションの実行をAuto Scalingに許可していません。

OOSServiceRole RAMロールに必要な権限があるかどうかを確認します。

Forbidden.RAMメッセージ: 指定されたリソースを操作する権限がユーザーにないか、このAPIがRAMをサポートしていません。

RAMユーザーまたはRAMロールに、対応するリソースを操作する権限がありません。

OOSServiceRole RAMロールに必要な権限があるかどうかを確認します。 たとえば、RAMロールにOOS権限を付与できます。 OOSがOOSテンプレートで宣言されたリソースを管理する前に、RAMロールに必要な権限を付与する必要があります。

LifecycleHookIdAndLifecycleActionToken.Invalid message: 指定したlifecycleActionTokenとlifecycleActionIdは、プロセスライフサイクル内のアクションと一致しません。

進行中のライフサイクルフックアクションが終了または停止されました。

ライフサイクルフックのタイムアウト期間を評価して、OOSテンプレートで指定されたO&Mタスクが割り当てられた制限時間内に完了できることを確認します。

関連ドキュメント

  • EIPを使用する場合、パブリックトラフィック料金、EIP設定料金 (パブリックIP保持料金) 、およびEIPバインディング料金が課金されます。 詳細については、「課金の概要」をご参照ください。

  • ECSインスタンスへのEIPの自動バインドを有効にしてサービスの可用性を確保し、スケールインイベント中にECSインスタンスからEIPの自動バインド解除を有効にして、リソース使用率とコスト効率を向上させることができます。 詳細については、「EIPの自動バインドとリリース」をご参照ください。