AWS

AWS CLI を使ってみよう! 【導入編】

CLI

こんにちは!
クラウドエンジニアの湖山です。

今回はタイトルの通り、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マネジメントコンソールは操作が簡単ではあるが、

デザインや項目が変わる可能性があるため手順書には向きません。

生産性向上

コマンドラインを機械的に組み立てるようプログラミングしておくことで操作の手間が大幅にカットされるだけではなく、ヒューマンエラーの防止にもなります。

未来の時間を削減することが生産性向上にとっては非常に重要な観点です。

自動でインフラ環境構築を行うCloudFormationで対応しきれない設定項目がある場合、AWS CLI でカバーすることも可能です。

AWSリソース連携

AWSリソース間の連携を行うサービスやツール作成時に必須となります。

Lambdaと組み合わせることで非常に柔軟な操作が可能となり、あとはアイデア次第でいろいろな場面で活躍することができるでしょう。

AWS CLIの導入手順

事前準備

AWS CLI を利用するための手順は以下の2通りあります。

  1. 専用のIAMロールを作成し、EC2インスタンスへアタッチする
  2. 専用の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

AWS CLI を macOS にインストールする手順です。

1.macOS 用の インストール媒体 をダウンロードします。

2.ダウンロードした「AWSCLIV2.pkg」を実行し、画面に従ってインストールします。

3.以下のコマンドでパスとバージョンが表示されるとインストール完了です。

$ 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-Cloud9
AWS Cloud9の使い方を解説!最先端クラウド統合開発環境(IDE)! こんにちは!みなさんはIDEは何を使用していますか?Eclipse・VSCode・Android Studioなど様々な種類が存在しま...

さいごに

今回、概要~導入手順までをご説明しました。

AWS CLI まとめ
  • AWS CLI とは、AWSリソースの管理をコマンドベースで実行できるツール
  • GUI操作はデザイン変更により手順が変わる可能性があるが、AWS CLIなら変更されることがほぼないことが強み
  • プログラムを作成しておけば正確かつ迅速な作業を可能とする
  • AWS間を連携するサービス・ツール作成に使用される
  • アクセスキーの管理には十分気を付けること

改めて、AWS CLI についてまとめていくことでこんなオプションあったんだと新しい気付きもありました。

今後、さらにAWSを利用したサービスは普及していくと思われます。
ビジネスで利用していく場合は必須スキルとなってくるのでしっかりと押さえておきましょう!

CLI
AWS CLI を使ってみよう! 【実践編】 こんにちは!クラウドエンジニアの湖山です。 今回は「AWS CLI を使ってみよう!」の第二弾の【実践編】となります。前回の記事...
ABOUT ME
湖山 貴裕
はじめまして。 二児のお父さんプログラマーです。最近キャンプにも興味あり。夏には庭でキャンプしようともくろみ中。ボドゲ好き。チョコ好き。茶道経験者。 2012年大学卒業→IT企業就職 Java,VB.NET, C#, javascript等の企業向けシステム開発/主にバックエンドを担当/AWSを少しかじる→2020年フリーランスエンジニアへ転身 広島でAWS案件にて楽しく活動中