Auto Scalingは、さまざまなスケーリング構成機能をサポートしており、キーペア、タグ、RAMロール、インスタンスユーザーデータなど、柔軟で柔軟なスケーリングサービスを提供します。 このトピックでは、スケーリング設定機能について説明します。
前提条件
Alibaba Cloud アカウントが作成済みであること。 Alibaba Cloudアカウントを作成するには、[Alibaba Cloudにサインアップ] ページに移動します。
背景情報
Auto Scalingは、Elastic Compute Service (ECS) インスタンスまたはelasticコンテナインスタンスの数を自動的に調整して、ピーク時またはオフピーク時の業務ワークロードを処理します。 Auto Scalingは、ECSインスタンスまたはエラスティックコンテナインスタンスへのアプリケーションの自動インストールもサポートしています。 Auto Scalingが適切に使用されている場合、Auto Scalingはサーバーのコストと、サーバー上でO&Mを管理および実行するコストを削減するのに役立ちます。
Auto scalingのスケーリング設定コンポーネントには、さまざまな機能があります。 スケーリング設定を作成して、効率的かつ柔軟な方法でカスタムインスタンス設定を指定できます。 Auto Scalingの理解と使用を深めるために、このトピックでは、「機能の説明」セクションで説明されている機能を使用して、インスタンスの自動スケーリングとアプリケーションの自動インストールを実装する方法について説明します。 たとえば、RAM (Resource Access Management) ロールをインスタンスに自動的に関連付けたり、インスタンスにタグを追加したり、ログオンキーペアを設定したり、インスタンスの起動時にカスタムスクリプトを実行したりするスケーリング設定を作成できます。
説明
次の表に、スケーリング設定コンポーネントのキーペア、タグ、RAMロール、およびインスタンスのユーザーデータ機能を示します。
機能 | 説明 | 操作 |
キーペア | Alibaba Cloudは、2048ビットRSAキーペアのみをサポートしています。 LinuxインスタンスのみがSecure Shell (SSH) キーペアをサポートしています。 SSHキーペアを作成すると、Alibaba Cloudは秘密キーを提供します。 Alibaba Cloudは公開鍵も保存します。 Auto Scalingがスケーリング設定に基づいてECSインスタンスを作成した後、ECSインスタンスは指定されたSSHキーペアの公開キーを保存します。 秘密鍵を使用して、オンプレミスデバイスからECSインスタンスにログインできます。 説明 パスワードを使用したログオンと比較して、SSHキーペアを使用したログオンはより効率的で安全です。 スケーリング設定を作成するときに、SSHキーペアを指定できます。 詳細については、「概要」をご参照ください。 |
|
タグ | タグ機能を使用すると、リソースとユーザーグループを簡単に識別できます。 企業または個人は、タグを使用して、目的によってECSインスタンスまたはエラスティックコンテナインスタンスを分類できます。 これにより、リソースの検索と集約が容易になります。 詳細については、「タグ」をご参照ください。 |
|
RAMロール | RAMは、ユーザーIDとリソースアクセス許可を管理するためにAlibaba Cloudが提供するサービスです。 RAMを使用すると、さまざまなロールを作成し、Alibaba Cloudサービスに対してさまざまな権限を付与できます。 ECSインスタンスは、RAMロールに付与された権限を継承するためにRAMロールを引き受けることができます。 詳細については、「概要」をご参照ください。 重要 スケーリング設定でRAMロールを指定する場合は、ECSまたはElastic Container InstanceがRAMロールの信頼できるエンティティであることを確認してください。 そうでない場合、Auto Scalingはスケーリング設定に基づいてECSインスタンスまたはエラスティックコンテナインスタンスを作成できません。 |
|
インスタンスユーザーデータ | WindowsとLinuxの両方のインスタンスは、インスタンスユーザーデータ機能をサポートしています。 詳細については、「インスタンスユーザーデータ」をご参照ください。 説明 TerraformなどのオープンソースのITインフラストラクチャ管理ツールと比較して、Auto Scalingのインスタンスユーザーデータ機能はより安全で信頼性が高いです。 インスタンスユーザーデータ機能の注意事項とこの機能を有効にする方法については、「インスタンスユーザーデータ機能を使用してECSインスタンスを自動的に設定する」をご参照ください。 インスタンスユーザーデータ機能には、次の利点があります。
|
|
ステップ1: 機能設定を準備する
このセクションでは、インスタンスRAMロール、タグ、SSHキーペア、およびインスタンスユーザーデータを準備する方法について説明します。
タグを作成します。
詳細については、「タグの作成または追加」をご参照ください。
SSH キーペアを作成します。
詳細については、「SSH キーペアの作成」をご参照ください。
RAM ロールを作成します。
詳細については、「信頼できるAlibaba CloudサービスのRAMロールの作成」をご参照ください。 既存のRAMロールを使用することもできます。 スケーリング設定で既存のRAMロールを指定する場合は、ECSまたはElastic Container InstanceがRAMロールの信頼できるエンティティであることを確認してください。 そうでない場合、Auto Scalingはスケーリング設定に基づいてECSインスタンスまたはエラスティックコンテナインスタンスを作成できません。 たとえば、RAMロール
AliyunECSImageExportDefaultRole
はイメージのエクスポート権限を付与します。 RAMロールの信頼ポリシーでは、現在のアカウントのすべてのECSインスタンスがこのRAMロールを引き受けることができます。 サンプルコード:{ "Statement": [ { "Action": "sts:AssumeRole", "Effect": "Allow", "Principal": { "Service": [ "ecs.aliyuncs.com" ] } } ], "Version": "1" }
説明ecs.aliyuncs.com
は、現在のアカウントのすべてのECSインスタンスがRAMロールを引き受けることができることを指定します。ユーザーデータを準備します。
詳細については、「インスタンスユーザーデータ」をご参照ください。
次のコードは、Auto Scalingが最初のインスタンスの起動時に
Hello World. The time is now{current time}
を/root/output10.txtファイルに記述できるようにするシェルスクリプトの例を示しています。 スクリプト例:#!/bin/sh echo "Hello World. The time is now $(date -R)!" | tee /root/output10.txt
説明この例で使用されているシェルスクリプトは単純で、参照用です。 より高度なカスタムスクリプトを作成して、ビジネス要件に基づいてインスタンスのスタートアップにより多くの機能を実装できます。
次のコードは、上記のコードのBase64エンコーディングの結果を示しています。
IyEvYmluL3NoDQplY2hvICJIZWxsbyBXb3JsZC4gIFRoZSB0aW1lIGlzIG5vdyAkKGRhdGUgLVIpISIgfCB0ZWUgL3Jvb3Qvb3V0cHV0MTAudHh0
ステップ2: 機能設定の適用
このセクションでは、スケーリンググループとスケーリング設定を作成し、「手順1: フィーチャ設定の準備」で準備したフィーチャ設定をスケーリング設定に適用する方法について説明します。
スケーリンググループを作成します。
詳細については、「スケーリンググループの管理」をご参照ください。
次の表に、スケーリンググループを作成するときに設定する必要があるパラメーターを示します。
パラメーター
説明
最小インスタンス数
この例では、このパラメーターは1に設定されています。 スケーリンググループを有効にすると、Auto scalingはスケーリンググループに1つのECSインスタンスを自動的に作成します。
インスタンス設定ソース
この例では、[スクラッチから作成] を選択します。
ネットワークタイプ
この例では、VPCが選択されています。
説明このパラメーターは、ECSタイプのスケーリンググループでのみ使用できます。
[VPC]
既存の仮想プライベートクラウド (VPC) のIDを指定します。
vSwitch
指定したVPCに存在するvSwitchを選択します。
スケーリング設定を作成して有効にします。
詳細については、「ECSタイプのスケーリング設定の作成」をご参照ください。
次の表に、スケーリング設定を作成するときに設定する必要があるパラメーターを示します。
セクション
パラメーター
説明
インスタンスとイメージ
画像の選択
この例では、[パブリックイメージ] フィールドの下のUbuntu 16.04 64ビットが選択されています。
管理設定
[ログイン資格情報]
この例では、[キーペア] が選択されています。
キーペア
手順1: 機能設定の準備で作成したキーペアを選択します。
タグ
手順1: 機能設定の準備で作成したタグを選択します。
詳細設定
RAMロール
[ステップ1: 機能設定の準備] で作成したRAMロールを選択します。
インスタンスユーザーデータ
手順1: 機能設定の準備で準備したスクリプトを渡します。
スケーリンググループの有効化
詳細については、「スケーリンググループの有効化」をご参照ください。
ステップ3: 機能設定を確認する
手順2では、[最小インスタンス数] パラメーターを1に設定しました。 スケーリンググループを有効にすると、Auto scalingは1つのECSインスタンスを作成し、インスタンスの最小数に達するようにします。
自動的に作成されたECSインスタンスを表示します。
詳細については、「スケーリンググループ内のインスタンスの表示」をご参照ください。
ECSインスタンスの行で、詳細を表示するECSインスタンスのIDまたは名前をクリックします。
インスタンス詳細ページの例を次の図に示します。 図では、ECSインスタンスのRAMロールとタグ設定が有効です。
SSHキーペアを使用してECSインスタンスにログインします。
詳細については、「SSHキーペアを使用したLinuxインスタンスへの接続」をご参照ください。
次の図は、正常にログオンした例を示しています。 図では、SSHキーペアが有効です。
次のコマンドを実行して、/root/output10.txtファイルの内容を表示します。
cat /root/output10.txt
ファイルの内容の例を次の図に示します。 この図では、インスタンスユーザーデータ機能が有効です。