■jqとawscliを導入してみる。 python3.5.3を使うので、異常時にはpython2.7が呼び出されていないか確認する。 $ lsb_release -d Description: Debian GNU/Linux 9.5 (stretch) $ apt-file search /bin/jq jq: /usr/bin/jq $ sudo apt-get install -y jq $ jq --version jq-1.5-1-a5b5cbe $ apt-cache search awscli awscli - Universal Command Line Environment for AWS $ sudo apt-get install -y awscli $ python --version Python 2.7.13 $ whereis -b python | tr ' ' '\n' | grep bin /usr/bin/python2.7 /usr/bin/python3.5m-config /usr/bin/python3.5 /usr/bin/python3.5-config /usr/bin/python2.6 /usr/bin/python2.7-config /usr/bin/python /usr/bin/python3.5m $ python3.5 --version Python 3.5.3 $ aws --version aws-cli/1.11.13 Python/3.5.3 Linux/4.9.0-8-amd64 botocore/1.4.70 ■AWSコンソールに接続出来るように設定する。 $ aws configure help | grep -B 1 -A 3 " accesskey" $ aws configure AWS Access Key ID [None]: accesskey AWS Secret Access Key [None]: secretkey Default region name [None]: us-west-2 Default output format [None]: $ aws configure list Name Value Type Location ---- ----- ---- -------- profile <not set> None None access_key ****************XXXX shared-credentials-file secret_key ****************ZZZZ shared-credentials-file region us-east-1 config-file ~/.aws/config ■awsのサブコマンドのために、TAB補完を有効にする。 $ complete -C '/usr/bin/aws_completer' aws $ aws [tab] acm deploy firehose route53domains apigateway devicefarm gamelift s3 application-autoscaling directconnect glacier s3api autoscaling discovery iam sdb budgets dms importexport servicecatalog cloudformation ds inspector ses cloudfront dynamodb iot sms cloudhsm dynamodbstreams iot-data snowball cloudsearch ec2 kinesis sns cloudsearchdomain ecr kinesisanalytics sqs cloudtrail ecs kms ssm cloudwatch efs lambda storagegateway codecommit elasticache logs sts codepipeline elasticbeanstalk machinelearning support cognito-identity elastictranscoder marketplacecommerceanalytics swf cognito-idp elb meteringmarketplace waf cognito-sync elbv2 opsworks workspaces configservice emr rds configure es redshift datapipeline events route53 ■awsコマンドをプロキシ環境で使う場合は以下の設定を追加。 $ echo "export NO_PROXY=169.254.169.254" | sudo tee -a /etc/profile.d/proxy.sh export NO_PROXY=169.254.169.254 $ export NO_PROXY=169.254.169.254 $ echo $NO_PROXY 169.254.169.254 ■例えばプロキシログへの通信量を集計してみる。 UserAgentは空「"-"」になる。 $ sudo awk '(/.amazonaws.com/ && $12 ~ /\042-\042/){a[$7]+=$10}END{for(n in a){print a[n],n}}' /var/log/squid/access.log 3619 mybucket.s3.amazonaws.com:443 5996 events.us-east-1.amazonaws.com:443 38362779 ec2.us-east-1.amazonaws.com:443 1752721 iam.amazonaws.com:443 5902 apigateway.us-east-1.amazonaws.com:443 ■リージョンの一覧を取得 $ aws ec2 describe-regions | awk '/RegionName/' "RegionName": "ap-south-1" "RegionName": "eu-west-3" "RegionName": "eu-west-2" "RegionName": "eu-west-1" "RegionName": "ap-northeast-2" "RegionName": "ap-northeast-1" "RegionName": "sa-east-1" "RegionName": "ca-central-1" "RegionName": "ap-southeast-1" "RegionName": "ap-southeast-2" "RegionName": "eu-central-1" "RegionName": "us-east-1" "RegionName": "us-east-2" "RegionName": "us-west-1" "RegionName": "us-west-2" $ aws ec2 describe-regions | jq -r '.Regions[] | .RegionName' ap-south-1 eu-west-3 eu-west-2 eu-west-1 ap-northeast-2 ap-northeast-1 sa-east-1 ca-central-1 ap-southeast-1 ap-southeast-2 eu-central-1 us-east-1 us-east-2 us-west-1 us-west-2 ■グループ、ユーザのリスト表示 コンソールから[AdministratorAccess]が許可されているグループに所属するユーザが出来て入ればOK。 $ aws iam list-groups | awk '/Groups/{print "ok"}' ok $ aws iam list-users | awk '/Users/{print "ok"}' ok $ aws iam list-groups | jq -r '.Groups[] | .CreateDate,.Path' 2018-09-16T13:18:54Z / $ aws iam list-users | jq -r '.Users[] | .CreateDate,.Path' 2018-09-16T11:36:09Z / ■グループに紐付けるポリシーの表示 $ grep output .aws/config output = text $ aws iam list-policies --scope AWS | awk '/AdministratorAccess/{print $2}' arn:aws:iam::aws:policy/AdministratorAccess $ grep output .aws/config output = json $ aws iam list-policies --scope AWS | jq -r '.Policies[] | select(.PolicyName == "AdministratorAccess") | .Arn' arn:aws:iam::aws:policy/AdministratorAccess ■Amazon Linux AMIの検索を作成日時とともに一覧してみる。 Linux AMI の検索 https://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/finding-an-ami.html $ aws ec2 describe-images --owners amazon \ --filters 'Name=name,Values=amzn-???-hvm-????.??.?.x86_64-gp2' 'Name=state,Values=available' | \ jq -r '.Images[] | [ .Name , .CreationDate ] | @csv' "amzn-ami-hvm-2016.03.0.x86_64-gp2","2016-03-16T23:48:08.000Z" "amzn-ami-hvm-2015.03.1.x86_64-gp2","2015-08-18T18:20:06.000Z" "amzn-ami-hvm-2015.03.0.x86_64-gp2","2015-03-18T16:29:38.000Z" "amzn-ami-hvm-2014.09.0.x86_64-gp2","2014-09-18T22:13:28.000Z" "amzn-ami-hvm-2015.09.1.x86_64-gp2","2015-10-29T18:17:23.000Z" "amzn-ami-hvm-2016.03.3.x86_64-gp2","2016-06-22T06:10:37.000Z" "amzn-ami-hvm-2014.09.1.x86_64-gp2","2014-10-08T02:07:39.000Z" "amzn-ami-hvm-2015.09.2.x86_64-gp2","2016-02-10T23:44:07.000Z" "amzn-ami-hvm-2016.03.2.x86_64-gp2","2016-06-04T00:21:51.000Z" "amzn-ami-hvm-2014.03.2.x86_64-gp2","2014-06-13T16:15:39.000Z" "amzn-ami-hvm-2015.09.0.x86_64-gp2","2015-09-16T17:00:21.000Z" "amzn-ami-hvm-2014.09.2.x86_64-gp2","2015-01-27T23:24:00.000Z" "amzn-ami-hvm-2016.03.1.x86_64-gp2","2016-04-30T00:59:44.000Z" ■AWS におけるシステム構築のベストプラクティス • スケーラビリティを確保する • 環境を自動化する • 使い捨て可能なリソースを使用する • コンポーネントを疎結合化する • サーバーではなくサービスで設計する • 適切なデータベースソリューションを選択する • 単一障害点をなくす • コストを最適化する • キャッシュを使用する • インフラストラクチャのすべての場所でセキュリティを確保する ■アカウントを作成してコンソールにログインする。 はじめてのアマゾンクラウド①[Amazon Web Services(AWS)のアカウントを開設する] https://www.slideshare.net/kentamagawa/3aws ■以下で料金を確認する。 AWS 無料利用枠 https://aws.amazon.com/jp/free/ ■firefox+html5(推奨環境)を使用した学習 ご利用開始のためのリソースセンター https://aws.amazon.com/jp/getting-started/ $ w3m -dump https://aws.amazon.com/jp/getting-started/ | \ awk 'BEGIN{f=0}{if($0 ~ /無料のデジタルト レーニング/){f+=1}else{if(f>0 && f<15 && $0 !~ /━━/){print $0;f+=1}}}' AWS の基礎を学んだり、専門知識を深めたりする必要がありますか? 無料のデジタルト レーニングでは、いつでもどこでも、自分のやり方で AWS クラウドのスキルを学習でき ます。 1. AWS クラウドプラクティショナーの基礎知識 2. AWS Machine Learning サービスの概要 3. AWS 責任共有モデル 4. AWS のコンピューティングサービスの概要 5. Amazon EC2 のご紹介 6. AWS IAM を使用した認証と許可 7. AWS のデータベースサービスの概要 8. AWS の分析サービスの概要 9. AWS のアプリケーションサービスの概要 10. AWS の開発者用ツールサービスの概要 ■1. AWS クラウドプラクティショナーの基礎知識 AWS Cloud Practitioner Essentials: はじめに 5 分 AWS Cloud Concepts Essentials 30 分 クラウドの紹介 AWS クラウドの紹介 AWS Core Services Essentials 3 時間 サービスとカテゴリの概要 AWS グローバルインフラストラクチャの紹介 Amazon VPC の紹介 セキュリティグループの紹介 コンピューティングサービスの紹介 AWS ストレージサービスの紹介 AWS データベースソリューションの紹介 AWS Security Essentials 1 時間 AWS セキュリティの紹介 AWS の責任共有モデル AWS のアクセスコントロールとアクセス管理 AWS のセキュリティコンプライアンスプログラム AWS のセキュリティリソース AWS Architecting Essentials 45 分 Well-Architected Framework の紹介 リファレンスアーキテクチャ: 耐障害性と高可用性 リファレンスアーキテクチャ: ウェブホスティング AWS Pricing and Support Essentials 45 分 料金の基礎 料金に関する詳細情報 TCO 計算ツールの概要 AWS サポートプランの概要 AWS Cloud Practitioner Essentials: 補足資料 1 時間 AWS Cloud Practitioner Essentials のモジュールで学習した概念の理解を深めるための補足動画 AWS Cloud Practitioner Essentials: コースのまとめ 5 分