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.3k
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
7.8k
「Laravel Novaの適切な使い方を考えてみる」 / laravel meetup tokyo vol 11
suthio
1
2.1k
バッチをGoにリプレイスして高速化した話 / GoGoGolangEdition!
suthio
2
29k
本当は怖くない AWS Lambda / speee_cafe_meetup06
suthio
2
900
広告配信サーバーにおけるBlue Green Deploymentの導入事例について \ SpeeeCafeMeetup05
suthio
3
1.9k
初めての本当の意味でのチーム開発 / 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
【DroidKaigi 2026】「アクセシビリティを利用するとき、 アクセシビリティもまたこちらを利用している」 〜マルウェアによる攻撃と防衛について〜
halunoyo
0
460
LL言語やWebフレームワークのPostgreSQL対応 〜DBの機能がユーザーに届くまで〜
kentaroutakeda
1
150
Webの地図
yosuke_furukawa
PRO
6
4.5k
AIは賢い。でも実行環境は? CLIおじさんがAI時代に伝えたいこと ~ CLIおじさんがAI時代に伝えたいこと ~
curekoshimizu
1
240
『寄り添うラジオ』をAIで作る 体験価値から逆算した、会話しないUXと品質設計
theoriatec2024
3
180
From 6 People Classroom Meetup to 100 People Regional Conference / FOSS4G Hiroshima 2026
furukawayasuto
0
200
Family mrubyの進捗
kishima
1
120
海上で動くGoサーバー: goroutineとchannelでさばく航行データストリーム
atsuki_seo
0
690
AgentCore CLI で進化した AWS での AI エージェントの作り方 : 必要な機能を必要な時に
icoxfog417
PRO
3
340
XP祭りでしか伝わらないフリップネタ #xpjug
murabayashi
0
150
VueプロジェクトをTypeScript7に対応させる- Side-by-Side戦略による一部高速化 -
koukimiura
0
110
Vue Fes Japan 2026 タイムテーブル徹底解説
448jp
0
140
Featured
See All Featured
My Coaching Mixtape
mlcsv
0
310
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
162
16k
The Power of CSS Pseudo Elements
geoffreycrofte
82
6.6k
A designer walks into a library…
pauljervisheath
211
25k
Organizational Design Perspectives: An Ontology of Organizational Design Elements
kimpetersen
PRO
1
830
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
9
1.6k
<Decoding/> the Language of Devs - We Love SEO 2024
nikkihalliwell
1
330
Building Experiences: Design Systems, User Experience, and Full Site Editing
marktimemedia
1
610
The untapped power of vector embeddings
frankvandijk
2
1.9k
From π to Pie charts
rasagy
1
370
Neural Spatial Audio Processing for Sound Field Analysis and Control
skoyamalab
0
500
Ten Tips & Tricks for a 🌱 transition
stuffmc
1
230
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ͷΠϯϑϥߏஙίʔυԽ͠Α͏ʂ