■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 分