こんにちは!
クラウドエンジニアの湖山です。
今回はタイトルの通り、AWS CLI を使っていくための導入編です。
AWS CLI って何?何ができるの?どうやって使うの?といった方にも分かりやすいようまとめました。
AWS CLIとは?
概要
AWS Command Line Interface (通称:AWS CLI) は、AWSサービスをコマンドラインで管理するためのオープンソースツールです。
AWS CLIは、任意のターミナルプログラムからコマンド実行でき、ブラウザベースのAWSマネジメントコンソールで提供される機能と同等の処理が可能です。
AWS CLIを使う上でのメリット
AWSのリソースを操作するときは、AWSマネジメントコンソールを利用した方が直感的な操作が可能で分かりやすいにも関わらず、何故AWS CLIが用意されているのでしょうか?
AWS CLIを使う上でのメリットを確認していきましょう。
メンテナンスフリー
ビジネス利用するときにスクリーンショットを貼り付けたドキュメントを残すことが多いが、デザイン変更が発生すると可読性は著しく低下します。そのため、アップデートがある度にメンテナンスが欠かせません。
その点、AWS CLIを使ったコマンドラインとして残しておけばそのような心配はなくなります。
生産性向上
コマンドラインを機械的に組み立てるようプログラミングしておくことで操作の手間が大幅にカットされるだけではなく、ヒューマンエラーの防止にもなります。
未来の時間を削減することが生産性向上にとっては非常に重要な観点です。
AWSリソース連携
AWSリソース間の連携を行うサービスやツール作成時に必須となります。
Lambdaと組み合わせることで非常に柔軟な操作が可能となり、あとはアイデア次第でいろいろな場面で活躍することができるでしょう。
AWS CLIの導入手順
事前準備
AWS CLI を利用するための手順は以下の2通りあります。
- 専用のIAMロールを作成し、EC2インスタンスへアタッチする
- 専用のIAMユーザを作成し、アクセスキーを利用する
今回は、標準的に使用される②のアクセスキーを利用する手順で進めていきます。
IAMユーザー準備
IAMユーザの作成画面を開き、「AWSアクセスの種類を選択」で「プログラムによるアクセス」にチェックを入れます。
これによってAWS CLIからアクセスを行うためのキーが発行されます。
アクセス許可の設定を行います。
今回はテスト用ということでAdministratorを割り振っていますが、本来は適切なアクセス許可を設定したグループを選択することが望ましいです。
ここは任意です。
そのまま次へ行っても大丈夫です。
確認画面なので問題がなければ次へ進みます。
IAMユーザが作成されました。
「.csvのダウンロード」または「アクセスキーIDとシークレットアクセスキー」からIAMユーザの認証情報を必ず控えておいてください。
これで事前準備は完了です。
AWS CLIのインストール
Linux
AWS CLI を Linux にインストールするには、コマンドラインから以下の手順を実行します。(コピペでOK)
curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"
unzip awscliv2.zip
sudo ./aws/install
以下のコマンドでバージョンが表示されるとインストール完了です。
aws --version
Windows
AWS CLI を Windows にインストールする手順です。
1.Windows (64 ビット) 用の インストール媒体 をダウンロードします。
2.ダウンロードした「AWSCLIV2.msi」を実行し、画面に従ってインストールします。
3.コマンドプロンプトを起動し、「aws –version」コマンドでバージョンが表示されるとインストール完了です。
macOS
$ which aws
/usr/local/bin/aws
$ aws --version
aws-cli/2.0.6 Python/3.7.4 Darwin/18.7.0 botocore/2.0.0
Dockerイメージ
AWS CLI を Docker上で使用するための手順です。
docker run --rm -it amazon/aws-cli --version
初回実行時に Docker イメージがコンピュータにダウンロードされます。
しばらくダウンロードが続き、最後にバージョンが表示されたら完了です。
AWS CLIの初期設定
次に AWS CLI の初期設定を行います。
インストール直後はコマンドを実行しても認証情報が設定されていない旨のエラーメッセージが表示されます。
$ aws s3 ls
Unable to locate credentials. You can configure credentials by running "aws configure".
AWS CLI の初期設定を簡単に行うには「aws configure」コマンドが便利です。
事前準備で用意したアクセスキーIDとシークレットアクセスキーを設定していきます。
また、デフォルトで利用するリージョンと出力形式も併せて設定しておくことをおすすめします。
$ aws configure
AWS Access Key ID [None]: AKIA**************
AWS Secret Access Key [None]: *******************
Default region name [None]: ap-northeast-1
Default output format [None]: json
AWS Access Key ID | アクセスキーID |
AWS Secret Access Key | シークレットアクセスキー |
Default region name | デフォルトリージョン |
Default output format | デフォルト出力形式 (json, yaml, text, table) |
これで AWS CLI を利用する準備は整いました。
試しに、以下のコマンドを実行すると S3バケット の一覧が取得できるようになっているはずです。
$ aws s3 ls
補足事項
AWS CLIのバージョン
AWS CLI には 2 つのバージョンがあります。
・バージョン 2.x – 本番稼働用環境での使用を目的とした最新バージョン
・バージョン 1.x – 下位互換性のための古いバージョン
バージョン2には、バージョン1から “重要な変更” が含まれている為、特別な理由がない限り「バージョン 2.x」を利用するようにしましょう。
※重要な変更 – AWS CLI バージョン 1 からバージョン 2 移行
セキュリティ
AWS では、クラウドのセキュリティが最優先事項です。
AWS CLI で使用される認証情報は、プレーンテキストファイルに保存され、暗号化されていません。
「$HOME/.aws/credentials」には、AWS リソースにアクセスするために必要な長期の認証情報が保存されています。これには、アクセスキー ID とシークレットアクセスキーも含まれています。
そのため、「$HOME/.aws」配下のファイルに対して、許可されたユーザのみアクセスできるように設定しておくことが望ましいです。
Cloud9が便利
AWS のサービスの中に Cloud9 というものがあります。
簡単に利用可能なクラウド上の統合開発環境(IDE)であり、AWS CLIがプリインストールされています。
アクセスキー流出のリスクが無く、初期設定も不要であるので非常に便利です。
以下の記事で Cloud9 について詳しく説明しているので興味がある方は是非ご確認ください。
さいごに
今回、概要~導入手順までをご説明しました。
- AWS CLI とは、AWSリソースの管理をコマンドベースで実行できるツール
- GUI操作はデザイン変更により手順が変わる可能性があるが、AWS CLIなら変更されることがほぼないことが強み
- プログラムを作成しておけば正確かつ迅速な作業を可能とする
- AWS間を連携するサービス・ツール作成に使用される
- アクセスキーの管理には十分気を付けること
改めて、AWS CLI についてまとめていくことでこんなオプションあったんだと新しい気付きもありました。
今後、さらにAWSを利用したサービスは普及していくと思われます。
ビジネスで利用していく場合は必須スキルとなってくるのでしっかりと押さえておきましょう!