トラブルシューティング

An error occurred (RequestTimeTooSkewed) when calling the ListBuckets operation: The difference between the request time and the current time is too large.時間がずれているとき

IAMユーザーの作成とキーの配布

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

aws-cliのインストール

インストール

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

コード補間

complete -C aws_completer aws

設定

aws configure [--profile=任意の名前]
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]:

各種操作

route53

まずはホストゾーン一覧にてIDを取得するべし。

目的コマンドパイプでjq絞り
ホストゾーン一覧aws route53 list-hosted-zonesjq -c -r '.HostedZones[].Id'
登録内容一覧aws route53 list-resource-record-sets --hosted-zone-idjq -c -r '.ResourceRecordSets[].Name'

s3

s3のバケット名に.を含むとaws s3 cpが失敗するバグに悩み中。

バケット一覧aws s3 ls
ローカルファイルをs3へaws s3 cp pukiwiki-1_5_0_utf8.zip s3://バケット名/パス/
s3ファイルをローカルへaws s3 cp s3://バケット名/パス/ファイル名 ローカルファイル名
ミラーリングs3からローカルへaws s3 sync s3://バケット名/パス /var/tmp/s3temp/
ミラーリングローカルからs3へaws s3 sync /var/tmp/s3_temp s3://バケット名/パス

s3copyでワイルドカードを利用する。

ワイルドカードはフルパスでの一致なので注意。--dryrunオプションをつけて実行結果を確認すべし。

aws s3 cp --exclude="*" --include "*201601*" s3://バケット名/パス名 ローカルフォルダ --dryrun --recursive

また--exclude="*"は意味がないように見えるかもしれないがこれを付けないとincludeが機能しなかった。また該当ファイルがパス以下のディレクトリに存在する場合は--recursiveを付けておく。

EC2

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

注意点

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

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

実際のコマンド

#--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を組み合わせて結果を絞る。

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

boto3

Pythonライブラリ。Lambdaでもansibleでも利用している。

インストールとキーの設定

sudo pip install boto3

デフォルトではdefaultプロファイルを使うので内部でsessionオプジェクトを作成する

       session = Session(profile_name=profile)
       sqs = session.client('sqs')
       # aws
       sqs = boto3.client('sqs')

トップ   編集 凍結 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2022-10-14 (金) 13:16:53