AWS CLIとは?
AWSの各種サービスをコマンドで操作できるOSSの統合サービスです。AWS CLIのサブコマンドはAWS APIに追従しています。
用途
s3用。sync等の便利な機能(High-Level API)が搭載されています。
メリット
- CUIでの操作になるので迅速な操作が可能
- スクリプトによる作業の自動化が可能
必要なもの
- アクセスキー
- シークレットキー
IAMの設定
IAMユーザー・IAMロールを用意する。
以下2つのどちらかでアクセスします。いずれの方法にしても、認証は必ず行われるためセキュアです。
- IAMユーザーを作成してアクセスキー、シークレットキーを使ってアクセスする方法
- EC2インスタンスに、IAMロールを付与する方法
IAMユーザー・IAMロールにAWSリソースを操作する権限をIAMポリシーで付与する。
AWS CLIのインストール
前提条件
Python3系以上
セットアップ方法
3種類あります。
- pip(仮想環境なし)を利用したインストール
- pip(仮想環境あり)を利用したインストール
- インストーラを利用したインストール
認証情報の初期設定
1 |
aws configure |
下記の設定値が出てくるので設定をします。
1 2 3 4 |
AWS Access Key ID [None]: xxxxxxxxxx(IAMのアクセスキー) AWS Secret Access Key [None]: xxxxxxxxxx(IAMのシークレットキー) Default region name [None]: ap-northeast-1 Default output format [None]: json |
IAMの設定手順でやっていたアクセスキーやシークレットキー、及び、デフォルトリージョン、出力形式を指定します。内容は下記のそれぞれの場所に保存されます。
1 2 3 4 5 |
#アクセスキー、シークレットキー保存 ~/.aws/credentials #デフォルトリージョン、出力形式を保存 ~/.aws/config |
下記コマンドでIAMグループを確認できます。
1 |
aws iam list-users |
別の方法
- EC2のAmazon LinuxにはデフォルトでAWS CLIがインストールされています。EC2にロールを付与してアクセスします。
- Cloud9でもデフォルトでAWS CLIが使えます。(一部権限が付与されていないので必要に応じて付与します。)
コマンドの基本系
1 |
aws [オプション] [コマンド] [サブコマンド] [パラメータ] |
オプション
- AWSコマンド全体共通のパラメータ
- --から始まります。
--profileオプション
設定ファイル(プロファイル)を指定する事で環境ごとの設定の切り替えが可能です。設定ファイル(~/.aws配下)に事前に設定をしましょう。
--regionオプション
リージョンを指定します。設定ファイルにリージョンを指定していたとしてもこちらの方が優先されます。
--outputオプション
コマンドの実行結果の出力形式を指定できます。json、text、tableの3つから選ぶことが可能です。
--queryオプション
AWSクライアント側で出力結果をフィルタできるオプションです。全てのサブコマンドで対応しています。
--filterオプション
AWSサーバーサイドで絞り込みを行えるオプションです。抽出件数が多い場合のレスポンス改善に使えます。一部のサブコマンドか対応していません。
コマンド
サービス名(ec2、s3等)、ただしconfigureに関しては例外となります。
サブコマンド
サービスごとのコマンド
help
各コマンドの詳細を確認できます。非常に重要なコマンドです。
wait
特定の条件が満たされるまで実行を待機します。(例えば、特定のインスタンスが起動するまで待機するなど)、タイムアウトが発生した場合は255のリターンコードが返されます。
パラメータ
- コマンドごとのパラメータ
- --から始まります。
例
東京リージョンのインスタンスを最大2つ表示する。
1 |
aws --region ap-northeast-1 ec2 describe-instances --max-items 2 |
環境別設定
1 2 3 4 5 6 7 8 |
[default] デフォルトで使用される特別なプロファイルです。 [profile A] [profile B] [profile C] |
環境別に設定する。
prodとdevは例です。
本番環境
1 |
aws --profile prod configure |
開発環境
1 |
aws --profile dev configure |
実行時に環境を指定して実行
1 |
aws --profile prod ec2 など |
他のアカウントのリソースにアクセス
- IAMでロールを作成
- ロールの新しいプロファイルを~/.aws/configファイルに追加
- プロファイルを切り替えてAWS CLIを実行する。
Cloud9とは?
オープンソースのクラウド上でプログラミングが行えるWebサービスで、RubyやPHPの開発用のブラウザエディタです。
特徴
自身のOSに依存することなく開発することができるのが特徴の一つです。例えば、会社での開発がWindowsで家でMacを使った開発をしている場合でも特に問題なく開発を進めることが可能です。
権限
AWS Managed Temporary Credentials(AMTC)
デフォルトでログインしたAWSユーザーの権限で自動的に認証権限が設定される仕組みになっている。この仕組みのおかげでCloud9のEC2の認証設定が不要になるだけでなく、Cloud9側がクレデンシャル情報を定期更新してくれる。
仕様
- Cloud9の実体はEC2インスタンス
- デフォルトでは10GBのディスクしかアタッチされていないので注意。(EBS)
- OSとしてはLinux(Amazon Linux/Ubuntu)が使われています。
- パッケージマネージャーとしてRVMが標準でインストールされています。
- EC2なので、Cloud9上で編集するソースコードのバックアップやインスタンスのアップデートはユーザー自身ですべきとAWSに述べられています。
設定
- 30分利用しなかったら自動OFFにする設定がデフォルト
料金
無料枠が終わった後の料金体系の目安としては月に90時間利用した場合は月200円と比較的リーゾナブルになっている。
機能
Herokuとの連携機能もあります。(Heroku-CLIを使う)
この記事へのコメントはありません。