Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
AWSインフラ構築ツールとしてのTerraform / SpeeeKaigi
Search
yuma iwasaki
August 08, 2016
Programming
2.4k
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
AWSインフラ構築ツールとしてのTerraform / SpeeeKaigi
SpeeeKaigiで話しました
yuma iwasaki
August 08, 2016
More Decks by yuma iwasaki
See All by yuma iwasaki
僕のキャリアとワインと鍋 / daikichijojipm
suthio
11
8k
「Laravel Novaの適切な使い方を考えてみる」 / laravel meetup tokyo vol 11
suthio
1
2.1k
バッチをGoにリプレイスして高速化した話 / GoGoGolangEdition!
suthio
2
29k
本当は怖くない AWS Lambda / speee_cafe_meetup06
suthio
2
920
広告配信サーバーにおけるBlue Green Deploymentの導入事例について \ SpeeeCafeMeetup05
suthio
3
2k
初めての本当の意味でのチーム開発 / pmjp 2016-12-03
suthio
4
1.9k
広告配信サーバーの設計について / Speee Engineer Meeting 2016-06-22
suthio
5
2.8k
しくじり先生 アドネットワーク開発でしくじった話 / yapc8oji
suthio
2
2.1k
Other Decks in Programming
See All in Programming
React Native経験者が Flutterを30⽇間触って驚いたこと
3saito
0
160
Vue.jsで作る空間解析アプリとCapacitorプラグインのData Bridge
hal_spidernight
1
160
SFCで実現する病院・医療システムの動的組み立て式UI
koukimiura
1
170
當我們開始不讀 Code - AI Agent 時代,Code Review 與 Clean Code 還剩下什麼?
jame2408
1
360
コーディング自動化の次へ。人の介入をゼロにするファクトリーとサポートAIによる実践
timakin
5
5.1k
動画プレイヤーはなぜカクつくのか 〜Flutterのレンダリングとネイティブの境界を解剖する〜
naruogram
0
330
LLM 101
dalinaum
0
470
プロジェクトコードをキレイキレイしよう!暗黙的な参照を読み解く静的解析
ostk0069
0
210
AI時代のIaC入門 〜なぜインフラをコードで管理したいのか?〜 / Introduction to IaC in the AI Era
akihisaikeda
6
1.4k
S3 TablesのIcebergデータに、AIエージェントからアクセスしてみた / 20261016developersio2026joetsu-accessing-iceberg-in-s3tables-via-agent
kasacchiful
PRO
0
280
Rails初心者がパスキーを実装してみて大変だったこと
ktombow
0
150
ChromeでローカルLLM
ryu1013
0
200
Featured
See All Featured
Raft: Consensus for Rubyists
vanstee
143
7.9k
The B2B funnel & how to create a winning content strategy
katarinadahlin
PRO
1
610
My Coaching Mixtape
mlcsv
0
380
Are puppies a ranking factor?
jonoalderson
2
4.1k
Have SEOs Ruined the Internet? - User Awareness of SEO in 2025
akashhashmi
0
540
ラッコキーワード サービス紹介資料
rakko
5
5.7M
The Cult of Friendly URLs
andyhume
79
7.1k
A Soul's Torment
seathinner
8
3.9k
A better future with KSS
kneath
240
18k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
32
3.1k
From π to Pie charts
rasagy
1
440
Why Your Marketing Sucks and What You Can Do About It - Sophie Logan
marketingsoph
0
460
Transcript
AWSΠϯϑϥߏஙπʔϧͱͯ͠ͷTerraform
resource "Profile" "Yuma Iwasaki" { company = "Speee Inc." division
= "Web Marketing" development_product = "UZOU ~ Native Ad Network" age = 25 programming_language [ "Ruby", "Scala", "Golang" ] }
agenda • Terraformͱʁ • AWSΠϯϑϥߏஙπʔϧൺֱ • Terraform͍ํ • ΒͲ͏͍ͬͯΔͷ͔
None
None
ΠϯϑϥߏΛίʔυԽ͢Δ͜ͱͷͰ͖Δπʔϧ
ͲΜͳ͜ͱ͕Ͱ͖Δ͔ • IaaSͷαʔόʔߏஙͷίʔυԽ • Amazon Web Services • Google Cloud
Platform • Microsoft Azure • Heroku SetupͷίʔυԽ
ओʹAWSͷΠϯϑϥߏஙπʔϧͱͯ͠ΘΕ͍ͯΔ
͜Μͳܦݧͳ͍Ͱ͔͢ʁ • VPCΛ࡞Δࡍɺςετڥͱຊ൪ڥಉ͡ૢ࡞Λͯ͠࡞ͨ͠ ͭΓ͕ͩҰ෦ؒҧ͍͑ͯͨ • ϚωδϝϯτίϯιʔϧΛݟΔͱ͍ͭͷؒʹ͔ṖͷΠϯελϯ ε͕Ͱ͖ͯͯɺ͍ͭ୭͕࡞͔͕ͨ͠Θ͔Βͳ͍
AWSͷΠϯϑϥߏஙΛίʔυԽ͢Δͱͳʹ͕͍͍ͷ͔ʁ
AWSͷΠϯϑϥߏஙΛίʔυԽ͢Δͱͳʹ͕͍͍ͷ͔ʁ • ϛεΒͳ͍ • ਓͷखϛε͠·͕͢ɺػցϛε͠ͳ͍ • ίʔυԽ͢Δ͜ͱʹΑͬͯཤྺཧ͕Մೳ • Կճߏங͢Δ߹ʹޮత •
ίϐϖͰڥߏங͕Ͱ͖Δ
Pull RequestϕʔεͰΠϯϑϥߏங͕Ͱ͖Δɻ
AWSΠϯϑϥߏஙπʔϧ • CloudFormation • Terraform • Ansible
Terraform VS CloudFormation VS Ansible
AWSରԠ • CloudFormation • AWSެࣜαʔϏεͳͷͰ΄΅શͯͷAWSαʔϏε͕ରԠ • ৽͍͠αʔϏεʹରͯ͠ɺ͍ͪૣ͘ରԠ • Terraform •
ଟ͘ͳਓ͕͏Α͏ͳαʔϏε΄΅ରԠ • Ansible • ଟ͘ͷਓ͕͏Α͏ͳαʔϏε΄΅ରԠ
هड़ํࣜ • CloudFormation • JSON • Terraform • ෦DSL •
Ansible • YAML
DryRun • CloudFormation • None • Terraform • શͯͷ࣮ߦterraform planͰ֬ೝՄೳ
• Ansible • --dry-runΦϓγϣϯͰҰ෦ରԠ
طଘڥͷίʔυԽ • CloudFormation • Cloudfomer • Terraform • Terraforming •
Ansible • None
None
ิ
TerraformͰCloudFormationɺAnsibleΛ࣮ߦ͢Δ͜ͱ͕Ͱ͖Δɻ
Terraform͍ํ
provider "aws" { region = "ap-northeast-1" } resource "aws_instance" "web"
{ ami = "ami-408c7f28" instance_type = "t1.micro" tags { Name = "HogeHogeEC2Instance } }
terraform plan
+ aws_instance.web ami: "" => "ami-408c7f28" availability_zone: "" => "<computed>"
ebs_block_device.#: "" => "<computed>" ephemeral_block_device.#: "" => "<computed>" instance_state: "" => "<computed>" instance_type: "" => "t1.micro" key_name: "" => "<computed>" placement_group: "" => "<computed>" private_dns: "" => "<computed>" private_ip: "" => "<computed>" public_dns: "" => "<computed>" public_ip: "" => "<computed>" root_block_device.#: "" => "<computed>" security_groups.#: "" => "<computed>" source_dest_check: "" => "1" subnet_id: "" => "<computed>" tags.#: "" => "1" tags.Name: "" => "HogeHoge" tenancy: "" => "<computed>" vpc_security_group_ids.#: "" => "<computed>" Plan: 1 to add, 0 to change, 0 to destroy.
terraform apply
ࠂ৴γεςϜͷ։ൃͰͲ͏͍ͬͯΔͷ͔
None
ࡶʹͳΓ͕ͪͳΠϯϑϥΛίʔυԽͯ͠ཧ
AWSͷαʔϏε͝ͱʹϑΝΠϧΛ͚ͯཧ͍ͯ͠Δɻ
ଞͷ։ൃͰ༗ޮ׆༻Ͱ͖Δ • ֤αʔϏεͷAWSڥΛඪ४Խͯ͠TerraformԽ͢Δ͜ͱͰɺ ߴ͔ͭ҆શʹΠϯϑϥߏஙΛߦ͏͜ͱ͕Ͱ͖ΔΑ͏ʹͳΔɻ • ༰қʹςετڥΛߏங͢Δ͜ͱ͕Ͱ͖ɺ MicroservicesԽͨ࣌͠ͷςετ͕Γ͘͢ͳΔ
͓·͚
v0.7.0৽ػೳ • Data Resource • S3ͳͲ֎෦͔ΒΛಡΈࠐΜͰTerraform࣮ߦ͕Մೳ • Importػೳ • ݱࡏͷΠϯϑϥঢ়ଶ͔ΒTerraformͷίʔυΛੜʢtfϑ
ΝΠϧͷΈʣ
AWSͷΠϯϑϥߏஙίʔυԽ͠Α͏ʂ