Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
TerraformとAWS ECSに入門しました
Search
Yusuke Sasaki
May 24, 2019
Technology
1
84
TerraformとAWS ECSに入門しました
社内LT資料
https://booth.pm/ja/items/1316133
を読んだ話
Yusuke Sasaki
May 24, 2019
Tweet
Share
Other Decks in Technology
See All in Technology
ずっと昔に Star をつけたはずの思い出せない GitHub リポジトリを見つけたい!
rokuosan
0
150
【re:Invent 2024 アプデ】 Prompt Routing の紹介
champ
0
150
複雑性の高いオブジェクト編集に向き合う: プラガブルなReactフォーム設計
righttouch
PRO
0
120
なぜCodeceptJSを選んだか
goataka
0
160
Opcodeを読んでいたら何故かphp-srcを読んでいた話
murashotaro
0
280
NilAway による静的解析で「10 億ドル」を節約する #kyotogo / Kyoto Go 56th
ytaka23
3
380
AI時代のデータセンターネットワーク
lycorptech_jp
PRO
1
290
Wantedly での Datadog 活用事例
bgpat
1
520
DevFest 2024 Incheon / Songdo - Compose UI 조합 심화
wisemuji
0
120
生成AIをより賢く エンジニアのための RAG入門 - Oracle AI Jam Session #20
kutsushitaneko
4
260
統計データで2024年の クラウド・インフラ動向を眺める
ysknsid25
2
850
日本版とグローバル版のモバイルアプリ統合の開発の裏側と今後の展望
miichan
1
130
Featured
See All Featured
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
48
2.2k
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
8
1.2k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
226
22k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
507
140k
Code Review Best Practice
trishagee
65
17k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
33
2k
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
0
98
Git: the NoSQL Database
bkeepers
PRO
427
64k
The Pragmatic Product Professional
lauravandoore
32
6.3k
Reflections from 52 weeks, 52 projects
jeffersonlam
347
20k
Fireside Chat
paigeccino
34
3.1k
YesSQL, Process and Tooling at Scale
rocio
169
14k
Transcript
TerraformとAWS TerraformとAWS ECSに入門しました ECSに入門しました 佐々木 2019/05/24 LT大会 佐々木 2019/05/24 LT大会
1 1
技術書典6で買ったterraform本 技術書典6で買ったterraform本 TerraformとAWSに特化したノウハウ本、おす TerraformとAWSに特化したノウハウ本、おす すめ すめ Kubernetesなどクラウドネイティブなアプリ Kubernetesなどクラウドネイティブなアプリ ケーション開発をしてみたという話 ケーション開発をしてみたという話
=> 今回「コンテナ時代の~」を写経しました => 今回「コンテナ時代の~」を写経しました コンテナ時代のWebサービスの作り方 コンテナ時代のWebサービスの作り方 Pragmatic Terraform on AWS Pragmatic Terraform on AWS showKsではじめるクラウドネイティブ開発 showKsではじめるクラウドネイティブ開発 3 3
コンテナ時代のWebサービスの作り方 コンテナ時代のWebサービスの作り方 GitHub/CircleCI/Docker/Terraformなどを使って GitHub/CircleCI/Docker/Terraformなどを使って ECS上でRailsを動かす話 ECS上でRailsを動かす話 4 4
terraformとは terraformとは AWS/Azure/GCPなどのクラウドリソースを構成 AWS/Azure/GCPなどのクラウドリソースを構成 管理するツール 管理するツール AWS EC2インスタンスを管理する例 AWS EC2インスタンスを管理する例
( ( ): ): sample.tf sample.tf provider provider "aws" "aws" { { region region = = "ap-northeast-1" "ap-northeast-1" } } resource resource "aws_instance" "aws_instance" "sandbox" "sandbox" { { ami ami = = "ami-785c491f" "ami-785c491f" instance_type = instance_type = "t2.micro" "t2.micro" } } 5 5
terraformとは terraformとは ディレクトリの初期化、"aws"プロバイダーのた ディレクトリの初期化、"aws"プロバイダーのた めのプラグインをインストール めのプラグインをインストール .tfファイルのdry‑run、変更内容の整合性や差分 .tfファイルのdry‑run、変更内容の整合性や差分 を確認 を確認
.tfファイルを元にインフラを構築する、.tfstate .tfファイルを元にインフラを構築する、.tfstate ファイルに管理下となった状態を格納 ファイルに管理下となった状態を格納 terraform init terraform init terraform plan terraform plan terraform apply terraform apply 6 6
Amazon ECS Amazon ECS Elastic Container Service(ECS) Elastic Container Service(ECS)
Dockerコンテナをサポートするマネージドなコ Dockerコンテナをサポートするマネージドなコ ンテナオーケストレーションサービス ンテナオーケストレーションサービス クラスタ・サービス・タスク定義といった概念 クラスタ・サービス・タスク定義といった概念 がある がある 7 7
Terraform ディレクトリ構成 Terraform ディレクトリ構成 各ディレクトリに対してinit/plan/applyする 各ディレクトリに対してinit/plan/applyする ecr/ // ECR(Docker )
管理 ecr/ // ECR(Docker ) 管理 iam/ // IAM( ) 管理 iam/ // IAM( ) 管理 service/ // ECS( ) 管理 service/ // ECS( ) 管理 vpc/ // VPC(仮想 ) 管理 vpc/ // VPC(仮想 ) 管理 8 8
terraform apply後のアーキテクチャ terraform apply後のアーキテクチャ 9 9
CircleCI デプロイの様子 CircleCI デプロイの様子 10 10
デプロイ(1/3) docker buildしてpush デプロイ(1/3) docker buildしてpush 11 11
デプロイ(2/3) タスク定義更新 デプロイ(2/3) タスク定義更新 12 12
デプロイ(3/3) DB migration デプロイ(3/3) DB migration 13 13
CloudWatch migrationのログ CloudWatch migrationのログ 14 14
まとめ まとめ ECSでwebアプリのCI/CDする環境をterraformを ECSでwebアプリのCI/CDする環境をterraformを 使って構築した 使って構築した 入門したけどどハマりポイントはたくさんあり 入門したけどどハマりポイントはたくさんあり AWS奥が深い AWS奥が深い
特にネットワーク周り理解不足なので今後精進 特にネットワーク周り理解不足なので今後精進 していきます していきます 15 15