Submit Search
IaC事始め Infrastructure as Code やってみる?
0 likes
1,671 views
大
大使 梶原
Developers. IO 2019 in 福岡 IaC事始め Infrastructure as Code やってみる?
Technology
Read more
1 of 109
Download now
Download to read offline
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
More Related Content
PDF
実環境にTerraform導入したら驚いた
Akihiro Kuwano
PDF
AWS Black Belt Online Seminar AWS CloudFormation アップデート
Amazon Web Services Japan
PPTX
分散トレーシングAWS:X-Rayとの上手い付き合い方
Recruit Lifestyle Co., Ltd.
PDF
Amazon Kinesis Familyを活用したストリームデータ処理
Amazon Web Services Japan
PDF
AWS Black Belt Online Seminar AWS Direct Connect
Amazon Web Services Japan
PDF
Infrastructure as Code (IaC) 談義 2022
Amazon Web Services Japan
PDF
20200526 AWS Black Belt Online Seminar AWS X-Ray
Amazon Web Services Japan
PDF
SaaS テナント毎のコストを把握するための「AWS Application Cost Profiler」のご紹介
Amazon Web Services Japan
実環境にTerraform導入したら驚いた
Akihiro Kuwano
AWS Black Belt Online Seminar AWS CloudFormation アップデート
Amazon Web Services Japan
分散トレーシングAWS:X-Rayとの上手い付き合い方
Recruit Lifestyle Co., Ltd.
Amazon Kinesis Familyを活用したストリームデータ処理
Amazon Web Services Japan
AWS Black Belt Online Seminar AWS Direct Connect
Amazon Web Services Japan
Infrastructure as Code (IaC) 談義 2022
Amazon Web Services Japan
20200526 AWS Black Belt Online Seminar AWS X-Ray
Amazon Web Services Japan
SaaS テナント毎のコストを把握するための「AWS Application Cost Profiler」のご紹介
Amazon Web Services Japan
What's hot
(20)
PDF
20191029 AWS Black Belt Online Seminar Elastic Load Balancing (ELB)
Amazon Web Services Japan
PDF
20190326 AWS Black Belt Online Seminar Amazon CloudWatch
Amazon Web Services Japan
PDF
20211203 AWS Black Belt Online Seminar AWS re:Invent 2021アップデート速報
Amazon Web Services Japan
PDF
20190731 Black Belt Online Seminar Amazon ECS Deep Dive
Amazon Web Services Japan
PPTX
NTTデータ流Infrastructure as Code~ 大規模プロジェクトを通して考え抜いた基盤自動化の新たな姿~(NTTデータ テクノロジーカンフ...
NTT DATA Technology & Innovation
PDF
20191009 AWS Black Belt Online Seminar Amazon GameLift
Amazon Web Services Japan
PDF
マルチテナント化で知っておきたいデータベースのこと
Amazon Web Services Japan
PDF
AWS Black Belt Online Seminar 2017 Amazon DynamoDB
Amazon Web Services Japan
PDF
20190806 AWS Black Belt Online Seminar AWS Glue
Amazon Web Services Japan
PDF
20200826 AWS Black Belt Online Seminar AWS CloudFormation
Amazon Web Services Japan
PDF
PostgreSQLアンチパターン
Soudai Sone
PDF
20200721 AWS Black Belt Online Seminar AWS App Mesh
Amazon Web Services Japan
PDF
AWS Black Belt Online Seminar 2017 Amazon Kinesis
Amazon Web Services Japan
PDF
20191002 AWS Black Belt Online Seminar Amazon EC2 Auto Scaling and AWS Auto S...
Amazon Web Services Japan
PDF
AWS Black Belt Online Seminar 2018 AWS Well-Architected Framework
Amazon Web Services Japan
PDF
20191105 AWS Black Belt Online Seminar Amazon Route 53 Hosted Zone
Amazon Web Services Japan
PDF
AWS Black Belt Techシリーズ Amazon EBS
Amazon Web Services Japan
PDF
DynamoDBの初心者に伝えたい初めて触るときの勘所
Ryo Sasaki
PDF
NetflixにおけるPresto/Spark活用事例
Amazon Web Services Japan
PDF
AWS Black Belt Tech シリーズ 2015 - AWS Data Pipeline
Amazon Web Services Japan
20191029 AWS Black Belt Online Seminar Elastic Load Balancing (ELB)
Amazon Web Services Japan
20190326 AWS Black Belt Online Seminar Amazon CloudWatch
Amazon Web Services Japan
20211203 AWS Black Belt Online Seminar AWS re:Invent 2021アップデート速報
Amazon Web Services Japan
20190731 Black Belt Online Seminar Amazon ECS Deep Dive
Amazon Web Services Japan
NTTデータ流Infrastructure as Code~ 大規模プロジェクトを通して考え抜いた基盤自動化の新たな姿~(NTTデータ テクノロジーカンフ...
NTT DATA Technology & Innovation
20191009 AWS Black Belt Online Seminar Amazon GameLift
Amazon Web Services Japan
マルチテナント化で知っておきたいデータベースのこと
Amazon Web Services Japan
AWS Black Belt Online Seminar 2017 Amazon DynamoDB
Amazon Web Services Japan
20190806 AWS Black Belt Online Seminar AWS Glue
Amazon Web Services Japan
20200826 AWS Black Belt Online Seminar AWS CloudFormation
Amazon Web Services Japan
PostgreSQLアンチパターン
Soudai Sone
20200721 AWS Black Belt Online Seminar AWS App Mesh
Amazon Web Services Japan
AWS Black Belt Online Seminar 2017 Amazon Kinesis
Amazon Web Services Japan
20191002 AWS Black Belt Online Seminar Amazon EC2 Auto Scaling and AWS Auto S...
Amazon Web Services Japan
AWS Black Belt Online Seminar 2018 AWS Well-Architected Framework
Amazon Web Services Japan
20191105 AWS Black Belt Online Seminar Amazon Route 53 Hosted Zone
Amazon Web Services Japan
AWS Black Belt Techシリーズ Amazon EBS
Amazon Web Services Japan
DynamoDBの初心者に伝えたい初めて触るときの勘所
Ryo Sasaki
NetflixにおけるPresto/Spark活用事例
Amazon Web Services Japan
AWS Black Belt Tech シリーズ 2015 - AWS Data Pipeline
Amazon Web Services Japan
Ad
Similar to IaC事始め Infrastructure as Code やってみる?
(20)
PDF
Spark Streaming on AWS -S3からKinesisへ-
chibochibo
PDF
仮想通貨取引所 bitbank の IaC の導入と実践
bitbank, Inc. Tokyo, Japan
PDF
AngularとSpring Bootで作るSPA + RESTful Web Serviceアプリケーション
ssuser070fa9
PDF
[AKIBA.AWS] VPCをネットワーク図で理解してみる
Shuji Kikuchi
PDF
AWS CloudFormationによるInfrastructure as Codeの実現
HIRA
PDF
JAWS DAYS 2015
陽平 山口
PDF
サーバーワークス re:invent_2016~新サービス・アップデート紹介~
Serverworks Co.,Ltd.
PDF
AWSクラウドデザインパターン(CDP) - コンテンツ配信編 -
Akio Katayama
PPTX
Qlik TECHTALK Qlik Cloud 日本リージョン開設!テナント作成と移行方法を解説
QlikPresalesJapan
PDF
CloudFormation/SAMのススメ
Eiji KOMINAMI
PDF
Develipers.IO 2016 E-1 「AWS Configを使ったAWS環境の見える化」
morisshi
PDF
JAWSUG20180925
陽平 山口
PDF
JAWS-UG静岡 #1 Introduction to AWS SDK for Ruby
Kazuhiko ISOBE
PDF
[Microsoft Tech Summit 2018] Azure Machine Learning サービスと Azure Databricks で実...
Naoki (Neo) SATO
PDF
de:code 2019 Cloud トラック 総まとめ!
Minoru Naito
PDF
Azure IaaS update (2018年6月~8月 発表版)
Takamasa Maejima
PDF
Spring Boot の Web アプリケーションを Docker に載せて AWS ECS で動かしている話
JustSystems Corporation
PDF
Developers.IO 2019 Effective Datalake
Satoru Ishikawa
PDF
Kubernetesのしくみ やさしく学ぶ 内部構造とアーキテクチャー
Toru Makabe
PPTX
アウトプットはスキルアップもするしトクもする
Mitsuhiro Yamashita
Spark Streaming on AWS -S3からKinesisへ-
chibochibo
仮想通貨取引所 bitbank の IaC の導入と実践
bitbank, Inc. Tokyo, Japan
AngularとSpring Bootで作るSPA + RESTful Web Serviceアプリケーション
ssuser070fa9
[AKIBA.AWS] VPCをネットワーク図で理解してみる
Shuji Kikuchi
AWS CloudFormationによるInfrastructure as Codeの実現
HIRA
JAWS DAYS 2015
陽平 山口
サーバーワークス re:invent_2016~新サービス・アップデート紹介~
Serverworks Co.,Ltd.
AWSクラウドデザインパターン(CDP) - コンテンツ配信編 -
Akio Katayama
Qlik TECHTALK Qlik Cloud 日本リージョン開設!テナント作成と移行方法を解説
QlikPresalesJapan
CloudFormation/SAMのススメ
Eiji KOMINAMI
Develipers.IO 2016 E-1 「AWS Configを使ったAWS環境の見える化」
morisshi
JAWSUG20180925
陽平 山口
JAWS-UG静岡 #1 Introduction to AWS SDK for Ruby
Kazuhiko ISOBE
[Microsoft Tech Summit 2018] Azure Machine Learning サービスと Azure Databricks で実...
Naoki (Neo) SATO
de:code 2019 Cloud トラック 総まとめ!
Minoru Naito
Azure IaaS update (2018年6月~8月 発表版)
Takamasa Maejima
Spring Boot の Web アプリケーションを Docker に載せて AWS ECS で動かしている話
JustSystems Corporation
Developers.IO 2019 Effective Datalake
Satoru Ishikawa
Kubernetesのしくみ やさしく学ぶ 内部構造とアーキテクチャー
Toru Makabe
アウトプットはスキルアップもするしトクもする
Mitsuhiro Yamashita
Ad
IaC事始め Infrastructure as Code やってみる?
1.
IaC事始め Infrastructure as Code やってみる? AWS
Div. Taishi Kajiwara
2.
2Developers.IO 2019 FUKUOKA この資料は、 ■Developers.IO
2019 FUKUOKA IaC事始め 〜Infrastructure as Codeやってみる?~] の登壇資料です
3.
スライドは後で入手することが出来ますので 発表中の内容をメモする必要はありません。 写真撮影をする場合は フラッシュ・シャッター音が出ないようにご配慮ください
4.
自己紹介 • AWS事業本部 コンサルティング部 ソリューションアーキテクト •
福岡オフィス • 好きなサービス(Codeシリーズ, DeepRacer) 梶原大使(@ambasad)
5.
本日話すこと 5 IaCって何? IaCやってみる? •Cloud Formation IaCの今後 •AWS
CDK
6.
本日話さないこと(ちょっとは話すかも) 6 - Terraform -
CloudFormation - マクロ - CDKの詳細解説
7.
7
8.
GOAL 8 IaCって何? → IaCをやりたくなる IaCもうやってるよ! →
テクニック、ヒント
9.
IaC って何?
10.
Wikipedia 10 Infrastructure as
Code(IaC) はコンピューティング・インフラ (プロセス、ベアメタルサーバー、仮想サーバーなど)の構成管 理・機械処理可能な定義ファイルの設定・プロビジョニングを自動 化するプロセスである。 https://ja.wikipedia.org/wiki/Infrastructure_as_Code
11.
手作業 11 • EC2インスタンスを作成するとき
12.
CLI / Script
12 https://docs.aws.amazon.com/ja_jp/vpc/latest/userguide/vpc-subnets-commands-example.html • AWS CLI を使用して IPv4 VPC とサブネットを作成する ステップ 1: VPC とサブネットを作成する $ aws ec2 create-vpc --cidr-block 10.0.0.0/16 ステップ2: サブネットをパブリックにします。 $ aws ec2 create-internet-gateway $ aws ec2 attach-internet-gateway --vpc-id vpc-2f09a348 -- $ internet-gateway-id igw-1ff7a07b ステップ 3: サブネット内にインスタンスを起動する ….
13.
課題 13 • 手作業によるヒューマンエラー •
属人化 • ドキュメント不足 • 再利用できない • 依存関係がわからない • 不要になった際のリソースの消し忘れ ー> 同じ構成のインフラが構築できない ー> 引き継げない
14.
14 Infrastructure as Code
15.
どこからIaC? 15 Code •コードの記載 Version Control •コードの管理 Code Review •コードの更新確認 deploy •リソースの作成、更新
16.
ここまでやれば 16 •自動化(リソース作成) •レビュー/テストの実施 •再利用可能 •依存関係の明確化 •不要リソースの削除 •コスト減 •構築速度改善 課題解決+α
17.
17 デメリット
18.
デメリット 18 デメリット ツールの習熟が必要
CloudFormation Terraform Ansible etc.. ツールがサポートしていな いリソース、プロパティが ある 新しいサービス 細かい設定 検証作業が必要 (でもこれはポチポチよりはまし) プログラムミス 予期しないリソース変更 完全な自動化 まではちょっと大変 自動化環境 の環境構築の自動化
19.
19 IaC 事始め
20.
AWS 20 Code •コードの記載 Version Control •コードの管理 Code Review •コードのレビュー Integrage •リソースの作成(更新) Code •CloudFormation Version Control •CodeCommit •CloudFormation Code
Review •CodePipeline(確認) •CloudFormation Integrage •CodePipeline/CodeBuild ->CloudFormation
21.
21 AWS CloudFormation
22.
AWS CloudFormation 22 https://d1.awsstatic.com/webinars/jp/pdf/services/20181128-AWS-BlackBelt-CloudFormation.pdf
23.
サポートされている AWS リソースタイプ(一部)
23 https://docs.aws.amazon.com/ja_jp/AWSCloudFormation/latest/UserGuide/aws-template-resource-type-ref.html Alexa Skill AmazonMQ Amplify Console API Gateway App Mesh AppStream 2.0 AppSync Athena AWS Auto Scaling Amazon EC2 Auto Scaling AWS Backup AWS Batch AWS Budgets Certificate Manager AWS Cloud9 CloudFormatio n CloudFront AWS Cloud Map CloudTrail CloudWatch CodeBuild CodeCommit CodeDeploy CodePipeline CodeStar Amazon Cognito Config AWS Data Pipeline DAX Directory Service DLM DMS Amazon DocumentDB DynamoDB EC2 Amazon ECR ECS EFS EKS ElastiCache Elasticsearch Elastic Beanstalk Elastic Load Balancing Amazon EMR FSx GameLift AWS Glue GuardDuty IAM Inspector IoT Amazon Kinesis KinesisAnalyti cs Amazon Kinesis Data Firehose KMS LakeFormatio n Lambda ManagedBlock chain MediaLive MediaStore MSK Amazon Neptune OpsWorks Pinpoint PinpointEmail QLDB RAM RDS Amazon Redshift RoboMaker Route 53 Amazon S3 Amazon SageMaker Secrets Manager Service Catalog SecurityHub SES Amazon SimpleDB Amazon SNS Amazon SQS Step Functions Systems Manager AWS SFTP WAF WorkSpaces
24.
24 https://d1.awsstatic.com/webinars/jp/pdf/services/20181128-AWS-BlackBelt-CloudFormation.pdf
25.
25 Hello CloudFormation
26.
26 やってみる
27.
3行テンプレート 27 Resources: S3Bucket: Type: AWS::S3::Bucket YAML
28.
1行テンプレート 28 {"Resources":{"S3Bucket":{"Type":"AWS::S3::Bucket"}}} JSON
29.
スタックの作成 29 https://us-west-2.console.aws.amazon.com/cloudformation/home?region=us-west-2#/stacks?filteringText=&filteringStatus=active&viewNested=true&hideStacks=false
30.
スタックの作成 30
31.
デザイナーで表示 31 テンプレートの検証
32.
スタックの作成 32
33.
スタックの作成 33
34.
34
35.
35
36.
スタックの作成 36
37.
スタックの作成 37
38.
スタックの作成 38
39.
スタックの作成 39
40.
スタックの作成 40
44.
44 更新してみる
45.
テンプレート更新 45 Resources: S3Bucket: Type: AWS::S3::Bucket Properties: BucketName:
mys3bcuket-q6eqw VersioningConfiguration: Status: Suspended YAML バケット名 バージョニング:無効
51.
置換がTrue の場合はリソースが置換されます 削除&再作成
54.
54 設定を手で勝手に変えてみた
56.
56 設定変更検出してみた
59.
スタックの作成 59
62.
62 ちょっとコードっぽくしてみる
63.
63 https://d1.awsstatic.com/webinars/jp/pdf/services/20181128-AWS-BlackBelt-CloudFormation.pdf
64.
テンプレート更新 64 AWSTemplateFormatVersion: 2010-09-09 Description:
S3 Bucket Create Parameters: BucketName: Type: String AllowedPattern: "[A-Za-z0-9-]+" Description: Enter BuckeName Versioning: Type: String Default: "Disabled" AllowedValues: ["Enabled", "Disabled"] Description: Enter Versioning Enable Mappings: VersioningMap: "Enabled": "VersioningStatus": "Enabled" "Disabled": "VersioningStatus": "Suspended" Resources: S3Bucket: Type: AWS::S3::Bucket Properties: BucketName: !Sub '${BucketName}-${AWS::AccountId}' VersioningConfiguration: Status: !FindInMap [ VersioningMap, !Ref Versioning, VersioningStatus] YAML
65.
テンプレート更新(前半部分) 65 AWSTemplateFormatVersion: 2010-09-09 Description:
S3 Bucket Create Parameters: BucketName: Type: String AllowedPattern: "[A-Za-z0-9-]+" Description: Enter BuckeName Versioning: Type: String Default: "Disabled" AllowedValues: ["Enabled", "Disabled"] Description: Enter Versioning Enable YAML バケット名を入力できるように バージョニング有無を選択でき るように
66.
テンプレート更新(後半部分) 66 Mappings: VersioningMap: "Enabled": "VersioningStatus": "Enabled" "Disabled": "VersioningStatus":
"Suspended“ Resources: S3Bucket: Type: AWS::S3::Bucket DeletionPolicy: Retain Properties: BucketName: !Sub '${BucketName}-${AWS::AccountId}' VersioningConfiguration: Status: !FindInMap [ VersioningMap, !Ref Versioning, VersioningStatus] YAML バージョニングの有無を変換 入力した値を使用する アカウントIDを追加してみる Mapした値を使用
74.
74 コンソールの手作業もやめたい
75.
コンソールの手作業もやめたい 75 •テンプレートをコードとして扱う •リポジトリに登録 •コミットを検出 •テンプレートのチェック •スタックを作成/更新 CI/CDの導入
76.
76 うちのCFnでかいんだけど
77.
うちのCFnでかいんだけど 77 https://d1.awsstatic.com/webinars/jp/pdf/services/20181128-AWS-BlackBelt-CloudFormation.pdf
78.
78 CloudFormationのかゆいところ
79.
かゆいところ 79 - CloudFormation -
ツールがサポートしていないリソースがあるとき - 外部のリソースを使うとき - 繰り返し - 条件分岐 - マルチリージョンで複製したい
80.
80 これはやめとけ
81.
81 - IaCで管理していない既存の環境をCloudFormationで更新する
82.
82 - IaCで管理していない環境をCloudFormationで更新する のではなく、クラウドの利点を生かして、 サクッと新しい環境を作成して、切り替えましょう - 既存の環境を参考にCloudFormationで新規作成してIaCで管理する
83.
83 テンプレートサンプル紹介
84.
AWS 公式サンプルテンプレート 84 https://docs.aws.amazon.com/ja_jp/AWSCloudFormation/latest /UserGuide/cfn-sample-templates.html
85.
awslabs 85 https://github.com/awslabs/aws-cloudformation-templates
86.
Developers.IO CloudFormation 特集
86 https://dev.classmethod.jp/referencecat/aws-cloudformation/
87.
CloudFormation一撃 87 https://dev.classmethod.jp/cloud/aws/ cloudformation-guardduty-lambda-sns- publish/ https://dev.classmethod.jp/cloud/aws/ codepipeline-s3-deploy-cfn-web/
88.
88 IaCの今後(※願望含む)
89.
IaCのアプローチ (Wikipedia) 89 宣言型プログラミング(機能的)、命令型プログラミング(手続き的)、とインテリジェント(環境 認識)の3つのIaCアプローチがある。それらの違いは「何」「どのように」と「なぜ」の違いと同じ である。[3] 宣言型プログラミング(機能的)は「何」 最終的なターゲット設定が何であるべきかに焦点を当てている。 •目的の様子(所望の状態?)を定義すると、システムはその様子を達成するために必要な何かを実行 する。 命令型プログラミング(手続き的)は「どのように」 最終的なターゲット設定を満たすために、インフラがどのように変化すべきかに焦点を当てている。 •目的の様子で終了するために、適切な順序で実行する必要があるコマンドを定義する。 インテリジェント(環境認識)は「なぜ」 同じインフラストラクチャで実行されている複数のアプリケーションの全ての相互関係と依存性を考 慮し、最終的なターゲット設定が、特定の方法による理由に焦点を当てている。 •相互依存(共依存)アプリケーションに影響を与えないように、システムは起こる必要がある何かを 処理する前に、目的の状態を決定する。 環境を意識した状態がIaCの次世代である。
https://ja.wikipedia.org/wiki/Infrastructure_as_Code
90.
直近 90 - CloudFormation -
(ここは願望なのでトークオンリー) - CloudFormer (β) - Roadmap https://github.com/aws-cloudformation/aws-cloudformation-coverage-roadmap/projects/1
91.
91 - Roadmap https://github.com/aws-cloudformation/aws-cloudformation-coverage-roadmap/projects/1
92.
92 - AWS CDK -
AWS CDK自体はTypeScriptで実装 - .Net, Java(β)などで記述、呼び出せる。 - CFnに比べ記述が少なくて済む(デフォルトパターンの充実) - 条件分岐 - 繰り返し
93.
93 AWS CDK
94.
94 やってみる(本日2度目)
95.
cdk bootstrap 95 TypeScript
でCDKを使ってAWS リソースを作成します。 最初にやる事 Bootstrap
96.
VPC AWS Cloud Availability Zone
1 Auto Scaling group Availability Zone 2 NAT Gateway NAT Gateway Instance InstanceAmazon EC2 Auto Scaling Application Load Balancer コードを記述(index.ts)
99.
cdk synth 99 $cdk
synth CDKの内部で使用するCloudFormation テンプレートの出力/確認
101.
省略… 500行以上あります。
102.
cdk deploy 102 $cdk
deploy リソースのデプロイ
103.
cdk destroy 103 $cdk
destroy リソースの削除
104.
まとめ •Infrastructure as Code •コード化することで、ミスや属人性を排除し、環境構築を自動化する取り組み IaCってなに? •AWS
CloudFormationの紹介 •コードの管理、デプロイ、差分検出 IaCやってみる •手続き的なアプローチ、インテリジェント(環境認識)なアプローチ •AWS CDK 概要 IaCの今後
105.
105
106.
GOAL 106 - IaCってなに? ->
IaCをちょっとやりたくなりました? - IaCもうやってるよ! -> なにか1つでもヒントがありましたでしょうか? - IaCの分野はあまり詳しくはないのですが。 -> Talk to the Speaker!
107.
107 もっといろんなIaCが やりたい!
108.
We are hiring! ぜひクラスメソッドへ。 AWS事業本部は AWSエンジニアを募集しています
109.
ご 清 聴 あ り が と う ご ざ い ま し た
Download