AWS コマンドラインインターフェース(CLI)を使用して AWS EC2 インスタンスを管理する方法
AWSでは、"AWS Management Console"と呼ばれる便利なWebインターフェースが提供されています。このコンソールを使用すれば、AWSクラウド上で必要なすべての操作を実行できます。しかし、Webインターフェースで同じ操作を何度も繰り返すのは、単調で時間がかかります。そのような場合は、AWS CLIを使用してAWSの管理タスクを自動化し、一括処理を行うことができます。このブログ記事では、AWS CLIのインストール方法と、このツールの基本的な使い方を解説します。また、例を交えながら、AWS CLIのEC2コマンドについても詳しく説明します。
AWS CLIとは
Amazon Web Services コマンドラインインターフェース(AWS CLI)は、Amazon クラウド上の環境を管理するためのオープンソースのコマンドラインツールです。このツールは、AWS CLI がインストールされているオペレーティングシステムのコマンドラインシェルと連携して動作します。 AWS EC2 コマンドを使用して AWS EC2 インスタンスを管理できるほか、EBS ボリューム、S3 バケット、その他の Amazon サービスも管理できます。
AWS CLI は、Linux のコマンドラインシェル、macOS のターミナル、Windows のコマンドプロンプト (CMD)、および PowerShell で実行されます。この CLI を使用すると、スクリプトを作成してタスクを自動化できます。
AWS CLI には主に 2 つのバージョンがあります:
- AWS CLI バージョン 1 下位互換性のため、旧バージョンも利用可能です。このバージョンはサポートされていますが、新機能は利用できない場合があります。
- AWS CLI バージョン 2 これは、AWSのすべての利用可能な機能をサポートする最新バージョンです。最新バージョンをインストールすることをお勧めします。
どちらのバージョンも、同じものを使用しています aws AWS CLI を実行するためのコマンドです。ただし、AWS CLI v2 では、AWS CLI v1 用に作成されたスクリプトが使用できなくなるような変更が加えられている場合があります。
要件
それでは、AWS CLI を使用するために満たすべき要件について見ていきましょう。
一般的な要件
- AWSアカウントをお持ちである必要があり、 AWS アクセスキー (AWS アクセスキー ID および AWS シークレットアクセスキー)。
- Python 2 バージョン 2.6.5 以降、または Python 3 バージョン 3.3 以降がインストールされている必要があります。AWS CLI v2 には Python が組み込まれているため、AWS CLI v2 をインストールする際に Python を手動でインストールする必要はありません。
Linux
- ZIPアーカイブを展開するためのツール
glibc,groff、およびlessインストールする必要があります
Windows
- Windows XP 以降
- Windows マシン上の管理者権限
macOS
- Appleがサポートする64ビット版macOS
インストール
AWS EC2インスタンスやその他のAmazonサービスを管理するためのコマンドを実行するには、まずAWS CLIをインストールする必要があります。ここでは、さまざまなオペレーティングシステムでAWS CLIバージョン2をインストールする方法について見ていきましょう。
Linux への AWS CLI のインストール
Linux に AWS CLI をインストールするには、3 つの方法があります:
- バンドルインストーラーの使用(公式の方法)
- Linuxのソフトウェアリポジトリの使用
- AWS CLI を Python モジュールとしてインストールする
Amazonでは、AWS CLIのインストールには公式の方法を使用することを推奨しています。そうすれば、常にソフトウェアの最新バージョンを入手できます。このワークフローでは、Ubuntu 20を使用しています。
公式インストーラーアーカイブの使用
これが AWS CLI をインストールするための推奨方法です。以下の手順に従ってください。
- curl をインストールします:
apt-get install curl
- AWS CLI インストーラーのアーカイブをダウンロードしてください:
curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"
- ダウンロードしたアーカイブから、同梱されているインストーラファイルを抽出します:
unzip awscliv2.zip
- root権限でインストーラを実行してください:
sudo ./aws/install
- インストールが完了したら、インストールされたAWS CLIツールのバージョンを確認し、このツールが正常にインストールされたことを確認してください:
aws --version
Linuxのソフトウェアリポジトリの利用
AWS CLI は、Ubuntu の公式ソフトウェアリポジトリから入手できます。以下の手順に従ってください:
1. リポジトリツリーを更新します:
sudo apt-get update
2. Linuxのソフトウェアリポジトリから、パッケージマネージャーを使用してAWS CLIをインストールします:
sudo apt-get install awscli
3. AWS CLI が正常にインストールされていることを確認します:
aws --version
PythonのPIPを使ったインストール
PythonのPIPパッケージマネージャーを使用すると、AWS CLIをPythonモジュールとしてインストールできます。なお、UbuntuにはデフォルトでPython PIPがインストールされていません。Pythonモジュールとしてインストールするには、以下の手順に従ってください:
1. まず、Python PIPをインストールする必要があります。
- Python 2.x の場合:
sudo apt-get install python-pip
- Python 3.x の場合:
sudo apt-get install python3-pip
2. PythonのPIPを使用してAWS CLIをインストールします。
- Python 2.x の PIP を使用する場合:
pip install awscli --upgrade --user
- Python 3.x の PIP を使用する場合:
pip3 install awscli --upgrade --user
3. インストールされているバージョンを確認してください。
- Python 2.x では:
python -m awscli --version
- Python 3.x では:
python3 -m awscli --version
注: PythonのPIPでインストールしたAWS CLIを使用する場合、使用するコマンドは標準のmainコマンドとは異なります。 aws AWS CLIのパッケージ版で使用されるコマンド:
- パッケージ版:
aws
- Python 2 用モジュール:
python -m awscli
- Python 3 用モジュール:
python3 -m awscli
Windows への AWS CLI のインストール
WindowsにAWS CLIをインストールするには、インストーラーをダウンロードし、AWS CLIをインストールした後、Windowsでインストール後の設定を行う必要があります。
インストーラーをダウンロードする
以下のリンクのいずれかから 64 ビット版の AWS CLI インストーラーをダウンロードし、そのファイルを任意の場所(例: C:temp
- 64ビット版インストーラーはAWSで入手可能です: https://awscli.amazonaws.com/AWSCLIV2.msi
- 32ビット版のインストーラーは、以下のリンクから入手できます: https://s3.amazonaws.com/aws-cli/AWSCLI32PY3.msi
- ユニバーサルインストーラファイルは、こちらから入手できます: https://s3.amazonaws.com/aws-cli/AWSCLISetup.exe
この例では Windows Server 2016 を使用し、 AWSCLIV2.msi ファイル。
PowerShell で次のコマンドを実行すると、インストーラーファイルをダウンロードできます:
Invoke-WebRequest -Uri https://awscli.amazonaws.com/AWSCLIV2.msi -OutFile "C:tempAWSCLIV2.msi"
インストーラーを起動する
ダウンロードしたファイルを起動してください AWSCLIV2.msi ファイル。
PowerShell を使用する場合は、次の点に注意してください。 .msi ファイルの保存場所 (C:temp (私の場合)で、次のコマンドを実行します:
C:tempAWSCLIV2.msi
インストールウィザードの手順に従ってください。インストールにはデフォルト設定を使用できます。インストール手順は簡単ですので、ウィザードの各ステップについては詳しく説明しません。
もし、その aws --version AWS CLIが正常にインストールされているかを確認するコマンドを実行すると、エラーが発生することがあります。これは、PATH環境変数にAWS CLIツールに関連するエントリがないためです。ここで、AWS CLIがインストールされているディレクトリに移動します(C:Program FilesAmazonAWSCLIV2 (デフォルトでは)AWS CLIを手動で実行します。
cd "C:Program FilesAmazonAWSCLIV2"
.aws --version
PATHの設定
そのエントリを PATH 変数です。なぜなら、AWS CLI コマンドを実行するたびに、コマンドラインで手動でディレクトリを変更するのは不便だからです。
WindowsのGUIの使用方法
1. 開く Control Panel > System > Advanced system settings、そしてその Advanced のタブ システムのプロパティ ウィンドウで、[クリック] Environment Variables.
2. の 環境変数 ウィンドウで、[ PATH 変数を選択してクリック Edit. 編集用のオプションがあることに注意してください。 管理者用のユーザー変数 そして システム変数.
3. の 環境変数を編集する ウィンドウで、[クリック] New.
4. AWS CLI がインストールされているディレクトリのパスを指定し、 Enter. 私の場合、このディレクトリは “C:Program FilesAmazonAWSCLIV2”.
5. クリック OK 設定を保存してウィンドウを閉じるには。
注: 変更を反映させるには、コンソールウィンドウ(PowerShell または CMD)を再度開く必要がある場合があります。
PowerShell の使用
PowerShell でも環境変数を編集できます。以下の手順に従って、 PATH PowerShell の変数。
1. 元の値をキャプチャする PATH 変更したい値:
$oldpath = (Get-ItemProperty -Path 'Registry::HKEY_LOCAL_MACHINESystemCurrentControlSetControlSession ManagerEnvironment' -Name PATH).path
2. 新しいものを定義する PATH 必要な値を追加することで行います。私の場合、追加する必要があるのはAWS CLIディレクトリへのパスです。セミコロン(;)は、 PATH 変数。
$newpath = "$oldpath;C:Program FilesAmazonAWSCLIV2"
3. 変更を永続化するために、その値を Windows レジストリに書き込みます:
Set-ItemProperty -Path 'Registry::HKEY_LOCAL_MACHINESystemCurrentControlSetControlSession ManagerEnvironment' -Name PATH -Value $newPath
4. 新しいものが PATH 設定は正しいです:
Get-ItemProperty -Path 'Registry::HKEY_LOCAL_MACHINESystemCurrentControlSetControlSession ManagerEnvironment' -Name PATH
または
(Get-ItemProperty -Path 'Registry::HKEY_LOCAL_MACHINESystemCurrentControlSetControlSession ManagerEnvironment' -Name PATH).path
Chocolatey の使用方法
MSIインストーラーファイルをダウンロードして実行する代わりに、PowerShellで動作するWindows用ソフトウェア管理ツールであるChocolateyを使用してAWS CLIをインストールすることもできます。Chocolateyは、Windowsのオンラインリポジトリからアプリケーションをインストールする機能をサポートしています。以下のコマンドを実行して、AWS CLIをインストールしてください:
choco install awscli
インストール結果を確認する
これで、 aws PowerShellの任意のディレクトリから、このコマンド(および関連するAWS EC2コマンド)を実行できます。
aws --version
注: お使いのオペレーティングシステムに AWS CLI バージョン 1 と AWS CLI バージョン 2 の両方がインストールされている場合、オペレーティングシステムは、 PATH 変数。
macOSへのAWS CLIのインストール
macOS に AWS CLI をインストールするには、以下の手順を実行してください。
にアクセスし、 /tmp/ ダウンロードしたファイルを保存するために使用するディレクトリ:
cd /tmp
方法 1
- インストーラーファイルをダウンロードしてください:
curl -o awscli.zip https://s3.amazonaws.com/aws-cli/awscli-bundle.zip - ダウンロードしたZIPアーカイブから内容を解凍します:
unzip awscli.zip - AWS CLI のインストール:
sudo ./awscli-bundle/install -i /usr/local/aws -b /usr/local/bin/aws
方法 2
- インストーラパッケージをダウンロードしてください:
curl "https://awscli.amazonaws.com/AWSCLIV2.pkg" -o "AWSCLIV2.pkg" - インストーラを実行します:
sudo installer -pkg AWSCLIV2.pkg -target / - AWS CLI が正常にインストールされていることを確認するには、次のコマンドを実行してください:
aws --version
AWS CLI の初期設定
次に、AWSの認証情報を指定し、リージョンと出力パラメータを設定する必要があります。以下のコマンドを実行して、AWS CLIを設定してください。AWS CLIコマンドの構文は、Linux、Windows、macOSのいずれでも同じです。この例では、Ubuntu Linuxを使用しています。
aws configure
4つのパラメータを指定してください(最初の2つは必須です):
- AWS アクセスキー ID、これは20文字の英数字の文字列です。文字は大文字です。
- AWS シークレットアクセスキー, これはハッシュと同様に40文字の英数字の文字列です。
- デフォルトの地域名. AWS CLI でコマンドを実行する際に、毎回リジョンを明示的に指定する必要がない場合は、このパラメータを選択してください。デフォルトのリジョンとは異なるリジョンを使用する必要がある場合は、コマンド内で必要なリジョンを手動で指定することができます。使用方法
--regionこの目的のために。 - デフォルトの出力形式. 選択肢は3つあります:
json, text, table, yaml, yaml-stream. デフォルトでは JSON (JavaScript Object Notation) が使用されます。特定のコマンドを実行する際に、以下の方法を使用して必要な形式を選択することができます。--output.
AWS CLIの設定ファイルはホームディレクトリに保存されます。以下のコマンドでこれらのファイルを確認できます:
ls -l ~/.aws
地域および出力設定は、 設定 ファイル。認証情報(AWS アクセスキー ID および AWS シークレットアクセスキー)は、 認証情報 ファイル。
一般的な使い方とヒント
EC2 に関する AWS CLI の実践的な例に進む前に、AWS CLI の一般的な使用上の推奨事項やヒントについて理解しておきましょう。
AWS CLI のコマンド構文
AWS CLI コマンドは、1 行で記述する方法と、複数行で記述する方法の 2 通りの方法で作成できます。
規則的な構造
通常のコマンド構造では、コマンドは1行のコマンドとして記述することが前提となっています。
aws [options and parameters]
場所:
aws は、以下を呼び出すための基本コマンドです。 aws プログラム"
"は、EC2やS3などの適切なAWSサービスに対応する最上位のコマンドです。"
"は、オブジェクトの取得やインスタンスの説明など、実行する操作を指定します。
[options and parameters] その操作のオプションとパラメータを指定します。
複数行にわたるコマンド構造
複数のオプションやパラメータを指定する必要がある場合、複数行にわたるコマンド構造を使ったほうが便利なことがあります。
aws
[options and parameters]
[options and parameters]
wait コマンド
以下の wait コマンド全体の実行を一時停止し、実行可能な状態になり、かつすべての条件が満たされた時点で処理を再開するためのコマンド。
aws wait [options and parameters]
例:
aws ec2 wait instance-status-ok
--instance-ids i-1234567890abcdef0
コマンド補完
コマンド補完を有効にします。コマンド補完を使用すると、コマンドの入力がより迅速かつ便利になります。Linux で自動補完を有効にするには、次のコマンドを使用してください:
complete -C '/usr/local/bin/aws_completer' aws
コマンドの補完機能が動作することを確認してください:
aws s[press Tab]
aws e[press Tab]
オートコンプリート機能が動作している場合、コマンドを一部入力した状態で Tab 入力した文字で始まるコマンドが1つだけある場合。入力した文字で始まるコマンドが複数ある場合は、それらのコマンドがすべて以下に表示されます。利用可能なコマンドの一覧を確認し、必要なコマンドの入力を続けてください。その後、 Tab コマンドの補完にはキーを使用します。
フィルター
フィルターを使用して、必要なデータのみを表示します。フィルタリングはAmazonのサーバー側で行われます。その結果、ネットワーク経由で送信されるデータ量が減り、出力データをより速く取得できます。AWS EC2コマンドやAWS CLIフィルターを含むスクリプトの実行速度も向上します。
AWSヘルプ
""を使用してください。 help 利用可能なコマンドとオプションを表示するコマンド。
aws help
aws help
aws help
JSONの解析
使用方法 jq、これはJSONデータを処理するための軽量なユーティリティです。
jq は、の対応物である sed 入力ストリームを変換するためですが、JSON形式用です。インストールするには jq JSON解析ツールとして、次のコマンドで実行します:
apt-get install jq
デフォルトでは、組み込みの --query 実行されたコマンドから返されたJSONを解析するオプション。
リモートアクセス
AWS CLIがインストールされているLinuxマシンにSSH経由で接続し、コマンドを実行してAmazonクラウド上のサービスを管理することができます。
AWS CLI における AWS EC2 コマンド
AWS CLIのインストールが完了し、AWS CLIのコツも理解できたところで、AWS CLIのEC2コマンドを実行して、AWS EC2インスタンスに関する情報を確認したり、インスタンスを管理したりできるようになりました。それでは、AWSのコマンドラインインターフェースを使用する実践的な例を見ていきましょう。
AWS EC2インスタンスについて説明する
AWS CLI の AWS EC2 コマンドを使用すると、アカウント内の Amazon コンポーネントについて、操作を行うことなく情報を取得(describe)することができます。AWS CLI の `describe instances` コマンドを使用すると、AWS EC2 インスタンス、EBS ボリューム、Amazon マシンイメージ、およびその他のコンポーネントの状態を確認できます。また、提供されている機能を利用して、 監視.
例 1
まずは、既存のAmazon EC2インスタンスに関する情報を表示するこの簡単なコマンドから始めましょう:
aws ec2 describe-instances
このコマンドは、すべての AWS EC2 インスタンスに関するデータを JSON 形式で出力します(これは、先に JSON をデフォルトの形式として設定しているためです)。その結果、メタデータを含む大規模なデータ配列が得られます。この出力は、ユーザーが直接読むには適していませんが、スクリプトやアプリケーションでの利用には適しています。
キーを押して down arrow コンソール/ターミナルウィンドウのデータを下にスクロールするには、このキーを押します。
キーを押してください q ビューアモードを終了するには(…を使用する場合と同様に もっと少なく).
例 2
次のコマンドでインスタンスIDを指定することで、1つのインスタンスについてのみ詳細情報を表示できます:
aws ec2 describe-instances
--instance-ids i-0201020e110607121
例 3
ここでは、当リージョンで利用可能なすべてのインスタンスについて、インスタンスID、インスタンス名、およびステータスを確認します。AWS CLIのフィルター機能と --query オプション。この AWS CLI フィルターの例には、 --filter 要求されたフィルタリング済みのデータを返すオプションです。ここでは、 --output text 結果をテキストとして表示するオプション。
aws ec2 describe-instances --filters "Name=tag:Name,Values=server*" --query "Reservations[].Instances[].[Tags[?Key=='Name'],InstanceId,State.Name]" --output text
すべてのインスタンスに関する利用可能なデータがすべて含まれているフィルタリングされていない出力に比べ、フィルタリングされた出力はより使いやすく、ユーザーにも読みやすいものです。
例 4
それでは、もう一度AWS EC2インスタンスをフィルタリングして、以下の条件を満たすインスタンスのみを表示してみましょう。 "Linux" AWS CLI フィルターを使用して、名前で指定します。
aws ec2 describe-instances --filters "Name=tag:Name,Values=*Linux*" --query "Reservations[].Instances[].[Tags[?Key=='Name'],InstanceId,State.Name]" --output text
以下のスクリーンショットは、EC2インスタンスフィルターを指定してコマンドを実行した後の出力結果です。その結果、次の条件に一致するLinuxインスタンスが3つ見つかりました。 NAKIVO Backup & Replication トランスポーター インストールされました。Transporterは、AWSのバックアップを実行する際にデータを転送するためのコンポーネントであり、 AWSの災害復旧 業務。
例 5
特定のAWS EC2インスタンスタイプのインスタンスを一覧表示することができます。この例では、次のコマンドを実行して、 t2.micro タイプ:
aws ec2 describe-instances
--filters Name=instance-type,Values=t2.micro
例 6
EC2インスタンスフィルターを使用して、インスタンスIDのみを表示します。
aws ec2 describe-instances --filters "Name=instance-type,Values=t2.micro" --query "Reservations[].Instances[].InstanceId"
例 7
別の方法として、以下のコードを追加することで、出力データにテーブルビューを使用することもできます。 --output table オプション。以下に、AWS EC2インスタンスのインスタンスID、名前、ステータス、およびタイプを表形式で表示するためのAWS CLIフィルターを含むコマンドを示します。
aws ec2 describe-instances --output table --query "Reservations[].Instances[].{Name: Tags[?Key == 'Name'].Value | [0], Id: InstanceId, State: State.Name, Type: InstanceType}"
例 8
AWS EC2 インスタンスの出力データ(インスタンス ID、タイプ、および名前)をわかりやすい形式で表示するための別のコマンドがあります:
aws ec2 describe-instances | jq -r '.Reservations[].Instances[]|.InstanceId+" "+.InstanceType+" "+(.Tags[] | select(.Key == "Name").Value)'
例 9
実行中のインスタンスの外部IPアドレスを確認するには:
aws ec2 describe-instances --instance-ids i-0201020e110607121 --query "Reservations[].Instances[].PublicIpAddress"
複数のAWS EC2インスタンスの外部IPアドレスを確認するには、インスタンスIDをスペースで区切って指定してください。
例 10
AWS CLI フィルターを含むコマンドを使用して、停止中のインスタンスと、各インスタンスが停止した理由を確認します。
aws ec2 describe-instances --filters Name=instance-state-name,Values=stopped
別の例としては、次のようなものがあります:
aws ec2 describe-instances --filters Name=instance-state-name,Values=stopped --region eu-west-1 --output json | jq -r .Reservations[].Instances[].StateReason.Message
例 11
これは、実行中の Amazon EC2 インスタンスを、インスタンス名、プライベート IP アドレス、パブリック IP アドレス、ステータス、タイプ、VPC ID などの詳細情報を表形式で一覧表示するコマンドです:
aws ec2 describe-instances --query "Reservations[*].Instances[*].{PublicIP:PublicIpAddress,PrivateIP:PrivateIpAddress,Name:Tags[?Key=='Name'] | [0].Value,Type:InstanceType,Status:State.Name,VpcId:VpcId}" --filters Name=instance-state-name,Values=running --output table
AWS EC2インスタンスを起動する
インスタンス ID がわかれば、AWS EC2 コマンドを使用して Amazon インスタンスを起動できます。
aws ec2 start-instances --instance-ids i-1a3b5c7d9ea0c1ef0
AWS EC2の"start instances"コマンドを使用し、インスタンスIDをスペースで区切って指定することで、複数のAWS EC2インスタンスを起動できます。
aws ec2 start-instances --instance-ids i-1a3b5c7d9ea0c1ef0 i-1a3b5c7d9ea0c1ef1 i-1a3b5c7d9ea0c1ef2
AWS EC2インスタンスを停止する
1つまたは複数のAWS EC2インスタンスを停止することができます。構文は、 ec2 start-instances コマンド。
1つのインスタンスを停止するためのAWS CLIの"stop instance"コマンドは以下の通りです:
aws ec2 stop-instances --instance-ids i-1a3b5c7d9ea0c1ef0
複数の(3つの)インスタンスに対してAWS CLIの"stop instance"コマンドを実行する場合、コマンド自体は同じですが、AWS EC2インスタンスのIDをスペースで区切って複数指定する必要があります:
aws ec2 start-instances --instance-ids i-1a3b5c7d9ea0c1ef0 i-1a3b5c7d9ea0c1ef1 i-1a3b5c7d9ea0c1ef2
出力に含まれる可能性のあるステータスコードとステータス名のリストは以下の通りです:
0 – 保留中
16 – 実行中
32 – シャットダウン中
48 – 終了
64 – 停止中
80 – 停止済み
AWS EC2インスタンスを再起動する
~とともに AWS EC2 インスタンスの再起動 このコマンドを使用すると、1つまたは複数のAWS EC2インスタンスを再起動できます。このコマンドの使用方法は、AWS CLIの"start instance"コマンドおよび"stop instance"コマンドと同様です。1つのインスタンスを再起動するコマンドは次のとおりです:
aws ec2 reboot-instances --instance-ids i-1a3b5c7d9ea0c1ef0
3つのインスタンスを再起動するためのコマンドは次のとおりです:
aws ec2 reboot-instances --instance-ids i-1a3b5c7d9ea0c1ef0 i-1a3b5c7d9ea0c1ef1 i-1a3b5c7d9ea0c1ef2
タグを追加
タグを使用すると、AWS EC2インスタンスを分類し、より便利に識別したり検索したりすることができます。タグを操作するための2つのAWS EC2コマンドを見てみましょう。
このコマンドを実行し、インスタンスIDを指定して、インスタンスにタグを追加します:
aws ec2 create-tags --resources i-1a3b5c7d9ea0c1ef0 --tags Key=Department,Value=Marketing
その後、コマンドを使用して、タグに基づいて必要なインスタンスに関する情報を表示することができます:
aws ec2 describe-instances --filters "Name=tag-key,Values=Name"
EBSボリュームについて説明する
Amazon EC2 インスタンスの運用中、EBS ボリュームに関する情報の確認や、EC2 インスタンスへのボリュームの接続・切り離しが必要になる場合があります。以下に、EBS ボリュームに関する情報を取得するための AWS EC2 コマンドの例をいくつか示します。
例 1
これは、EBSボリュームの概要を表示し、Amazonアカウント内の既存のボリュームに関するすべての情報を表示するための簡単なコマンドです:
aws ec2 describe-volumes
このコマンドは、先ほど使用したAWS EC2の`describe instances`コマンドと似ています。出力には、利用可能なすべてのボリュームに関する詳細情報が表示されます。キーボードの下矢印キーを押して下にスクロールし、すべてのデータを表示してください。このデータ一覧の中から必要な情報を探すのは不便です。AWS CLIのフィルター機能を使用して、必要なデータのみを表示するようにしてください。
例 2
以下は、すべてのEBSボリュームのボリュームIDを表示するAWS CLIのEC2コマンドの例です:
aws ec2 describe-volumes --output table --query 'Volumes[*].VolumeId'
例 3
"接続済み"状態にあるすべてのAmazon EBSボリュームのボリュームIDをフィルタリングしてみましょう:
aws ec2 describe-volumes
--query 'Volumes[*].Attachments[?State==`attached`].VolumeId[]'
EBSボリュームやその他のAWSオブジェクトを操作するためのAWS CLIコマンドを実行する際も、フィルタを適用する際には同様のロジックを使用できます。
例4
アタッチされておらず、"利用可能"状態にあるボリュームを表示する必要がある場合があります。その場合は、次のコマンドを使用してください:
aws ec2 describe-volumes --filters Name=status,Values=available --output table
AWS EC2インスタンスにEBSボリュームをアタッチする
AWS EC2 インスタンスおよび EBS ボリュームに関する必要な情報を入手したら、以下のコマンドを使用して、EBS ボリュームを EC2 インスタンスにアタッチできます。 aws ec2 attach-volume コマンド。
以下の --device ゲストオペレーティングシステムで使用されるディスク名を指定するオプションです。以下の例では、このコマンドを使用して、EBSボリュームを、次のように識別されるディスクドライブとして接続しています。 /dev/sde ゲストLinux上で。
aws ec2 attach-volume --volume-id vol-0034567890abcdef0 --instance-id i-1a3b5c7d9ea0c1ef0 --device /dev/sde
EBSボリュームがEC2インスタンスにアタッチされると、ボリュームの状態は"利用可能"から"アタッチ済み"に変わります。
スナップショットを用いた操作
EBS ボリュームのスナップショットを作成することで、ボリュームの状態を保存し、必要に応じてその状態に戻すことができます。以下は、EBS ボリュームのスナップショットを作成するコマンドの例です。
aws ec2 create-snapshot --volume-id
スナップショットIDを表示するには、次のコマンドを使用してください:
ec2 describe-snapshots --owner self
次のコマンドでスナップショットのステータスを確認します:
aws ec2 describe-snapshots --snapshot-id
スナップショットの進行状況が 100% で、ステータスが"完了"となっている場合、スナップショットは正常に作成されています。
この情報をもとに、適切なデータ保護戦略を選択することができます。 Download the white paper 詳細はこちら。
画像の説明
AWS EC2 のインスタンスやボリュームの情報を取得するコマンドと同様に、Amazon Machine Image (AMI) の情報を取得するコマンドも利用できます。以下は、Amazon Machine Image (AMI) に関する情報を表示するための簡単な AWS CLI EC2 コマンドです。
aws ec2 describe-images
特定の画像に関する情報を表示するには:
aws ec2 describe-images --image-ids ami-0034567890abc4140
表示された情報に基づいて、必要なAMIを選択し、新しいAmazon EC2インスタンスを作成できます。
新しいEC2インスタンスを起動する
以下のAWS CLIのEC2コマンドを使用すると、必要なイメージに基づいて新しいインスタンスを作成(起動)できます。
まず、キーを生成する必要があります:
aws ec2 create-key-pair --key-name MyKeyPair --output text > MyKeyPair.pem
AWSの`run instances`コマンドを使用して、AMI、インスタンスタイプ、およびキーペアを指定し、新しいAmazon EC2インスタンスを作成します。
aws ec2 run-instances
--image-id ami-0abcdef1234567890
--instance-type t2.micro
--key-name MyKeyPair
これは簡単な例です。AWSの"EC2 run instances"コマンドを使用して新しいEC2インスタンスを作成する際には、以下のようなオプションを追加で指定することができます。
–サブネットID
–セキュリティグループID
–block-device-mappings
–タグの指定
EC2インスタンスの削除
コスト削減のため、長期間使用されていないAWS EC2インスタンスは削除することをお勧めします。一度終了させたEC2インスタンスは復元できないため、ご注意ください。終了させたインスタンスを今後必要とするかどうか確信が持てない場合は、 EC2インスタンスをバックアップする ~と NAKIVO Backup & Replication ローカルのバックアップリポジトリまたはAmazon S3へ。
以下のコマンドで、インスタンスIDを指定して複数のインスタンスを削除できます:
aws ec2 terminate-instances --instance-ids i-0abcdef1234567890 i-0abcdef123456789a i-0abcdef123456789b
結論
AWS CLI は、多数の類似したタスクの実行を自動化するのに役立つ強力なコマンドラインツールです。AWS EC2 のフィルタ機能を使用すると、出力を設定して必要なデータのみを取得することができます。Amazon サービスに関する情報を表示するコマンドや、それらを変更するためのコマンドがあります。
AWS CLI で作成したスクリプトの設定ミスが原因となる人為的ミスを防ぐため、定期的に以下の作業を行うことを強くお勧めします。 AWS EC2のバックアップ 専用のサードパーティ製ソリューションを使用する。
















