COLUMN
CLIでAWSをコマンド管理するには
AWS CLI(Command Line Interface)を利用すれば、AWSをコマンド入力で操作・管理できるようになります。AWSの設定や管理作業のために、画像やボタンなどによる直観的に操作がしやすいGUI(Graphic User Interface)として、AWSマネジメントコンソールが提供されておりますが、AWS CLIをあえて利用することにはどのようなメリットがあるのでしょうか。今回は、AWS CLIの概要や登録方法、さまざまなオプションについて解説します。
CLIとは
そもそもCLIとはどのようなものなのでしょうか。
CLIの概要
CLIとは、サーバーなどの操作をコマンド入力で行うことができるユーザーインターフェースです。AWSにおいても、主に設定や管理のために、AWS CLIとして提供されています。AWSのサイトからAWS CLIインストーラをダウンロードしてインストールすることで使用できるようになります。
Windows OSのコマンドプロンプトもしくはPowerShell(コマンドプロンプトのようなWindows管理用のコマンドシェル)などでCLIでの操作ができるのと同様に、AWS CLI では、AWSマネジメントコンソールを使ってできることと同様の操作をすることができます。例えば、パソコンに保存されている画像をAmazon S3にアップロードしたり、起動しているAmazon EC2のインスタンスを停止したりするなどの操作が可能です。
AWS CLIを利用するメリット
AWSマネジメントコンソールを利用すれば直感的な操作が可能であるにもかかわらず、あえてコマンドベースのAWS CLIが提供されているのはなぜでしょうか。それは、AWS CLIにはAWSマネジメントコンソールとは異なるいくつかのメリットが存在するからです。AWS CLIを利用する主なメリットを5つ紹介します。
- 第三者に管理操作手順を説明する際に、コマンドベースだと説明資料作成の手間が軽減できる(例えば、ビジネス利用におけるAWSマネジメントコンソールの独自の操作マニュアルは、画面毎にスクリーンショット(画像)などを撮って貼りつけたものがすることが多いが、コマンドベースの資料の場合では、実際のコマンド(スクリプト)をテキスト情報として残しておけばよいのでマニュアル作成の負担軽減が期待できる)
- 一定のルールに沿った繰り返し作業などをあらかじめプログラミング言語で記述しておくことで、作業の自動化ができるうえ、自動化による手間の軽減だけでなく、人的ミスの予防も期待できる
- 毎回、AWSマネジメントコンソール画面にアクセスやログインしなくてもAWSのリソース(EC2やS3など)を操作できる(コマンド入力で操作を行うことができる)
- キーボード入力だけでコマンドを実行できるので、慣れれば作業スピードが向上する
- AWS上のリソース間を連携した管理や設定のための独自のサービスやツールを作成できる(AWS CLIを使用すれば一定ルールに従った作業のスクリプト化により自動化できるので、AWS上のリソース間の自動連係ツールを作成することができる。例えば、Amazon EC2からAmazon S3に次々とファイルを自動的にアップロードしてくれるような自動化スクリプトを作成することができる)
AWS CLIを利用するケース
AWS CLIの利用が想定される主なケースは、以下のとおりです。
自分自身のパソコン以外からアクセスするケース(AWS IAMユーザーでアクセス)
専用のAWS IAMユーザーを発行してアクセスキーを入力すれば、AWS CLIを使って自分のパソコン以外の端末からでもAWSにログインすることができます。
Amazon EC2のインスタンスから利用するケース
IAMロールをAmazon EC2インスタンスに割り当てれば、IAMユーザーを使用せずにAWSにアクセスすることができます。この場合では、アクセスキーの管理が不要で、セキュリティ面の安全性が増します。
AWS CLIのインストール方法
AWS CLIを利用するためには、パソコンにAWS CLIをインストールする必要があります。インストール手順はOSによって異なります。
AWS CLIのインストール手順
インストールする端末がWindows OSかMac OSかで、インストールの手順が異なります。
Windows OSの場合
Windows OSの場合には、以下の手順でAWS CLIインストーラをダウンロードする必要があります。
1.以下のいずれかのファイルをあらかじめダウンロードします。
- 64ビットの場合:https://s3.amazonaws.com/aws-cli/AWSCLI64PY3.msi
- 32ビットの場合:https://s3.amazonaws.com/aws-cli/AWSCLI32PY3.msi
2.AWSマネジメントコンソールからIAMユーザーを作成します。
3.ユーザー追加画面で、ユーザー情報やアクセスの種類、パスワードなどの情報を設定します。(必要に応じてグループの作成や設定なども同時に行います)
4.ダウンロードしたインストーラを実行してセットアップし、IAMユーザーをひも付けします。
以上の流れによってWindowsでAWS CLIを使用できるようになります。
なお、AWS CLIの更新バージョンがリリースされた場合には、最新のバージョンを入手するために、上記の手順を繰り返す必要があります。
Mac OSの場合
Mac OSにAWS CLIをインストールは若干手順が異なります。ここではMac OSにバンドルされたインストーラを使用してインストールする方法を紹介します。
1.使用するMacにインストールされているPythonのバージョンを確認し、AWS CLIに対応しているか否か(Python 2 バージョン 2.6.5+ または Python 3 バージョン 3.3+以降の場ジョーンであるか否か)をチェックします。古いバージョンの場合やインストールされていない場合には対応したバージョンのものをインストールします。
2.以下のコマンドを入力して、AWS CLIをインストールすることができます。
$ pip3 install awscli --upgrade --user
AWSアクセスキーの取得
AWS CLIをインストールための最も簡単な方法であるAWS configureコマンド入力時にはAWSアクセスキーの情報が必要です。以下の手順でAWSアクセスキーを確認してください。
1.AWSマネジメントコンソールにログインして、右上の「AWSへようこそ」のプルダウンメニューから、「セキュリティ認証情報」をクリックします。
2.プルダウンメニューの中の「アクセスキー」をクリックして、「新規にアクセスキーを取得」を選択します。
3.自動的にアクセスキーが記載されたCSVファイルがダウンロードされますので、CSVファイルの中を見てアクセスキーを確認してください。
aws-shellを使って作業効率を高める
一つひとつをコマンド入力するのは手間がかかり、また、誤入力により正確な記述ができなかったりすることがあります。コマンドの誤入力があると意図した操作が実行されず、さらに修正箇所の発見のために作業効率が大きくダウンしてしまうおそれがありますが、aws-shellという支援ツールを使用すれば作業効率を高めることができます。
aws-shellとは
aws-shellは、コマンド入力をサポートしてくれるCLIの支援ツールです。aws-shellはAWS CLI初心者にとってはもちろんのこと、上級者にとっても有用なツールです。aws-shellを利用するためには、Pythonとpipをインストールしたうえで、以下のコマンドを実行してaws-shellをインストールします。
$ pip install aws-shell
また、aws-shellを最新のバージョンに更新する際にはpip install --upgradeコマンドを実行してバージョンアップをします。
aws-shellの具体的な機能
aws-shellには以下のような機能が備わっています。コマンド入力のミスを防止し、作業を効率化してくれるメリットがあります。
あいまい検索(ファジー検索)
サジェスト検索
動的インラインドキュメント
OSのシェルコマンドの実行
CLIのコマンドラインオプション
コマンドオプションを利用することで、取得する情報を選択したりフォーマットを変更したりすることができ、必要な情報だけを取得して作業の効率化を図ることができます。
profileオプション
profileオプションは、複数のアカウントを管理する際に使用します。例えば、本番環境のアカウントとテスト環境のアカウントを使い分けているようなときに便利です。
filtersオプション
filtersオプションは、ある特定の条件に合致する数値のみを抽出(フィルタリング)する際に使用します。
例えば、AWS CLIでAWSのサブネットを一覧表示するdescribe-subnetsをそのまま実行した場合には、すべてのサブネットが表示されますが、filtersオプションを使用するとキーワードやフィールドによって抽出する情報を絞り込むことができるため、必要な情報を探しやすくなります。
queryオプション
queryオプションは、describe-subnetsで情報を検索した際に、サービスやリソースの中から欲しい情報だけ出力させることができるオプションです。例えば、出力する情報の中からPrivateIpAddressのみを出力するといった使用方法が可能です。
outputオプション
outputオプションは、出力形式を指定できるコマンドです。JSON、TEXT、Table形式のなかから好みのものを選ぶことができます。コマンドの形式によって見やすさや情報の検出しやすさが異なるので、使い慣れた出力形式を設定しましょう。
regionオプション
regionオプションは、出力するregionを選択することができます。指定しない場合には、デフォルトのregionが指定されています。
endpoint-urlオプション
リクエストを送信するurlを指定します。通常、AWS CLIと指定したサービスによりurlが自動的に生成されるのでエンドポイントurlオプションを設定する必要はありませんが、一部のコマンドではアカウント固有のurlを指定する必要があります。
例えば、Amazon EC2とAmazon VPCの外側にあるAmazon S3を連携させるために通信したいとき、エンドポイントを設定すればS3との通信が可能になります。
versionオプション
リクエストを送信するurlを指定します。通常、AWS CLIと指定したサービスによりurlが自動的に生成されるのでエンドポイントurlオプションを設定する必要はありませんが、一部のコマンドではアカウント固有のurlを指定する必要があります。
例えば、Amazon EC2とAmazon VPCの外側にあるAmazon S3を連携させるために通信したいとき、エンドポイントを設定すればS3との通信が可能になります。
環境変数をセットする
AWS CLIコマンドに環境変数をセット(定義)すれば、フルパス(ファイルの場所を漏れなくすべて記載した情報)でコマンドを指定しなくとも、認証情報と設定ファイルを実行することができます。具体的な環境変数の例を記載すると以下のようになります。
アクセスキーID……AWS_ACCESS_KEY_ID
シークレットアクセスキー……AWS_SECRET_ACCESS_KEY
リージョン……AWS_DEFAULT_REGION
出力……AWS_DEFAULT_OUTPUT
プロファイル……AWS_DEFAULT_PROFILE
コマンドを実行する前に環境変数をセットすれば、コマンドオプションを使用して認証情報や設定ファイルを使用しなくてもコマンドが実行できるため、操作が非常にスムーズになります。すでに認証情報や設定ファイルが作成されている場合でも、環境変数が優先されます。
まとめ
AWS CLIを使って、AWSのサービスをコマンド入力で使用できるようになると、業務効率の向上や人的ミスの軽減などが期待できます。操作手順のマニュアル作成の際や担当引き継ぎの際にもコマンド情報を残しておけばすむので非常にスムーズです。また、AWSはAPIと相性も良く、プログラミング言語で作成したスクリプトにより更なる自動化も期待できます。
AWS CLIには自動化をさらに助けてくれるオプションや、入力補助ツールもありますので、積極的に活用し管理の効率性を高めていきましょう。
24時間365日対応可能なクラウド監視・運用代行で、あなたをシステム運用から解放します!
クラウド運用に興味がある人に読んで欲しいコラム:
RECOMMEND
その他のコラム
無料ダウンロード
自社のクラウド導入に必要な知識、ポイントを
この1冊に総まとめ!
あなたはクラウド化の
何の情報を知りたいですか?
- そもそも自社は本当にクラウド化すべき?オンプレとクラウドの違いは?
- 【AWS・Azure・Google Cloud】
どれが自社に最もマッチするの? - 情シス担当者の負荷を減らしてコストを軽減するクラウド化のポイントは?
- 自社のクラウド導入を実現するまでの具体的な流れ・検討する順番は?
初めての自社クラウド導入、
わからないことが多く困ってしまいますよね。
NTT東日本では
そんなあなたにクラウド導入に必要な情報を
1冊の冊子にまとめました!
クラウド化のポイントを知らずに導入を進めると、以下のような事になってしまうことも・・・
- システムインフラの維持にかかるトータルコストがあまり変わらない。。
- 情シス担当者の負担が減らない。。
- セキュリティ性・速度など、クラウド期待する効果を十分に享受できない。。
理想的なクラウド環境を実現するためにも、
最低限の4つのポイントを
抑えておきたいところです。
-
そもそも”クラウド化”とは?
その本質的なメリット・デメリット - 自社にとって
最適なクラウド環境構築のポイント - コストを抑えるための
具体的なコツ - 既存環境からスムーズにクラウド化を
実現するためのロードマップ
など、この1冊だけで自社のクラウド化のポイントが簡単に理解できます。
またNTT東日本でクラウド化を実現し
問題を解決した事例や、
導入サポートサービスも掲載しているので、
ぜひダウンロードして読んでみてください。
面倒でお困りのあなたへ
クラウドのご相談できます!
無料オンライン相談窓口
NTT東日本なら貴社のクラウド導入設計から
ネットワーク環境構築・セキュリティ・運用まで
”ワンストップ支援”が可能です!
NTT東日本が選ばれる5つの理由
- クラウド導入を
0からワンストップでサポート可能! - 全体最適におけるコスト効率・業務効率の改善を
中立的にご提案 - クラウド環境に問題がないか、
第3者目線でチェック
してもらいたい - 安心の24時間・365日の対応・保守
- NTT東日本が保有する豊富なサービスの組み合わせで
”課題解決”と”コスト軽減”を両立
特に以下に当てはまる方はお気軽に
ご相談ください。
- さまざまな種類やクラウド提供事業者があってどれが自社に適切かわからない
- オンプレミスのままがよいのか、クラウド移行すべきなのか、迷っている
- オンプレミスとクラウド移行した際のコスト比較を行いたい
- AWSとAzure、どちらのクラウドが自社に適切かわからない
- クラウド環境に問題がないか、第3者目線でチェックしてもらいたい
- クラウド利用中、ネットワークの速度が遅くて業務に支障がでている
クラウドを熟知するプロが、クラウド導入におけるお客さまのLAN 環境や接続ネットワーク、
クラウドサービスまでトータルにお客さまのお悩みや課題の解決をサポートします。
相談無料!プロが中立的にアドバイスいたします
クラウド・AWS・Azureでお困りの方はお気軽にご相談ください。