AWSコマンドラインインターフェース(CLI)を使用したAWS EC2インスタンスの管理方法
AWSでは、"AWS Management Console"と呼ばれる便利なWebインターフェースが提供されています。このコンソールを使用すれば、AWSクラウド上で必要なあらゆる操作を実行できます。しかし、Webインターフェースで同じ操作を何度も繰り返すのは、単調で時間がかかります。そのような場合、AWS CLIを使用することで、AWSの管理タスクを自動化し、一括操作を行うことができます。本ブログ記事では、AWS CLIのインストール方法と、このツールの基本的な使い方について解説します。また、具体例を交えながら、AWS CLIのEC2コマンドについても詳しく説明します。
AWS CLI とは
Amazon Web Services Command Line Interface(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
- AWSでは64ビット版インストーラーが利用可能です: 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 をインストールするには、以下の手順を実行してください。
以下の URL にアクセスして /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 "program
"は、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の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のインスタンス起動コマンドを使用し、インスタンス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 ゲストOSが使用するディスク名を指定するオプションです。以下の例では、このコマンドを使用して、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 EC2の`run-instances`コマンドを使用して、AMI、インスタンスタイプ、およびキーペアを指定し、新しいAmazon EC2インスタンスを作成します:
aws ec2 run-instances
--image-id ami-0abcdef1234567890
--instance-type t2.micro
--key-name MyKeyPair
これは簡単な例です。AWSの`run instances`コマンドを使用して新しいEC2インスタンスを作成する際には、以下のようなオプションを指定することができます:
–サブネットID
–セキュリティグループID
–ブロックデバイスマッピング
–タグの仕様
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のバックアップ 専用のサードパーティ製ソリューションを使用する。
“}” data-sheets-userformat=”{“2″:17089,”3”:{“1″:0},”9″:1,”10″:1,”12″:0,”17”:1}”>
















