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
Continuous Deployment with Go on AWS ECS
Search
Kazuhisa Togo
December 12, 2016
Programming
1
4.1k
Continuous Deployment with Go on AWS ECS
Kazuhisa Togo
December 12, 2016
Tweet
Share
More Decks by Kazuhisa Togo
See All by Kazuhisa Togo
AWS・Hubot・Slackで ChatOpsする話[実装編]
ktogo
0
870
Golangで支えるハイパフォーマンスAPI
ktogo
6
3k
SIMD meets ES7
ktogo
0
100
Other Decks in Programming
See All in Programming
カクヨムAndroidアプリのリブート
numeroanddev
0
430
データベースコネクションプール(DBCP)の変遷と理解
fujikawa8
1
270
業務自動化をJavaとSeleniumとAWS Lambdaで実現した方法
greenflagproject
1
120
A comprehensive view of refactoring
marabesi
0
970
DroidKnights 2025 - 다양한 스크롤 뷰에서의 영상 재생
gaeun5744
3
300
Perplexity Slack Botを作ってAI活用を進めた話 / AI Engineering Summit プレイベント
n3xem
0
670
Passkeys for Java Developers
ynojima
3
870
第9回 情シス転職ミートアップ 株式会社IVRy(アイブリー)の紹介
ivry_presentationmaterials
1
190
生成AIコーディングとの向き合い方、AIと共創するという考え方 / How to deal with generative AI coding and the concept of co-creating with AI
seike460
PRO
1
320
単体テストの始め方/作り方
toms74209200
0
510
Using AI Tools Around Software Development
inouehi
0
1.2k
地方に住むエンジニアの残酷な現実とキャリア論
ichimichi
2
590
Featured
See All Featured
Being A Developer After 40
akosma
90
590k
For a Future-Friendly Web
brad_frost
179
9.8k
YesSQL, Process and Tooling at Scale
rocio
173
14k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
233
17k
It's Worth the Effort
3n
184
28k
Site-Speed That Sticks
csswizardry
10
650
How to Think Like a Performance Engineer
csswizardry
24
1.7k
Bootstrapping a Software Product
garrettdimon
PRO
307
110k
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
3.9k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
124
52k
StorybookのUI Testing Handbookを読んだ
zakiyama
30
5.8k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
48
2.8k
Transcript
Continuous Deployment with Go on AWS ECS Kazuhisa Togo
Kazuhisa Togo a backend developer works at kazuhisa.togo
Kazuhisa Togo some British financial company some web dev company
in Sydney freelancer, etc.
None
ෳͷϚΠΫϩαʔϏεʹ ౷ҰͷΞΧϯτΛఏڙ
Service Service Service Account Account Account Account Account Account ͕ͳ͍ͱ͖
Service Service Service O A uth 2 OAuth 2 OAuth
2 Account Account ͕͋Δͱ͖
API/Core → Go Backend → PHP Front end → Angular
ࠓͷ͓
Continuous Deployment
https://puppet.com/blog/continuous-delivery-vs-continuous-deployment-what-s-diff
࠷ॳͷσϓϩΠखॱ
ϩʔΧϧͰςετ
ssh ϩʔΧϧͰςετ
ssh go get ϩʔΧϧͰςετ
ssh go get go build ϩʔΧϧͰςετ
ssh go get go build restart ϩʔΧϧͰςετ
ssh go get go build restart खಈ खಈ खಈ ϩʔΧϧͰςετ
खಈ
͍͚ͯͳ͍
ssh go get go build restart ϩʔΧϧͰςετ → ͔͔࣌ؒΔ
ssh go get go build restart ϩʔΧϧͰςετ → ةݥ →
͔͔࣌ؒΔ
ssh go get go build restart ϩʔΧϧͰςετ → αʔόʔʹιʔεஔ͘ʁ →
ةݥ → ͔͔࣌ؒΔ
ssh go get go build restart ϩʔΧϧͰςετ → αʔόʔʹιʔεஔ͘ʁ →
ةݥ → αʔόʔͰΔʁ → ͔͔࣌ؒΔ
ssh go get go build restart ϩʔΧϧͰςετ → ڪා →
αʔόʔʹιʔεஔ͘ʁ → ةݥ → αʔόʔͰΔʁ → ͔͔࣌ؒΔ
ͦ͏ͩࣗಈԽ͠Α͏
CIͰςετࣗಈԽ
ssh go get go build restart ϩʔΧϧͰςετ ✔
͍ͭͰʹϏϧυ
ssh go get go build restart ϩʔΧϧͰςετ ✔ ✔ ✔
CodeDeployͱΈ߹Θͤͯ Continuous Deployment
CodeDeploy S3 EC2 ͓͓·͔ͳྲྀΕ
CodeD S3 ϦϙδτϦʹ git push
CodeD S3 GitHub Hook
CodeD S3 ϒϥϯνͷσʔλΛऔಘ Ϗϧυˍςετ
CodeDeploy S3 E σϓϩΠ༻ͷϑΝΠϧҰࣜΛΞʔΧΠϒ S3ʹసૹ
CodeDeploy S3 EC2 ४උ͕Ͱ͖ͨΒCodeDeployݺͼग़͠
CodeDeploy S3 EC2 S3͔ΒΞʔΧΠϒΛμϯϩʔυ ల։ɾΠϯετʔϧ
CodeDeploy S3 EC2 ΞϓϦέʔγϣϯͷ࠶ىಈ
CodeDeploy S3 EC2 git push ͰσϓϩΠ·Ͱ࣮ߦ
ssh go get go build restart ϩʔΧϧͰςετ ✔ ✔ ✔
✔ ʁ
ssh go get go build restart ϩʔΧϧͰςετ ✔ ✔ ✔
✔ ʁ → ·ͩڪා
ຊ൪≠ϩʔΧϧڥ
ຊ൪ΛϩʔΧϧͰ࠶ݱ͍ͨ͠
ίϯςφʹΑΔԾԽ
ຊ൪ͱαʔόʔͰಉ͡ڥ
͔͠͠…
None
GCP͡Όͳ͍
ͳʹ͔ΘΓʹͳΔͷ…ʁ
EC2 Container Service
EC2 ECS ECR ECSͷΈ
EC2 ECS ECR ؋Ϛγϯ DockerίϯςφΛΒͤΔ
EC2 ECS ECR DockerίϯςφͷϚωδϝϯτ ࢮ׆ࢹͳͲ
EC2 ECS ECR DockerΠϝʔδͷϓϥΠϕʔτஷଂݿ
EC2 ECS ECR 3ͭ߹ΘͤͯDockerίϯςφཧ
͜ΕͰઓ͑Δ…ʂʁ
͔͠͠ݱ࣮͔ͬͨ
Write Test Run Build Test Run
Write Test Run Build Test Run ✔
Write Test Run Build Test Run ✔ ✔
Write Test Run Build Test Run ✔ ✔ ✘ FAIL
ຊ൪ͱαʔόʔ ಉ͡ڥ ✔ ✔ ✘
ຊ൪ͱαʔόʔ ಉ͡ڥ Alpine Linux ✔ ✔ ✘
CircleCI࣮Dockerϕʔε ✔ ✔ ✘
ͨͩ͠Ubuntu ✔ ✔ ✘
Mac্ͷDockerͰಈ͔ͳ͍ ✘ ✔ ✘ FAIL
͕ͩMacͰϏϧυͨ͠ϑΝΠϧOK ✔ ✔ PASS
UbuntuͳΒಈ͘ ✔ ✔ ✔ PASS
ݪҼ͍ͭ͜ ✔ ✔ ✘
ڥґଘ ✔ ✔ ✘
͡Ό͋ಉ͡ڥʹ͠Α͏ ✔ ✔ ✘
ͰCircleCIͷίϯςφUbuntu͔͠ͳ͍ ✔ ✔ ✘
✔ Docker on Docker
✔ ✔ ڥΛશ౷Ұ
✔ ✔ ಈ͍ͨʂ ✔ PASS
ssh go get go build restart ϩʔΧϧͰςετ ✔ ✔ ✔
✔ ✔
σϓϩΠ͏ා͘ͳ͍ʂ
ࣗಈԽͱڥ౷ҰͰ ແବͷͳ͍ΞδϟΠϧੜ׆Λ
Enjoy Fearless Deployment!