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
GitHub ActionsでLambdaコンテナをデプロイしてみた - NIFTY Tech...
Search
ニフティ株式会社
PRO
November 02, 2023
Video
Resources
Programming
0
410
GitHub ActionsでLambdaコンテナをデプロイしてみた - NIFTY Tech Talk #15
ニフティ株式会社
PRO
November 02, 2023
Tweet
Share
Video
Resources
今さら聞けない!GitHub Actions超入門 - NIFTY Tech Talk #15
https://nifty.connpass.com/event/299800/
More Decks by ニフティ株式会社
See All by ニフティ株式会社
AWS AppSyncを用いた GraphQL APIの開発について - NIFTY Tech Talk #22
niftycorp
PRO
0
78
「天気予報があなたに届けられるまで」 - NIFTY Tech Talk #22
niftycorp
PRO
0
87
@nifty天気予報:フルリニューアルの挑戦 - NIFTY Tech Talk #22
niftycorp
PRO
0
84
@nifty天気予報のフロントエンドを 実装するまで - NIFTY Tech Talk #22
niftycorp
PRO
0
84
Application Signalsで始めるSLO ユーザー満足度を数値化する第一歩
niftycorp
PRO
2
230
FourKeysを導入したが生産性向上には至らなかった理由
niftycorp
PRO
1
67
モニタリングダッシュボード に表示しておきたい情報 / NIFTY Tech Talk #21
niftycorp
PRO
1
100
PagerDutyを導入して変わったシステム運用とこれから / NIFTY Tech Talk #21
niftycorp
PRO
1
110
ゼロからボトムアップで始めるインナーソース ニフティのリアル事例 - InnerSource Gathering Tokyo 2024
niftycorp
PRO
2
250
Other Decks in Programming
See All in Programming
Flutterを言い訳にしない!アプリの使い心地改善テクニック5選🔥
kno3a87
1
190
CSC509 Lecture 13
javiergs
PRO
0
110
イベント駆動で成長して委員会
happymana
1
330
Click-free releases & the making of a CLI app
oheyadam
2
120
Less waste, more joy, and a lot more green: How Quarkus makes Java better
hollycummins
0
100
A Journey of Contribution and Collaboration in Open Source
ivargrimstad
0
960
見せてあげますよ、「本物のLaravel批判」ってやつを。
77web
7
7.8k
とにかくAWS GameDay!AWSは世界の共通言語! / Anyway, AWS GameDay! AWS is the world's lingua franca!
seike460
PRO
1
890
Pinia Colada が実現するスマートな非同期処理
naokihaba
4
230
.NET のための通信フレームワーク MagicOnion 入門 / Introduction to MagicOnion
mayuki
1
1.7k
「今のプロジェクトいろいろ大変なんですよ、app/services とかもあって……」/After Kaigi on Rails 2024 LT Night
junk0612
5
2.2k
Jakarta EE meets AI
ivargrimstad
0
590
Featured
See All Featured
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
25
1.8k
Build The Right Thing And Hit Your Dates
maggiecrowley
33
2.4k
Designing the Hi-DPI Web
ddemaree
280
34k
The Illustrated Children's Guide to Kubernetes
chrisshort
48
48k
Designing on Purpose - Digital PM Summit 2013
jponch
115
7k
Docker and Python
trallard
40
3.1k
Designing for Performance
lara
604
68k
GitHub's CSS Performance
jonrohan
1030
460k
BBQ
matthewcrist
85
9.3k
Why Our Code Smells
bkeepers
PRO
334
57k
Product Roadmaps are Hard
iamctodd
PRO
49
11k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
191
16k
Transcript
Copyright © NIFTY Corporation All Rights Reserved. GitHub ActionsͰLambdaίϯςφΛ σϓϩΠͯ͠Έͨ
NIFTY Tech Talk #15 ࠓ͞Βฉ͚ͳ͍ʂGitHub Actionsೖ ଜদɹܒ χϑςΟגࣜձࣾ
Copyright © NIFTY Corporation All Rights Reserved. ࣗݾհ 2 χϑςΟגࣜձࣾ
ձһγεςϜάϧʔϓ ଜদ ܒ ୲ۀ • χϑςΟχϡʔε։ൃӡ༻ झຯ • αοΧʔ؍ઓ(ओʹJϦʔά) ◦ ԣFɾϚϦϊεͷαϙʔλʔ
Copyright © NIFTY Corporation All Rights Reserved. χϑςΟχϡʔε 3 PC
εϚϗ ΞϓϦ (iOS, Android)
Copyright © NIFTY Corporation All Rights Reserved. σϓϩΠ͢Δͷ 4 •
ࣗࣾCMSͰఆظग़ྗ͍ͯ͠ΔαΠτϚοϓ࡞ ◦ αΠτϚοϓݕࡧΤϯδϯ(GoogleͳͲ)ʹWebϖʔδΛ͑ΔϑΝΠϧ • ࣗࣾCMS٫͢ΔγεςϜ৽ͷҰͰαΠτϚοϓੜ͢ΔόονΛҠߦ • EventBridge + Lambda + S3ͷߏͰ࣮ • LambdaΧελϜϥϯλΠϜ(Go)Λར༻ͯ͠ɺίϯςφΠϝʔδͰσϓϩΠ ◦ ͜ͷ෦ΛࣗಈσϓϩΠͰ͖ΔΑ͏ʹͨ͠
Copyright © NIFTY Corporation All Rights Reserved. GitHub ActionsΛબΜͩཧ༝ 5
• ϞϊϨϙతͳϦϙδτϦͳͷͰɺCodeγϦʔζͰͷߏஙෳࡶʹͳΔ • কདྷతʹ։ൃঢ়گʹԠ͖ͨ͡Ίࡉ͔͍ϏϧυΛఏڙ͍ͨ͠ • GitHub Actionsͷํ͕ཧ͍͢͠ • GitHub ActionsͰͷσϓϩΠΛߏஙͨ͜͠ͱ͕ͳ͔ͬͨ
Copyright © NIFTY Corporation All Rights Reserved. σϓϩΠͷྲྀΕ 6 1.
masterdevelopʹpushͳͲͷΠϕϯτͰൃՐ ◦ pushworkflow_dispatchΠϕϯτΛར༻ 2. DockerΠϝʔδͷϏϧυ 3. ECR(Elastic Container Registry)ͷDockerΠϝʔδͷϓογϡ 4. Lambdaͷؔߋ৽ 2~4࠶ར༻ՄೳͳϫʔΫϑϩʔ(2ͱ3ɾ4ʹׂ)ʹ Γग़ͯ͠ɺಉ͡ॲཧΛෳͷϫʔΫϑϩʔͰ ఆٛ͠ͳ͍͍ͯ͘Α͏ʹͨ͠
Copyright © NIFTY Corporation All Rights Reserved. ࠶ར༻ՄೳͳϫʔΫϑϩʔ 7 •
job୯ҐͰϫʔΫϑϩʔΛ͍ճ͢͜ͱ͕Մೳ ◦ ͍ΘΏΔɺaction(actions/checkoutͳͲ)step୯Ґͷ͍ճ͠ ◦ Ұ࿈ͷॲཧΛڞ௨Խ͢Δ͜ͱ͕Ͱ͖Δ • usesͰݺͼग़͢͜ͱ͕Մೳ
Copyright © NIFTY Corporation All Rights Reserved. DockerΠϝʔδͷϏϧυ 8 •
ιʔείʔυͷऔಘ • DockerΠϝʔδͷΫϩείϯύΠϧڥઃఆ • DockerΠϝʔδͷϏϧυ
Copyright © NIFTY Corporation All Rights Reserved. ECRͷϓογϡ 9 •
OIDCͰͷAWSೝূ • AWSೝূΛར༻ͨ͠docker login • DockerΠϝʔδͷλά͚ • ECRͷDockerΠϝʔδͷϓογϡ
Copyright © NIFTY Corporation All Rights Reserved. Lambdaͷߋ৽ 10 •
OIDCͰͷAWSೝূ • Lambdaͷؔߋ৽
Copyright © NIFTY Corporation All Rights Reserved. ۤ࿑ͨ͠ 11 ࠶ར༻ՄೳͳϫʔΫϑϩʔಠಛͷ੍ݶ
• ݺͼग़͠ݩͷenvมΛ࠶ར༻ՄೳͳϫʔΫϑϩʔʹͤͳ͍ • jobͷதͰɺoutputʹग़ྗ͔ͯ͠Βɺ࠶ར༻ՄೳͳϫʔΫϑϩʔʹ͢Α͏ʹͨ͠
Copyright © NIFTY Corporation All Rights Reserved. ۤ࿑ͨ͠ 12 Docker
BuildxʹΑΔϚϧνΞʔΩςΫνϟϏϧυ͕͍ • GItHub Actionsͷ࣮ߦڥamd64(x86_64) • arm64ͷLambdaΛར༻ͨͨ͠Ίɺarm64ʹΫϩεϏϧυ • amd64Ͱ50sͷϏϧυ͕300s͔͔ͬͯऴΘΒͳ͍ • QEMUͰΫϩεϏϧυ͢Δ߹ʹΦʔόʔϔου͕ൃੜ͢Δ͜ͱ͕ط
Copyright © NIFTY Corporation All Rights Reserved. ۤ࿑ͨ͠ 13 ରॲࡦ
• ͦͷ··ؤுΔ • arm64ΛఘΊͯɺamd64ͰLambdaΛಈ͔͢ • ηϧϑϗετϥϯφʔΛར༻͢Δ • M1ϥϯφʔ(macos)Λར༻͢Δ • GitHub ActionsΛఘΊͯɺCodeγϦʔζΛར༻͢Δ
Copyright © NIFTY Corporation All Rights Reserved. ۤ࿑ͨ͠ 14 ରॲࡦ
• ͦͷ··ؤுΔ • arm64ΛఘΊͯɺamd64ͰLambdaΛಈ͔͢ • ηϧϑϗετϥϯφʔΛར༻͢Δ • M1ϥϯφʔ(macos)Λར༻͢Δ • GitHub ActionsΛఘΊͯɺCodeγϦʔζΛར༻͢Δ ྲྀੴʹݫ͍͠
Copyright © NIFTY Corporation All Rights Reserved. ۤ࿑ͨ͠ 15 ରॲࡦ
• ͦͷ··ؤுΔ • arm64ΛఘΊͯɺamd64ͰLambdaΛಈ͔͢ • ηϧϑϗετϥϯφʔΛར༻͢Δ • M1ϥϯφʔ(macos)Λར༻͢Δ • GitHub ActionsΛఘΊͯɺCodeγϦʔζΛར༻͢Δ ྲྀੴʹݫ͍͠ ؆୯ʹఘΊͨ͘ͳ͍
Copyright © NIFTY Corporation All Rights Reserved. ۤ࿑ͨ͠ 16 ରॲࡦ
• ͦͷ··ؤுΔ • arm64ΛఘΊͯɺamd64ͰLambdaΛಈ͔͢ • ηϧϑϗετϥϯφʔΛར༻͢Δ • M1ϥϯφʔ(macos)Λར༻͢Δ • GitHub ActionsΛఘΊͯɺCodeγϦʔζΛར༻͢Δ ྲྀੴʹݫ͍͠ ؆୯ʹఘΊͨ͘ͳ͍ ཧίετ͕ݫ͍͠
Copyright © NIFTY Corporation All Rights Reserved. ۤ࿑ͨ͠ 17 ରॲࡦ
• ͦͷ··ؤுΔ • arm64ΛఘΊͯɺamd64ͰLambdaΛಈ͔͢ • ηϧϑϗετϥϯφʔΛར༻͢Δ • M1ϥϯφʔ(macos)Λར༻͢Δ • GitHub ActionsΛఘΊͯɺCodeγϦʔζΛར༻͢Δ ྲྀੴʹݫ͍͠ ཧίετ͕ݫ͍͠ ௨ৗͷ20ഒίετ͕͔͔Δ ؆୯ʹఘΊͨ͘ͳ͍
Copyright © NIFTY Corporation All Rights Reserved. ۤ࿑ͨ͠ 18 ରॲࡦ
• ͦͷ··ؤுΔ • arm64ΛఘΊͯɺamd64ͰLambdaΛಈ͔͢ • ηϧϑϗετϥϯφʔΛར༻͢Δ • M1ϥϯφʔ(macos)Λར༻͢Δ • GitHub ActionsΛఘΊͯɺCodeγϦʔζΛར༻͢Δ ྲྀੴʹݫ͍͠ ཧίετ͕ݫ͍͠ ௨ৗͷ20ഒίετ͕͔͔Δ ఘΊͨ͘ͳ͍ ؆୯ʹఘΊͨ͘ͳ͍
Copyright © NIFTY Corporation All Rights Reserved. ۤ࿑ͨ͠ 19 dockerͷυΩϡϝϯτʹTips͕͋ͬͨ
• ίʔυΛϏϧυ͢Δ෦ͰΫϩεϏϧυ͢Δ • ΫϩείϯύΠϧͰ͖ΔݴޠͰ͋Εɺར༻Մ ೳͳճආࡦ • GoͷίϯύΠϧΛamd64ڥͰarm64ʹΫϩ είϯύΠϧ • ωΠςΟϒڥͷϏϧυͱ΄΅ಉ͡Ϗϧυ࣌ؒ ͰϏϧυ͕࣮ݱͰ͖ͨ https://docs.docker.com/build/guide/multi-platform/#build-using-cross-compilation
Copyright © NIFTY Corporation All Rights Reserved. ͨ͠ 20 ࠶ར༻ՄೳͳϫʔΫϑϩʔͷ࠾༻
• ൚༻ੑΛߴΊͨͷͰɺຊ൪ɾ։ൃͰಉ͡ϫʔΫϑϩʔϑΝΠϧͰ݁ • ಉ͡ߏͷόονΛ૿ͨ࣌͠ʹɺ࠶ར༻ՄೳͳϫʔΫϑϩʔΛݺͿ͚ͩͰɺࣗಈσ ϓϩΠΛߏஙͰ͖Δ
Copyright © NIFTY Corporation All Rights Reserved. ·ͱΊ 21 GitHub
ActionsͰLambdaίϯςφΛࣗಈσϓϩΠͰ͖ΔΑ͏ʹͨ͠ • GitHub ActionsͰؾܰʹࣗಈσϓϩΠΛߏஙͰ͖Δ • ࠶ར༻ՄೳͳϫʔΫϑϩʔศར • GitHub ActionsͰDockerͷϚϧνΞʔΩςΫνϟϏϧυʹҙ
Copyright © NIFTY Corporation All Rights Reserved.