スケーリングをより弾力的かつ柔軟に行うために、スケーリング設定ではキーペア、タグ、RAM ロール、インスタンスユーザーデータなどのパラメーターを指定できます。このトピックでは、これら 4 つの機能の使用方法をデモを交えて説明します。
前提条件
Alibaba Cloud アカウントが作成されていること。Alibaba Cloud アカウントを作成するには、Alibaba Cloud へのサインアップページに移動してください。
背景情報
Auto Scaling (ESS とも呼ばれます) を使用すると、ビジネスニーズに応じて Elastic Compute Service (ECS) インスタンスまたは ECI インスタンスの数を自動的に調整できます。また、これらのインスタンスにアプリケーションを自動的にデプロイすることもできます。Auto Scaling を効果的に使用することで、サーバーコストと管理オーバーヘッドを削減できます。
Auto Scaling のスケーリング設定は、ECS インスタンスまたは ECI インスタンスの設定を効率的かつ柔軟にカスタマイズできるさまざまな機能をサポートしています。Auto Scaling の理解と使用を支援するために、このトピックでは、スケーリング設定の機能で説明されている機能を使用して、自動スケーリングとデプロイメントを実装する方法をデモします。このデモには、インスタンスの SSH キーペアログインの有効化、タグの設定、RAM ロールのアタッチ、インスタンス起動後のカスタムスクリプトの実行が含まれます。
スケーリング設定の機能
このトピックで説明するスケーリング設定の機能には、キーペア、タグ、RAM ロール、インスタンスユーザーデータが含まれます。次の表に詳細を示します。
|
機能 |
説明 |
使用方法 |
|
キーペア |
Alibaba Cloud は 2048 ビットの RSA キーペアのみをサポートしています。SSH キーペアでのログインをサポートしているのは、Linux を実行している ECS インスタンスのみです。SSH キーペアを作成すると、Alibaba Cloud は公開鍵を保存し、秘密鍵をユーザーに返します。 Auto Scaling が ECS インスタンスを作成した後、インスタンスは SSH キーペアの公開鍵を保存します。その後、ローカルマシン上の秘密鍵を使用して、自動作成された ECS インスタンスにログインできます。 説明
SSH キーペアを使用して Linux インスタンスにログインする方が、パスワードを使用するよりも高速で安全です。スケーリング設定を作成する際に SSH キーペアを選択するだけです。詳細については、「SSH キーペア」をご参照ください。 |
|
|
タグ |
タグは、リソースとユーザーグループを識別するのに役立ちます。タグを使用して、同じ目的を持つ ECS インスタンスまたは ECI インスタンスを分類し、検索と集約を容易にすることができます。詳細については、「タグ」をご参照ください。 |
|
|
インスタンス RAM ロール |
Resource Access Management (RAM) は、ユーザー ID とリソースアクセス権限を管理できる Alibaba Cloud サービスです。RAM を使用して、さまざまなロールを作成し、クラウドサービスに対するさまざまな権限を付与できます。 RAM ロールを使用すると、ECS インスタンスが特定の権限を持つロールを偽装し、インスタンスが他の Alibaba Cloud サービスにアクセスできるようになります。詳細については、「RAM ロール」をご参照ください。 重要
スケーリング設定で RAM ロールを選択する際は、ロールの信頼ポリシーがインスタンスによるロールの偽装を許可していることを確認してください。そうでない場合、Auto Scaling はインスタンスを作成できません。 |
|
|
インスタンスのカスタムデータ |
Windows と Linux の両方のインスタンスがインスタンスユーザーデータをサポートしています。詳細については、「インスタンスユーザーデータの概要」をご参照ください。 説明
Terraform のようなオープンソースの IT インフラストラクチャ管理ツールと比較して、Auto Scaling のネイティブなインスタンスユーザーデータ機能を使用する方が高速で安全です。使用上の注意と手順については、「インスタンスユーザーデータを使用した ECS インスタンスの自動設定」をご参照ください。 この機能には、主に次の関数があります。
|
|
ステップ 1:設定項目の作成
次の手順に従って、必要な RAM ロール、タグ、キーペア、およびインスタンスユーザーデータを作成します。
-
タグを作成します。
詳細については、「タグの作成とバインド」をご参照ください。
-
キーペアを作成します。
詳細については、「SSH キーペアの作成」をご参照ください。
-
RAM ロールを作成します。
詳細については、「信頼できる Alibaba Cloud サービス用の RAM ロールの作成」をご参照ください。既存の RAM ロールを使用することもできます。スケーリング設定で RAM ロールを選択する際は、RAM ロールの権限ポリシーがスケーリンググループ内のインスタンスによるロールの偽装を許可していることを確認してください。そうでない場合、スケーリング設定はインスタンスを起動できません。たとえば、RAM ロール
AliyunECSImageExportDefaultRoleはイメージのエクスポートを承認するために使用され、現在のユーザーのすべての ECS インスタンスがこのロールを偽装することを許可します。その信頼ポリシーは次のとおりです。{ "Statement": [ { "Action": "sts:AssumeRole", "Effect": "Allow", "Principal": { "Service": [ "ecs.aliyuncs.com" ] } } ], "Version": "1" }説明ecs.aliyuncs.comは、現在のユーザーに属するすべての ECS インスタンスがこの RAM ロールを偽装できることを示します。 -
インスタンスユーザーデータを生成します。
詳細については、「インスタンスユーザーデータの概要」をご参照ください。
この例では、インスタンスが初めて起動した後に文字列
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 つのインスタンスを作成します。
インスタンス設定ソース
新規作成 を選択します。
ネットワークタイプ
VPC を選択します。
説明このパラメーターは ECS インスタンスのスケーリンググループにのみ適用され、ECI インスタンスのスケーリンググループでは使用できません。
VPC
既存の VPC の ID を選択します。
vSwitch
vSwitch を選択します。
-
スケーリング設定を作成して有効化します。
詳細については、「ECS インスタンスのスケーリング設定の作成」をご参照ください。
スケーリング設定を作成する際は、次のパラメーターに注意してください。
セクション
パラメーター
説明
[インスタンスとイメージ]
イメージ
公開イメージ から Ubuntu 16.04 64 ビットを選択します。
設定管理
ログインクレデンシャル
キーペア を選択します。
キーペア
ステップ 1:設定項目の作成 で作成したキーペアを選択します。
タグ
ステップ 1:設定項目の作成 で作成したタグを選択します。
詳細設定
インスタンス RAM ロール
ステップ 1:設定項目の作成 で作成した RAM ロールを選択します。
インスタンスのカスタムデータ
ステップ 1:設定項目の作成 で準備したインスタンスユーザーデータスクリプトを入力します。
-
スケーリンググループを有効化します。
詳細については、「スケーリンググループの有効化」をご参照ください。
ステップ 3:カスタム設定の確認
最小インスタンス数 を 1 に設定したため、Auto Scaling はスケーリンググループが有効化されると 1 つのインスタンス (この例では ECS インスタンス) を作成し、グループが最小インスタンス要件を満たすようにします。
-
自動作成された ECS インスタンスを表示します。
詳細については、「スケーリンググループ内のインスタンスの表示」をご参照ください。
-
ECS インスタンス ID/名前 列で、インスタンス ID をクリックして ECS インスタンスの詳細を表示します。
インスタンスの詳細には、スケーリング設定のタグと RAM ロールが適用されていることが示されます。インスタンス詳細ページで、[タグ] セクションに移動し、インスタンスに
bw:ecsやacs:autoscaling:scalingGroupId:a***ynなどのタグが付いていることを確認します。これにより、タグ設定が成功したことが確認できます。次に、[その他の情報] セクションに移動し、[RAM ロール] に設定したロール名 (例:AliyunECSImageImportDefaultR...) が表示されていることを確認します。これにより、RAM ロールが ECS インスタンスに正常にアタッチされたことが確認できます。 -
SSH キーペアを使用してインスタンスにログインします。
詳細については、「SSH キーペアを使用した Linux インスタンスへの接続」をご参照ください。
次の出力で示されるように、ログインが成功すると、SSH キーペアが正しく設定されたことが確認できます。
Using username "root". Authenticating with public key "imported-openssh-key" Welcome to Ubuntu 16.04.6 LTS (GNU/Linux 4.4.0-151-generic x86_64) * Documentation: https://help.ubuntu.com * Management: https://landscape.canonical.com * Support: https://ubuntu.com/advantage Welcome to Alibaba Cloud Elastic Compute Service ! root@ixxxxxxxxxx:~# -
次のコマンドを実行して、/root/output10.txt ファイルの内容を表示します。
cat /root/output10.txt次の出力はファイルの内容を示しており、インスタンスユーザーデータの設定が有効になったことを示しています。
root@ixxx:~# cat /root/output10.txt Hello World. The time is now Mon, 16 Sep 2019 11:01:26 +0800! root@ixxx:~#