AWS CLIは、AWSのサービスをコマンドラインから操作し、管理するためのツールです。
このツールはプラットフォームや開発言語の制限がなく、Linux、Mac、Windowsなど様々なOSで利用できます。
シェルスクリプトのようなプログラミング言語と組み合わせることで、AWSの作業を自動化できる点は非常に魅力的です。
ここからは3回に記事を分け、AWS CLIとS3、LinuxのCrontabを用いて、Webサーバー(Dockerのコンテナ)を自動でバックアップするシステムを作っていきます。
AWS CLIを使う1番のメリットは、 GUIで行なっていた操作を自動化できる 点です。
↓こちらの記事では、AWSの画面をみながらボタンをぽちぽちしてインフラを構築しました。
AmazonEC2とVPCでネットワークとサーバーを構築しよう
GUIでの操作は気軽ですが、人が行う作業である以上ヒューマンエラーは起こり得ます。
テンプレート化したインフラ構築作業であれば、その作業に該当するAWS CLIのコマンドをシェルスクリプトなどでプログラミング処理したほうが、人力で行うよりも効率的です。
AWS CLIを利用するシーンとしては下記の2つが考えられます。
専用のIAMユーザーを作成し、アクセスキーの発行が必要
必要な権限を有したIAMロールを作成し、EC2インスタンスにアタッチする(推奨)
またはアクセスキーを利用する
EC2インスタンスから利用する方法は2種類ありますが、IAMロールを作成してインスタンスへ割り当てる方法が推奨されています。
その理由は、アクセスキーが万が一流出した場合、外部から不正利用される可能性があるためです。
ここではIAMロールをEC2インスタンスへアタッチするやり方で設定を進めます。
1.AWSサービスのIAMダッシュボードから、 ロールの作成 をクリックします。
2.ロールを割り当てるサービスを選択します。 EC2 を選んで次へ進んでください。
3.ポリシーを設定します。S3のファイルを色々と操作したいので、 S3のフルアクセス権限 にチェックを入れてください。また、動作確認のため EC2とVPCの読み取り専用の権限 も付与しましょう。
4.ロールに名前をつけます。パッと見てどのような役割のロールかわかる名前をつけると良いでしょう。
5.ロールが作成されました。
次に、作成したロールをインスタンスへ割り当てます。
1.EC2のダッシュボードへいき、アクションを実行します。
2.作成したロールを選択します。
3.これでアタッチ完了です。
EC2インスタンスへsshし、AWS CLIのコンフィグを設定します。
1 2 3 |
ssh -i "~/.ssh/HOGEHOGE" -p xxxxx USER@FQDN sudo su - aws configure |
~
続いて必要な情報を入力します。
今回はアクセスキーを使わないのでそれらの項目は空欄でOKです。
出力形式は json が見やすいのでおすすめです。
設定が完了すると、 ~/.aws/ ディレクトリにコンフィグファイルが作られます。後から設定を修正する場合はこのファイルの情報を書き換えます。
1 |
cat ~/.aws/config |
~
簡単なAWS CLIコマンドを打ち、動作するか確認しましょう。
1 |
aws ec2 describe-vpcs |
このようにjson形式で結果が出力されます。
次のコマンドを実行し、得られた結果とAWSのGUIの情報を見比べてください。
プロパティ名と値はどのように対応しているでしょうか。
1 |
aws ec2 describe-instances |
AWS CLIの導入方法と基本的な使い方についてまとめました。
次回はS3のバケットを作成し、AWS CLIとの連携を試しましょう。
>>AWS CLIを使ってEC2のファイルをS3へアップロードしよう
社員の成長を導きながら、AIやビッグデータなどの最先端技術をプロジェクトに活用していくことが私たちのビジョンです。Avintonの充実した技術研修でスキルアップを図り、あなたのキャリア目標を一緒に達成しませんか?