~コード化の開始から頻出パターンまで~ · 大村幸敬 amazon web services...
TRANSCRIPT
![Page 1: ~コード化の開始から頻出パターンまで~ · 大村幸敬 Amazon Web Services ソリューションアーキテクト ~コード化の開始から頻出パターンまで~](https://reader034.vdocuments.pub/reader034/viewer/2022042307/5ed2d527a8941c0cd4591788/html5/thumbnails/1.jpg)
大村幸敬
Amazon Web Services ソリューションアーキテクト
~コード化の開始から頻出パターンまで~
![Page 2: ~コード化の開始から頻出パターンまで~ · 大村幸敬 Amazon Web Services ソリューションアーキテクト ~コード化の開始から頻出パターンまで~](https://reader034.vdocuments.pub/reader034/viewer/2022042307/5ed2d527a8941c0cd4591788/html5/thumbnails/2.jpg)
Agenda
![Page 3: ~コード化の開始から頻出パターンまで~ · 大村幸敬 Amazon Web Services ソリューションアーキテクト ~コード化の開始から頻出パターンまで~](https://reader034.vdocuments.pub/reader034/viewer/2022042307/5ed2d527a8941c0cd4591788/html5/thumbnails/3.jpg)
Who am I ?
大村幸敬(おおむらゆきたか)
• Solutions Architect @Amazon Web Services Japan
• エンタープライズのお客さまを担当
• Management Tools & DevOps 系サービスを担当
•好きなサービス: AWS CLI
![Page 4: ~コード化の開始から頻出パターンまで~ · 大村幸敬 Amazon Web Services ソリューションアーキテクト ~コード化の開始から頻出パターンまで~](https://reader034.vdocuments.pub/reader034/viewer/2022042307/5ed2d527a8941c0cd4591788/html5/thumbnails/4.jpg)
![Page 5: ~コード化の開始から頻出パターンまで~ · 大村幸敬 Amazon Web Services ソリューションアーキテクト ~コード化の開始から頻出パターンまで~](https://reader034.vdocuments.pub/reader034/viewer/2022042307/5ed2d527a8941c0cd4591788/html5/thumbnails/5.jpg)
"Are you
Well-Architected?”Werner Vogels
![Page 6: ~コード化の開始から頻出パターンまで~ · 大村幸敬 Amazon Web Services ソリューションアーキテクト ~コード化の開始から頻出パターンまで~](https://reader034.vdocuments.pub/reader034/viewer/2022042307/5ed2d527a8941c0cd4591788/html5/thumbnails/6.jpg)
その運用は Well-Architected か?
アプリケーション• アジャイル開発で要件の変化に追従可能
インフラ• クラウドで初期投資なく迅速に変更可能
運用• 申請書と手順書と人海戦術で迅速に変更可能?
![Page 7: ~コード化の開始から頻出パターンまで~ · 大村幸敬 Amazon Web Services ソリューションアーキテクト ~コード化の開始から頻出パターンまで~](https://reader034.vdocuments.pub/reader034/viewer/2022042307/5ed2d527a8941c0cd4591788/html5/thumbnails/7.jpg)
Well-Architected – Operational Excellenceの柱
原則
1. コードを使って運用する
2. 注記付きドキュメントを自動生成する
3. 頻繁に、小さく、可逆的に変更する
4. 運用手順を頻繁に見直す
5. 危険の事前予測と排除を行う
6. 全ての運用の失敗から学ぶ
Well-Architected Framework = AWS利用におけるベストプラクティスhttps://aws.amazon.com/jp/architecture/well-architected/
![Page 8: ~コード化の開始から頻出パターンまで~ · 大村幸敬 Amazon Web Services ソリューションアーキテクト ~コード化の開始から頻出パターンまで~](https://reader034.vdocuments.pub/reader034/viewer/2022042307/5ed2d527a8941c0cd4591788/html5/thumbnails/8.jpg)
コードを使った運用のポイント from AWS Well-Architected
1. コードで全ての構成を定義
2. イベントに対してスクリプトで対処
3. アプリケーションと同じ手法でコードを開発
sh
sh
![Page 9: ~コード化の開始から頻出パターンまで~ · 大村幸敬 Amazon Web Services ソリューションアーキテクト ~コード化の開始から頻出パターンまで~](https://reader034.vdocuments.pub/reader034/viewer/2022042307/5ed2d527a8941c0cd4591788/html5/thumbnails/9.jpg)
1. コードで全ての構成を定義
同じ環境を、迅速に、繰り返し作成可能
doc
sh sh sh sh
![Page 10: ~コード化の開始から頻出パターンまで~ · 大村幸敬 Amazon Web Services ソリューションアーキテクト ~コード化の開始から頻出パターンまで~](https://reader034.vdocuments.pub/reader034/viewer/2022042307/5ed2d527a8941c0cd4591788/html5/thumbnails/10.jpg)
2. イベントに対してスクリプトで対処
自動的に、同じ処理を、繰り返し実施可能
sh sh sh sh sh
sh sh sh
![Page 11: ~コード化の開始から頻出パターンまで~ · 大村幸敬 Amazon Web Services ソリューションアーキテクト ~コード化の開始から頻出パターンまで~](https://reader034.vdocuments.pub/reader034/viewer/2022042307/5ed2d527a8941c0cd4591788/html5/thumbnails/11.jpg)
3. アプリケーションと同じ手法でコードを開発
コードと作成した環境の品質を担保
sh
CI/CD*
sh
![Page 12: ~コード化の開始から頻出パターンまで~ · 大村幸敬 Amazon Web Services ソリューションアーキテクト ~コード化の開始から頻出パターンまで~](https://reader034.vdocuments.pub/reader034/viewer/2022042307/5ed2d527a8941c0cd4591788/html5/thumbnails/12.jpg)
コードを使った運用のポイント from AWS Well-Architected
1. コードで全ての構成を定義• 同じ環境を、迅速に、多数作成可能
2. イベントに対してスクリプトで対処• 自動的に、同じ処理を、繰り返し実施可能
3. アプリケーションと同じ手法でコードを開発• コードと作成した環境の品質を担保
sh
sh
![Page 13: ~コード化の開始から頻出パターンまで~ · 大村幸敬 Amazon Web Services ソリューションアーキテクト ~コード化の開始から頻出パターンまで~](https://reader034.vdocuments.pub/reader034/viewer/2022042307/5ed2d527a8941c0cd4591788/html5/thumbnails/13.jpg)
![Page 14: ~コード化の開始から頻出パターンまで~ · 大村幸敬 Amazon Web Services ソリューションアーキテクト ~コード化の開始から頻出パターンまで~](https://reader034.vdocuments.pub/reader034/viewer/2022042307/5ed2d527a8941c0cd4591788/html5/thumbnails/14.jpg)
全ての構成変更はサービス利用者に影響
ver2.0 ?
*M/W = ミドルウェア
![Page 15: ~コード化の開始から頻出パターンまで~ · 大村幸敬 Amazon Web Services ソリューションアーキテクト ~コード化の開始から頻出パターンまで~](https://reader034.vdocuments.pub/reader034/viewer/2022042307/5ed2d527a8941c0cd4591788/html5/thumbnails/15.jpg)
AWS環境に対するオペレーション方法
AWS
![Page 16: ~コード化の開始から頻出パターンまで~ · 大村幸敬 Amazon Web Services ソリューションアーキテクト ~コード化の開始から頻出パターンまで~](https://reader034.vdocuments.pub/reader034/viewer/2022042307/5ed2d527a8941c0cd4591788/html5/thumbnails/16.jpg)
AWSのプロビジョニングサービスのカバー範囲
EC2
OS
M/W
App
デプロイ
他のサービス
![Page 17: ~コード化の開始から頻出パターンまで~ · 大村幸敬 Amazon Web Services ソリューションアーキテクト ~コード化の開始から頻出パターンまで~](https://reader034.vdocuments.pub/reader034/viewer/2022042307/5ed2d527a8941c0cd4591788/html5/thumbnails/17.jpg)
デプロイ対象による管理範囲の違い
EC2
OS
M/W
App
Fargate
コンテナ
Lambda
App
デプロイ
デプロイ
デプロイ
AWS管理
ユーザ管理
![Page 18: ~コード化の開始から頻出パターンまで~ · 大村幸敬 Amazon Web Services ソリューションアーキテクト ~コード化の開始から頻出パターンまで~](https://reader034.vdocuments.pub/reader034/viewer/2022042307/5ed2d527a8941c0cd4591788/html5/thumbnails/18.jpg)
APIへのアクセスと OSへのアクセス
CLI / SDK
ブラウザ
AW
S A
PI
マネジメント
コンソール
HTTPS
HTTPS
AW
S IA
M
(認証と認可)
EC2リモートデスクトップ
ターミナルRDPSSH
OSへのアクセス方法はオンプレと同様
セキュリティグループ設定
VPC作成
EC2作成
S3バケットの作成S3オブジェクトへのアクセス
![Page 19: ~コード化の開始から頻出パターンまで~ · 大村幸敬 Amazon Web Services ソリューションアーキテクト ~コード化の開始から頻出パターンまで~](https://reader034.vdocuments.pub/reader034/viewer/2022042307/5ed2d527a8941c0cd4591788/html5/thumbnails/19.jpg)
AWS 環境を管理するためのツール
![Page 20: ~コード化の開始から頻出パターンまで~ · 大村幸敬 Amazon Web Services ソリューションアーキテクト ~コード化の開始から頻出パターンまで~](https://reader034.vdocuments.pub/reader034/viewer/2022042307/5ed2d527a8941c0cd4591788/html5/thumbnails/20.jpg)
CLIとCFnを使ったAWS環境操作の流れ
sh
![Page 21: ~コード化の開始から頻出パターンまで~ · 大村幸敬 Amazon Web Services ソリューションアーキテクト ~コード化の開始から頻出パターンまで~](https://reader034.vdocuments.pub/reader034/viewer/2022042307/5ed2d527a8941c0cd4591788/html5/thumbnails/21.jpg)
AWS CloudFormation
•
•
作成 /変更/削除
AWS CloudFormationAWS リソースの作成 / 変更 / 削除
テンプレート スタック
- 作成するリソースの定義- JSON/YAML
- AWS リソースの集合
![Page 22: ~コード化の開始から頻出パターンまで~ · 大村幸敬 Amazon Web Services ソリューションアーキテクト ~コード化の開始から頻出パターンまで~](https://reader034.vdocuments.pub/reader034/viewer/2022042307/5ed2d527a8941c0cd4591788/html5/thumbnails/22.jpg)
CloudFormation 基本機能
••
••
•
•
••
•
![Page 23: ~コード化の開始から頻出パターンまで~ · 大村幸敬 Amazon Web Services ソリューションアーキテクト ~コード化の開始から頻出パターンまで~](https://reader034.vdocuments.pub/reader034/viewer/2022042307/5ed2d527a8941c0cd4591788/html5/thumbnails/23.jpg)
AWS CLI
•
•
•
•
aws <service> <operation>
$ aws ec2 describe-instances
$ aws s3 cp hogehoge s3://bucket/key/to/file
![Page 24: ~コード化の開始から頻出パターンまで~ · 大村幸敬 Amazon Web Services ソリューションアーキテクト ~コード化の開始から頻出パターンまで~](https://reader034.vdocuments.pub/reader034/viewer/2022042307/5ed2d527a8941c0cd4591788/html5/thumbnails/24.jpg)
AWS CLI 使いどころ
•
•
•
•
sh
![Page 25: ~コード化の開始から頻出パターンまで~ · 大村幸敬 Amazon Web Services ソリューションアーキテクト ~コード化の開始から頻出パターンまで~](https://reader034.vdocuments.pub/reader034/viewer/2022042307/5ed2d527a8941c0cd4591788/html5/thumbnails/25.jpg)
AWS CLI CloudFormation
•
•
![Page 26: ~コード化の開始から頻出パターンまで~ · 大村幸敬 Amazon Web Services ソリューションアーキテクト ~コード化の開始から頻出パターンまで~](https://reader034.vdocuments.pub/reader034/viewer/2022042307/5ed2d527a8941c0cd4591788/html5/thumbnails/26.jpg)
![Page 27: ~コード化の開始から頻出パターンまで~ · 大村幸敬 Amazon Web Services ソリューションアーキテクト ~コード化の開始から頻出パターンまで~](https://reader034.vdocuments.pub/reader034/viewer/2022042307/5ed2d527a8941c0cd4591788/html5/thumbnails/27.jpg)
CloudFormation Tips
CI/CD*
* CI/CD = Continuous Integration / Continuous Deploy
![Page 28: ~コード化の開始から頻出パターンまで~ · 大村幸敬 Amazon Web Services ソリューションアーキテクト ~コード化の開始から頻出パターンまで~](https://reader034.vdocuments.pub/reader034/viewer/2022042307/5ed2d527a8941c0cd4591788/html5/thumbnails/28.jpg)
CloudFormation Tips
CI/CD
![Page 29: ~コード化の開始から頻出パターンまで~ · 大村幸敬 Amazon Web Services ソリューションアーキテクト ~コード化の開始から頻出パターンまで~](https://reader034.vdocuments.pub/reader034/viewer/2022042307/5ed2d527a8941c0cd4591788/html5/thumbnails/29.jpg)
テンプレートの基礎
![Page 30: ~コード化の開始から頻出パターンまで~ · 大村幸敬 Amazon Web Services ソリューションアーキテクト ~コード化の開始から頻出パターンまで~](https://reader034.vdocuments.pub/reader034/viewer/2022042307/5ed2d527a8941c0cd4591788/html5/thumbnails/30.jpg)
テンプレート開発のTips
•
•
•
•
![Page 31: ~コード化の開始から頻出パターンまで~ · 大村幸敬 Amazon Web Services ソリューションアーキテクト ~コード化の開始から頻出パターンまで~](https://reader034.vdocuments.pub/reader034/viewer/2022042307/5ed2d527a8941c0cd4591788/html5/thumbnails/31.jpg)
[IDE] AWS Cloud9
•ブラウザベース
• Syntax ハイライト
•キーワード補完
• Linux シェル環境
• AWS CLI & IAM Roleセットアップ済み
•各種開発ツール
![Page 32: ~コード化の開始から頻出パターンまで~ · 大村幸敬 Amazon Web Services ソリューションアーキテクト ~コード化の開始から頻出パターンまで~](https://reader034.vdocuments.pub/reader034/viewer/2022042307/5ed2d527a8941c0cd4591788/html5/thumbnails/32.jpg)
[Parameters] AWS Systems Manager - Parameter Store
•
aws ssm put-parameter --name /MySystem/Prod/DB/User --type String --value myuser
aws ssm get-parameter --name /MySystem/Prod/DB/User{
"Parameter": {"Name": "/MySystem/Dev/DB/User","Type": "String","Value": "ohmurayu","Version": 1
}}
![Page 33: ~コード化の開始から頻出パターンまで~ · 大村幸敬 Amazon Web Services ソリューションアーキテクト ~コード化の開始から頻出パターンまで~](https://reader034.vdocuments.pub/reader034/viewer/2022042307/5ed2d527a8941c0cd4591788/html5/thumbnails/33.jpg)
[Parameters] AWS Systems Manager - Parameter Store
• 自身で設定した値を使用
• AWSが提供する値を使用
Parameters: MyAMIID:
Type : AWS::SSM::Parameter::Value<AWS::EC2::Image::Id>Default: /aws/service/ami-amazon-linux-latest/amzn-ami-hvm-x86_64-gp2
# Default: /aws/service/ami-windows-latest/Windows_Server-2016-English-Full-Base
注:SecureStringは2018/6/1時点で未対応
Parameters: Env:
Type: AWS::SSM::Parameter::Value<String>Default: /MySystem/Prod/DB/User
![Page 34: ~コード化の開始から頻出パターンまで~ · 大村幸敬 Amazon Web Services ソリューションアーキテクト ~コード化の開始から頻出パターンまで~](https://reader034.vdocuments.pub/reader034/viewer/2022042307/5ed2d527a8941c0cd4591788/html5/thumbnails/34.jpg)
[Test] 各種ツールによるコードのチェック
••
•
•
••
•
cfn-python-lint + VS Code
cfn_nag
$ cfn_nag_scan -i public_alb.yaml------------------------------------------------------------public_alb.yaml------------------------------------------------------------| WARN W2|| Resources: ["PublicAlbSecurityGroup"]|| Security Groups found with cidr open to world on ingress.
This should never be true on instance. Permissible on ELB
Failures count: 0Warnings count: 1
https://github.com/awslabs/cfn-python-lint
https://github.com/stelligent/cfn_nag
![Page 35: ~コード化の開始から頻出パターンまで~ · 大村幸敬 Amazon Web Services ソリューションアーキテクト ~コード化の開始から頻出パターンまで~](https://reader034.vdocuments.pub/reader034/viewer/2022042307/5ed2d527a8941c0cd4591788/html5/thumbnails/35.jpg)
CloudFormation Tips
CI/CD
![Page 36: ~コード化の開始から頻出パターンまで~ · 大村幸敬 Amazon Web Services ソリューションアーキテクト ~コード化の開始から頻出パターンまで~](https://reader034.vdocuments.pub/reader034/viewer/2022042307/5ed2d527a8941c0cd4591788/html5/thumbnails/36.jpg)
スタック分割の例 – サンプルシステム
![Page 37: ~コード化の開始から頻出パターンまで~ · 大村幸敬 Amazon Web Services ソリューションアーキテクト ~コード化の開始から頻出パターンまで~](https://reader034.vdocuments.pub/reader034/viewer/2022042307/5ed2d527a8941c0cd4591788/html5/thumbnails/37.jpg)
スタック分割 - 基本方針
•
•
•
•
•
![Page 38: ~コード化の開始から頻出パターンまで~ · 大村幸敬 Amazon Web Services ソリューションアーキテクト ~コード化の開始から頻出パターンまで~](https://reader034.vdocuments.pub/reader034/viewer/2022042307/5ed2d527a8941c0cd4591788/html5/thumbnails/38.jpg)
スタック分割の例 – スタック構成
![Page 39: ~コード化の開始から頻出パターンまで~ · 大村幸敬 Amazon Web Services ソリューションアーキテクト ~コード化の開始から頻出パターンまで~](https://reader034.vdocuments.pub/reader034/viewer/2022042307/5ed2d527a8941c0cd4591788/html5/thumbnails/39.jpg)
CloudFormation Tips
CI/CD
![Page 40: ~コード化の開始から頻出パターンまで~ · 大村幸敬 Amazon Web Services ソリューションアーキテクト ~コード化の開始から頻出パターンまで~](https://reader034.vdocuments.pub/reader034/viewer/2022042307/5ed2d527a8941c0cd4591788/html5/thumbnails/40.jpg)
CI/CD* for CloudFormation
アプリケーション開発と同じやり方で環境全体を開発
* CI/CD = Continuous Integration / Continuous Deploy
sh
![Page 41: ~コード化の開始から頻出パターンまで~ · 大村幸敬 Amazon Web Services ソリューションアーキテクト ~コード化の開始から頻出パターンまで~](https://reader034.vdocuments.pub/reader034/viewer/2022042307/5ed2d527a8941c0cd4591788/html5/thumbnails/41.jpg)
AWS CloudFormation Validation Pipeline
https://aws.amazon.com/jp/answers/devops/aws-cloudformation-validation-pipeline/
![Page 42: ~コード化の開始から頻出パターンまで~ · 大村幸敬 Amazon Web Services ソリューションアーキテクト ~コード化の開始から頻出パターンまで~](https://reader034.vdocuments.pub/reader034/viewer/2022042307/5ed2d527a8941c0cd4591788/html5/thumbnails/42.jpg)
AWS CloudFormationValidation Pipeline
![Page 43: ~コード化の開始から頻出パターンまで~ · 大村幸敬 Amazon Web Services ソリューションアーキテクト ~コード化の開始から頻出パターンまで~](https://reader034.vdocuments.pub/reader034/viewer/2022042307/5ed2d527a8941c0cd4591788/html5/thumbnails/43.jpg)
AWS CLI Tips
SA
ML
![Page 44: ~コード化の開始から頻出パターンまで~ · 大村幸敬 Amazon Web Services ソリューションアーキテクト ~コード化の開始から頻出パターンまで~](https://reader034.vdocuments.pub/reader034/viewer/2022042307/5ed2d527a8941c0cd4591788/html5/thumbnails/44.jpg)
AWS CLI Tips
SA
ML
![Page 45: ~コード化の開始から頻出パターンまで~ · 大村幸敬 Amazon Web Services ソリューションアーキテクト ~コード化の開始から頻出パターンまで~](https://reader034.vdocuments.pub/reader034/viewer/2022042307/5ed2d527a8941c0cd4591788/html5/thumbnails/45.jpg)
AWS CLI の利用開始
••
•
••
$ pip install awscli --upgrade --user
$ aws help
![Page 46: ~コード化の開始から頻出パターンまで~ · 大村幸敬 Amazon Web Services ソリューションアーキテクト ~コード化の開始から頻出パターンまで~](https://reader034.vdocuments.pub/reader034/viewer/2022042307/5ed2d527a8941c0cd4591788/html5/thumbnails/46.jpg)
CLI オペレーションTips•
•$ complete -C '/usr/local/bin/aws_completer' aws
$ aws help$ aws ec2 help
![Page 47: ~コード化の開始から頻出パターンまで~ · 大村幸敬 Amazon Web Services ソリューションアーキテクト ~コード化の開始から頻出パターンまで~](https://reader034.vdocuments.pub/reader034/viewer/2022042307/5ed2d527a8941c0cd4591788/html5/thumbnails/47.jpg)
CLI Tips - query
~/.aws/cli/alias
list-sgs = ec2 describe-security-groups ¥--query "SecurityGroups[].[GroupId, GroupName]" --output text
$ aws ec2 describe-security-groups ¥--query "SecurityGroups[].[GroupId, GroupName]" ¥
--output text
sg-bf8289da defaultsg-bf9256c6 op-ad-sgsg-c4f005bd rdp-httpsg-cb5953ae yu-http…
$ aws ec2 describe-security-groups{
"SecurityGroups": [{
"Description": "HTTPS+HTTP+ssh","GroupName": "default","IpPermissions": [
{"FromPort": 80,
…
$ aws list-sgssg-bf8289da defaultsg-bf9256c6 op-ad-sg…
![Page 48: ~コード化の開始から頻出パターンまで~ · 大村幸敬 Amazon Web Services ソリューションアーキテクト ~コード化の開始から頻出パターンまで~](https://reader034.vdocuments.pub/reader034/viewer/2022042307/5ed2d527a8941c0cd4591788/html5/thumbnails/48.jpg)
AWS CLI Tips
SA
ML
![Page 49: ~コード化の開始から頻出パターンまで~ · 大村幸敬 Amazon Web Services ソリューションアーキテクト ~コード化の開始から頻出パターンまで~](https://reader034.vdocuments.pub/reader034/viewer/2022042307/5ed2d527a8941c0cd4591788/html5/thumbnails/49.jpg)
CLI アクセス経路
•
•
• オンプレミスからVPCエンドポイントへのアクセス可否はAWSサービスと接続形態により異なる
![Page 50: ~コード化の開始から頻出パターンまで~ · 大村幸敬 Amazon Web Services ソリューションアーキテクト ~コード化の開始から頻出パターンまで~](https://reader034.vdocuments.pub/reader034/viewer/2022042307/5ed2d527a8941c0cd4591788/html5/thumbnails/50.jpg)
AWS CLI Tips
SA
ML
![Page 51: ~コード化の開始から頻出パターンまで~ · 大村幸敬 Amazon Web Services ソリューションアーキテクト ~コード化の開始から頻出パターンまで~](https://reader034.vdocuments.pub/reader034/viewer/2022042307/5ed2d527a8941c0cd4591788/html5/thumbnails/51.jpg)
CLI 認証&認可 - AWS認証情報
•
•
•
•
•
•
![Page 52: ~コード化の開始から頻出パターンまで~ · 大村幸敬 Amazon Web Services ソリューションアーキテクト ~コード化の開始から頻出パターンまで~](https://reader034.vdocuments.pub/reader034/viewer/2022042307/5ed2d527a8941c0cd4591788/html5/thumbnails/52.jpg)
CLI 認証&認可 - 認証情報へのアクセス
![Page 53: ~コード化の開始から頻出パターンまで~ · 大村幸敬 Amazon Web Services ソリューションアーキテクト ~コード化の開始から頻出パターンまで~](https://reader034.vdocuments.pub/reader034/viewer/2022042307/5ed2d527a8941c0cd4591788/html5/thumbnails/53.jpg)
![Page 54: ~コード化の開始から頻出パターンまで~ · 大村幸敬 Amazon Web Services ソリューションアーキテクト ~コード化の開始から頻出パターンまで~](https://reader034.vdocuments.pub/reader034/viewer/2022042307/5ed2d527a8941c0cd4591788/html5/thumbnails/54.jpg)
CLI & -
![Page 55: ~コード化の開始から頻出パターンまで~ · 大村幸敬 Amazon Web Services ソリューションアーキテクト ~コード化の開始から頻出パターンまで~](https://reader034.vdocuments.pub/reader034/viewer/2022042307/5ed2d527a8941c0cd4591788/html5/thumbnails/55.jpg)
CLI & -
[profile admin-org-account]aws_access_key_id = AKIDF...aws_secret_access_key = 1rHl...
[profile admin-team-account]source_profile = admin-org-accountrole_arn = arn:...:role/admin-team-account
~/.aws/config
$ aws s3 ls --profile admin-team-account
![Page 56: ~コード化の開始から頻出パターンまで~ · 大村幸敬 Amazon Web Services ソリューションアーキテクト ~コード化の開始から頻出パターンまで~](https://reader034.vdocuments.pub/reader034/viewer/2022042307/5ed2d527a8941c0cd4591788/html5/thumbnails/56.jpg)
AssumeRoleWithSAML
LDAP identity store Identity provider (IdP)
role
awsprocesscreds-saml
CLI 認証&認可 – SAMLフェデレーションアクセス
SAML Idp(ADFSやOkta)にログインしてCLIに認証情報を渡すツール
https://github.com/awslabs/awsprocesscreds
![Page 57: ~コード化の開始から頻出パターンまで~ · 大村幸敬 Amazon Web Services ソリューションアーキテクト ~コード化の開始から頻出パターンまで~](https://reader034.vdocuments.pub/reader034/viewer/2022042307/5ed2d527a8941c0cd4591788/html5/thumbnails/57.jpg)
~/.aws/config
[profile saml]credential_process = awsprocesscreds-saml -e 'https://corp.example.com/adfs/ls/IdpInitiatedSignOn.aspx?loginToRp=urn:amazon:webservices' -u username -p adfs -a arn:aws:iam::123456789012:role/ADFS-Dev
AWS CLI
$ aws s3 ls --profile saml
{“AccessKeyId”: “ADIF...”,“SecretAccessKey”: “2rFt...”,“Version”: 1
}
コマンド実行 awsprocesscreds-saml
awsprocesscreds-saml
アクセスキー
CLI 認証&認可 - フェデレーションアクセス
![Page 58: ~コード化の開始から頻出パターンまで~ · 大村幸敬 Amazon Web Services ソリューションアーキテクト ~コード化の開始から頻出パターンまで~](https://reader034.vdocuments.pub/reader034/viewer/2022042307/5ed2d527a8941c0cd4591788/html5/thumbnails/58.jpg)
CLI & – MFA
[profile normal-access]aws_access_key_id = AKIDF...aws_secret_access_key = 1rHl...
[profile mfa-access]source_profile = normal-accessrole_arn = arn:...:role/mfa-access-rolemfa_serial = arn:...:mfa/mfa-of-user
~/.aws/config $ aws s3 ls s3://public-bkt/ --profile normal-access ...
$ aws s3 ls s3://restrict-bkt/ --profile mfa-access Enter MFA code for arn:...:mfa/mfa-of-user...
{"Version": "2012-10-17","Statement": [ {
"Effect": "Allow","Principal": {"AWS": {"arn:aws:iam::...:user/normal-user"}},"Action": "sts:AssumeRole","Condition": {"Bool": {"aws:MultiFactorAuthPresent": "true"}}
}]}
![Page 59: ~コード化の開始から頻出パターンまで~ · 大村幸敬 Amazon Web Services ソリューションアーキテクト ~コード化の開始から頻出パターンまで~](https://reader034.vdocuments.pub/reader034/viewer/2022042307/5ed2d527a8941c0cd4591788/html5/thumbnails/59.jpg)
![Page 60: ~コード化の開始から頻出パターンまで~ · 大村幸敬 Amazon Web Services ソリューションアーキテクト ~コード化の開始から頻出パターンまで~](https://reader034.vdocuments.pub/reader034/viewer/2022042307/5ed2d527a8941c0cd4591788/html5/thumbnails/60.jpg)
-
•
•
•
•
![Page 61: ~コード化の開始から頻出パターンまで~ · 大村幸敬 Amazon Web Services ソリューションアーキテクト ~コード化の開始から頻出パターンまで~](https://reader034.vdocuments.pub/reader034/viewer/2022042307/5ed2d527a8941c0cd4591788/html5/thumbnails/61.jpg)
![Page 62: ~コード化の開始から頻出パターンまで~ · 大村幸敬 Amazon Web Services ソリューションアーキテクト ~コード化の開始から頻出パターンまで~](https://reader034.vdocuments.pub/reader034/viewer/2022042307/5ed2d527a8941c0cd4591788/html5/thumbnails/62.jpg)
![Page 63: ~コード化の開始から頻出パターンまで~ · 大村幸敬 Amazon Web Services ソリューションアーキテクト ~コード化の開始から頻出パターンまで~](https://reader034.vdocuments.pub/reader034/viewer/2022042307/5ed2d527a8941c0cd4591788/html5/thumbnails/63.jpg)
Organizationsアカウント払い出し (CLI)
•
•
•
•
•
•
organizations create-account
organizations list-create-account-status
iam create-role iam put-role-policy
organizations list-rootsorganizations list-organizational-units-for-parent
organizations list-parentsorganizations move-account
![Page 64: ~コード化の開始から頻出パターンまで~ · 大村幸敬 Amazon Web Services ソリューションアーキテクト ~コード化の開始から頻出パターンまで~](https://reader034.vdocuments.pub/reader034/viewer/2022042307/5ed2d527a8941c0cd4591788/html5/thumbnails/64.jpg)
![Page 65: ~コード化の開始から頻出パターンまで~ · 大村幸敬 Amazon Web Services ソリューションアーキテクト ~コード化の開始から頻出パターンまで~](https://reader034.vdocuments.pub/reader034/viewer/2022042307/5ed2d527a8941c0cd4591788/html5/thumbnails/65.jpg)
•
•
•
•
•
•
•
![Page 66: ~コード化の開始から頻出パターンまで~ · 大村幸敬 Amazon Web Services ソリューションアーキテクト ~コード化の開始から頻出パターンまで~](https://reader034.vdocuments.pub/reader034/viewer/2022042307/5ed2d527a8941c0cd4591788/html5/thumbnails/66.jpg)
複数アカウントへの展開 - CloudFormation StackSet
StackSet
管理者アカウント
Region
Stack
ターゲットアカウントA
Stack
アカウント C アカウント D アカウント E …
Region
Stack Stack
アカウント C アカウント D アカウント E …
ターゲットアカウントB
ターゲットアカウントA
ターゲットアカウントB
![Page 67: ~コード化の開始から頻出パターンまで~ · 大村幸敬 Amazon Web Services ソリューションアーキテクト ~コード化の開始から頻出パターンまで~](https://reader034.vdocuments.pub/reader034/viewer/2022042307/5ed2d527a8941c0cd4591788/html5/thumbnails/67.jpg)
CloudFormation StackSet - テンプレートの選択
![Page 68: ~コード化の開始から頻出パターンまで~ · 大村幸敬 Amazon Web Services ソリューションアーキテクト ~コード化の開始から頻出パターンまで~](https://reader034.vdocuments.pub/reader034/viewer/2022042307/5ed2d527a8941c0cd4591788/html5/thumbnails/68.jpg)
CloudFormation StackSet - 適用範囲の指定
![Page 69: ~コード化の開始から頻出パターンまで~ · 大村幸敬 Amazon Web Services ソリューションアーキテクト ~コード化の開始から頻出パターンまで~](https://reader034.vdocuments.pub/reader034/viewer/2022042307/5ed2d527a8941c0cd4591788/html5/thumbnails/69.jpg)
![Page 70: ~コード化の開始から頻出パターンまで~ · 大村幸敬 Amazon Web Services ソリューションアーキテクト ~コード化の開始から頻出パターンまで~](https://reader034.vdocuments.pub/reader034/viewer/2022042307/5ed2d527a8941c0cd4591788/html5/thumbnails/70.jpg)
AWS Management Tools
![Page 71: ~コード化の開始から頻出パターンまで~ · 大村幸敬 Amazon Web Services ソリューションアーキテクト ~コード化の開始から頻出パターンまで~](https://reader034.vdocuments.pub/reader034/viewer/2022042307/5ed2d527a8941c0cd4591788/html5/thumbnails/71.jpg)
EC2 CloudWatch Event
Status = Pending
Lambda
![Page 72: ~コード化の開始から頻出パターンまで~ · 大村幸敬 Amazon Web Services ソリューションアーキテクト ~コード化の開始から頻出パターンまで~](https://reader034.vdocuments.pub/reader034/viewer/2022042307/5ed2d527a8941c0cd4591788/html5/thumbnails/72.jpg)
•
•
•
•
![Page 73: ~コード化の開始から頻出パターンまで~ · 大村幸敬 Amazon Web Services ソリューションアーキテクト ~コード化の開始から頻出パターンまで~](https://reader034.vdocuments.pub/reader034/viewer/2022042307/5ed2d527a8941c0cd4591788/html5/thumbnails/73.jpg)
![Page 74: ~コード化の開始から頻出パターンまで~ · 大村幸敬 Amazon Web Services ソリューションアーキテクト ~コード化の開始から頻出パターンまで~](https://reader034.vdocuments.pub/reader034/viewer/2022042307/5ed2d527a8941c0cd4591788/html5/thumbnails/74.jpg)
![Page 75: ~コード化の開始から頻出パターンまで~ · 大村幸敬 Amazon Web Services ソリューションアーキテクト ~コード化の開始から頻出パターンまで~](https://reader034.vdocuments.pub/reader034/viewer/2022042307/5ed2d527a8941c0cd4591788/html5/thumbnails/75.jpg)
JSON/YAML変換は cfn-flip
•
$ cfn-flip vpc.json > vpc.yaml
![Page 76: ~コード化の開始から頻出パターンまで~ · 大村幸敬 Amazon Web Services ソリューションアーキテクト ~コード化の開始から頻出パターンまで~](https://reader034.vdocuments.pub/reader034/viewer/2022042307/5ed2d527a8941c0cd4591788/html5/thumbnails/76.jpg)
テンプレートエンジンを使用したテンプレート作成
•
•
•
![Page 77: ~コード化の開始から頻出パターンまで~ · 大村幸敬 Amazon Web Services ソリューションアーキテクト ~コード化の開始から頻出パターンまで~](https://reader034.vdocuments.pub/reader034/viewer/2022042307/5ed2d527a8941c0cd4591788/html5/thumbnails/77.jpg)
![Page 78: ~コード化の開始から頻出パターンまで~ · 大村幸敬 Amazon Web Services ソリューションアーキテクト ~コード化の開始から頻出パターンまで~](https://reader034.vdocuments.pub/reader034/viewer/2022042307/5ed2d527a8941c0cd4591788/html5/thumbnails/78.jpg)
更新頻度と役割分担によってスタックを分ける(Cross Stack Reference)
②別のスタックから参照可能な値がエクスポートされる
①Exportを使って他のスタックから参照したい値をエクスポート例:セキュリティグループID
③ImportValue関数を使って値を参照する
![Page 79: ~コード化の開始から頻出パターンまで~ · 大村幸敬 Amazon Web Services ソリューションアーキテクト ~コード化の開始から頻出パターンまで~](https://reader034.vdocuments.pub/reader034/viewer/2022042307/5ed2d527a8941c0cd4591788/html5/thumbnails/79.jpg)
テンプレート分割とスタック分割
![Page 80: ~コード化の開始から頻出パターンまで~ · 大村幸敬 Amazon Web Services ソリューションアーキテクト ~コード化の開始から頻出パターンまで~](https://reader034.vdocuments.pub/reader034/viewer/2022042307/5ed2d527a8941c0cd4591788/html5/thumbnails/80.jpg)
テンプレート分割とスタック分割Nested Stacks(テンプレートの分割)
Cross Stack References(スタックの分割)
推奨ユースケース
テンプレートの再利用。1つのスタックを管理するために複数のテンプレートを使用する。
共用リソースのシェア。個別のスタックを個別のライフサイクルで独立管理できる。
利点 管理が容易。1つのスタックで全てを管理する。作成順序と依存関係が記述できる。
利害関係の分離。DBやVPCの共用。障害時影響範囲の限定。
考慮点 更新やロールバックの影響範囲が大きい。カスタムリソース名を持つテンプレートの再利用に注意。
リプレースアップデートになると物理IDが変化するため、参照側のスタックの更新が必要。個別スタックの作成順序を管理する必要あり。
![Page 81: ~コード化の開始から頻出パターンまで~ · 大村幸敬 Amazon Web Services ソリューションアーキテクト ~コード化の開始から頻出パターンまで~](https://reader034.vdocuments.pub/reader034/viewer/2022042307/5ed2d527a8941c0cd4591788/html5/thumbnails/81.jpg)
![Page 82: ~コード化の開始から頻出パターンまで~ · 大村幸敬 Amazon Web Services ソリューションアーキテクト ~コード化の開始から頻出パターンまで~](https://reader034.vdocuments.pub/reader034/viewer/2022042307/5ed2d527a8941c0cd4591788/html5/thumbnails/82.jpg)
専用CLI
•
•
•
•
•
•
![Page 83: ~コード化の開始から頻出パターンまで~ · 大村幸敬 Amazon Web Services ソリューションアーキテクト ~コード化の開始から頻出パターンまで~](https://reader034.vdocuments.pub/reader034/viewer/2022042307/5ed2d527a8941c0cd4591788/html5/thumbnails/83.jpg)
CLI S3 -
Amazon S3 bucketAWS CLI
Thread pool
Disk
Thread 1
Thread 2
Thread 3
IO Thread
IO Queue
![Page 84: ~コード化の開始から頻出パターンまで~ · 大村幸敬 Amazon Web Services ソリューションアーキテクト ~コード化の開始から頻出パターンまで~](https://reader034.vdocuments.pub/reader034/viewer/2022042307/5ed2d527a8941c0cd4591788/html5/thumbnails/84.jpg)
CLI S3 -
[default]region = ap-northeast-1s3 =
max_concurrent_requests = 20multipart_chunksize = 16MBmultipart_threshold = 64MBmax_queue_size = 10000
~/.aws/config
![Page 85: ~コード化の開始から頻出パターンまで~ · 大村幸敬 Amazon Web Services ソリューションアーキテクト ~コード化の開始から頻出パターンまで~](https://reader034.vdocuments.pub/reader034/viewer/2022042307/5ed2d527a8941c0cd4591788/html5/thumbnails/85.jpg)
max_concurrent_requests = 4
Amazon S3 bucketAWS CLI
Thread pool
Disk
Thread 1
Thread 2
Thread 3IO Thread
IO Queue
Thread 4
![Page 86: ~コード化の開始から頻出パターンまで~ · 大村幸敬 Amazon Web Services ソリューションアーキテクト ~コード化の開始から頻出パターンまで~](https://reader034.vdocuments.pub/reader034/viewer/2022042307/5ed2d527a8941c0cd4591788/html5/thumbnails/86.jpg)
参考資料
•
•
•
•
•
![Page 87: ~コード化の開始から頻出パターンまで~ · 大村幸敬 Amazon Web Services ソリューションアーキテクト ~コード化の開始から頻出パターンまで~](https://reader034.vdocuments.pub/reader034/viewer/2022042307/5ed2d527a8941c0cd4591788/html5/thumbnails/87.jpg)