-AWSをコマンドから管理する。cloudwatchにはJavaのツールもあるようだが、シンプルに実行できるPython版CLIで実施

*IAMユーザーの作成とキーの配布 [#q2e8a6c9]

ROOTアカウントをそのまま使うのは危険なので、適切な権限を与える。セキュリティキーはコンソールから簡単に再発行できるので、定期的に使い捨てるように!

*aws-cliのインストール [#gca3e532]

**インストール [#z8e72655]

-EPELリポジトリをインストールしてから、python-pipインストール

 rpm -ivh http://ftp.riken.jp/Linux/fedora/epel/6/x86_64/epel-release-6-8.noarch.rpm
 yum --enablerepo=epel search python-pip
 pip install awscli

**コード補間 [#p5802613]

-以下のコマンドを打ち込むとコード補間が可能になる。

 complete -C aws_completer aws

**設定 [#m8f86b58]

-利用開始前にIAMのキーとパスワードと地域を設定する。デフォルトのフォーマットはJSONなのでjqと合わせると操作しやすい。

aws configure

 aws configure
 AWS Access Key ID [None]: IAMのアクセスキー
 AWS Secret Access Key [None]: IAMのアクセスキー
 Default region name [None]: ap-northeast-1
 Default output format [None]:

*各種操作 [#c519585a]

**s3 [#yce0458b]

***copy [#o74f1bfa]

|ローカルファイルをs3へ|aws s3 cp pukiwiki-1_5_0_utf8.zip s3://バケット名/パス/|
|s3ファイルをローカルへ|aws s3 cp s3://バケット名/パス/ファイル名 ローカルファイル名|



**EC2 [#g4e840ae]

|aws ec2 describe-instances|一覧|
|aws ec2 start-instances --instance-ids インスタンスID|起動|
|aws ec2 stop-instances --instance-ids インスタンスID|終了|
|aws ec2 terminate-instances --instance-ids インスタンスID|削除までできてしまう!|

オプションで絞ることが可能。running or stopped or terminatedなど

 aws ec2 describe-instances --filter "Name=instance-state-name,Values=running"
 aws ec2 describe-instances --instance-ids インスタンスID

**Snapshot [#e7fe5692]

***注意点 [#u1221d8f]

rootデバイスは停止必須とのこと

http://docs.aws.amazon.com/cli/latest/reference/ec2/create-snapshot.html

***実際のコマンド [#afc130a8]

 #--dry-runを付けて権限などの確認をしてから実施。
 aws ec2 create-snapshot --volume-id ボリュームID --description "test from cli"
 aws ec2 create-snapshot --volume-id ボリュームID --description "test from cli" --dry-run

 #snapshot-idを与えて確認
 aws ec2 describe-snapshots --snapshot-ids=上記スナップショットID

 #削除
 aws ec2 delete-snapshot --snapshot-id=snap-47b67c78


**JQを組み合わせて結果を絞る。 [#a5e0459c]

-インストール

 sudo yum install jq

-絞り込み。JSONのフォーマットを知らないとダメだが、JQで絞ると後続に渡しやすい。InstanceIdの部分をPbulicIpAddressなどに変えれば任意の情報を得られるぞ

 aws ec2 describe-instances | jq '.Reservations[].Instances[].InstanceId'

-複数項目を並べる。

 aws ec2 describe-instances | jq '.Reservations[].Instances[] | {InstanceId, InstanceType, PublicIpAddress, PrivateIpAddress}'


トップ   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS