AWS CLI で bash スクリプトを使用して Amazon EC2 インスタンスタイプを変更する
この Amazon EC2 用の bash スクリプト例は、AWS Command Line Interface (AWS CLI) を使用して Amazon EC2 インスタンスのインスタンスタイプを変更します。実行中の場合はインスタンスを停止し、インスタンスタイプを変更してから、リクエストに応じてインスタンスを再起動します。シェルスクリプトは、コマンドラインインターフェイスで実行するように設計されたプログラムです。
注記
その他のコマンドの例については、AWS CLI リファレンスガイド
開始する前に
以下の例を実行する前に、次のことを完了する必要があります。
AWS CLI をインストールして設定します。詳細については、AWS CLI の最新バージョンのインストールまたは更新およびAWS CLI の認証とアクセス認証情報を参照してください。
-
使用するプロファイルには、例によって実行される AWS オペレーションに対する許可が必要です。
-
停止および変更するアクセス許可を持つ、アカウントで実行中の Amazon EC2 インスタンス。テストスクリプトを実行すると、インスタンスが起動し、タイプの変更がテストされてから、インスタンスが終了します。
-
AWS のベストプラクティスとして、このコードには最小権限を付与するか、タスクの実行に必要な許可のみを付与します。詳細については、AWS Identity and Access Management (IAM) ユーザーガイドの「最小限の特権を認める」を参照してください。
-
このコードは、すべての AWS リージョンでテストされているわけではありません。一部の AWS のサービスは、特定のリージョンでのみ利用可能です。詳細については、AWS 全般のリファレンスガイドの「サービスエンドポイントとクォータ」を参照してください。
-
このコードを実行すると、AWS アカウントに課金される場合があります。作業が終了したら、このスクリプトによって作成されたすべてのリソースを確実に削除するのはお客様の責任になります。
この例について
この例は、シェルスクリプトファイル change_ec2_instance_type.sh
内の関数として記述されており、別のスクリプトまたはコマンドラインから source
できます。各スクリプトファイルには、各関数について説明するコメントが含まれています。関数がメモリに置かれたら、コマンドラインから呼び出すことができます。例えば、次のコマンドは、指定されたインスタンスのタイプを t2.nano
に変更します。
$
source ./change_ec2_instance_type.sh
$
./change_ec2_instance_type -i *instance-id* -t new-type
完全な例とダウンロード可能なスクリプトファイルについては、GitHub の AWS コード例のリポジトリの「Change Amazon EC2 Instance Type
パラメータ
-i - (文字列) 変更するインスタンス ID を指定します。
-t - (文字列) 切り替え先の Amazon EC2 インスタンスタイプを指定します。
-r - (スイッチ) デフォルトでは、これは設定されていません。-r
が設定されている場合、タイプの切り替え後にインスタンスを再起動します。
-f - (スイッチ) デフォルトでは、スクリプトは切り替えを行う前にインスタンスのシャットダウンを確認するプロンプトを表示します。-f
が設定されている場合、この関数はインスタンスをシャットダウンしてタイプを切り替える前にユーザーにプロンプトを表示しません。
-v - (スイッチ) デフォルトでは、スクリプトはサイレントに動作し、エラーが発生した場合のみ出力を表示します。-v
が設定されている場合、関数はそのオペレーション全体にわたってステータスを表示します。
ファイル
change_ec2_instance_type.sh
-
メインスクリプトファイルには、次のタスクを実行する
change_ec2_instance_type()
関数が含まれています。-
指定された Amazon EC2 インスタンスが存在することを検証する。
-
-f
が選択されていない限り、インスタンスを停止する前にユーザーに警告を表示します。 -
インスタンスタイプを変更する。
-
-r
を設定した場合、インスタンスを再起動し、インスタンスが実行中であることを確認します。
change_ec2_instance_type.sh
のコードを GitHub で表示します。 -
test_change_ec2_instance_type.sh
-
ファイル
test_change_ec2_instance_type.sh
のスクリプトは、change_ec2_instance_type
関数のさまざまなコードパスをテストします。テストスクリプトのすべてのステップが正しく動作する場合、テストスクリプトは作成したすべてのリソースを削除します。テストスクリプトは、次のパラメータを使用して実行できます。
-
-v - (スイッチ) 各テストは、実行時に合格/失敗ステータスを示します。デフォルトでは、テストはサイレントに実行され、出力には最終的な合格/失敗ステータスのみが含まれます。
-
-i - (スイッチ) 各テストの後にスクリプトが一時停止し、各ステップの中間結果を参照できるようにします。Amazon EC2 コンソールを使用して、インスタンスの現在のステータスを調べることができます。プロンプトで Enter キーを押すと、スクリプトは次のステップに進みます。
test_change_ec2_instance_type.sh
のコードを GitHub で表示します。 -
awsdocs_general.sh
-
スクリプトファイル
awsdocs_general.sh
には、AWS CLI の高度な例全体で使用される汎用関数が格納されています。awsdocs_general.sh
のコードを GitHub で表示します。
リファレンス
AWS CLI リファレンス:
その他のリファレンス:
-
AWS SDK および AWS CLI のコード例を表示したり、提供したりするには、GitHub の AWS コード例のリポジトリ
を参照してください。