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
490
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 ニフティ株式会社
2025-04-25 NIFTY's InnerSource Activites
niftycorp
PRO
0
210
外コミュニティ活動や登壇活動が技術 広報として大事だよ、と改めて周囲に伝 えられた件 - EM Oasis 特別会
niftycorp
PRO
0
94
Dify触ってみた。
niftycorp
PRO
1
210
Amazon Bedrockを使用して、 運用対応を楽にしてみた
niftycorp
PRO
1
230
自社製CMSからの脱却:10件のWebサイト再構築に学ぶ運用重視の技術選定 - NIFTY Tech Day 2025
niftycorp
PRO
0
110
エンジニアの殻を破る:インナーソースと社外活動がもたらした成長 - NIFTY Tech Day 2025
niftycorp
PRO
0
73
システム全体像把握の超高速化〜システム関連図を使い倒そう (LT) - NIFTY Tech Day 2025
niftycorp
PRO
0
72
Rust で生成 AI の社内 chatbot をメンテしている話 (LT) - NIFTY Tech Day 2025
niftycorp
PRO
0
78
メタバースは仕事に使える?〜100日間でバーチャルオフィスへの挑戦〜 (LT) - NIFTY Tech Day 2025
niftycorp
PRO
0
68
Other Decks in Programming
See All in Programming
Deep Dive into ~/.claude/projects
hiragram
9
1.6k
AIコーディング道場勉強会#2 君(エンジニア)たちはどう生きるか
misakiotb
1
250
GoのGenericsによるslice操作との付き合い方
syumai
3
690
Node-RED を(HTTP で)つなげる MCP サーバーを作ってみた
highu
0
100
Blazing Fast UI Development with Compose Hot Reload (droidcon New York 2025)
zsmb
1
240
都市をデータで見るってこういうこと PLATEAU属性情報入門
nokonoko1203
1
570
童醫院敏捷轉型的實踐經驗
cclai999
0
200
Julia という言語について (FP in Julia « SIDE: F ») for 関数型まつり2025
antimon2
3
980
WebViewの現在地 - SwiftUI時代のWebKit - / The Current State Of WebView
marcy731
0
100
今ならAmazon ECSのサービス間通信をどう選ぶか / Selection of ECS Interservice Communication 2025
tkikuc
20
3.7k
Code as Context 〜 1にコードで 2にリンタ 34がなくて 5にルール? 〜
yodakeisuke
0
110
5つのアンチパターンから学ぶLT設計
narihara
1
120
Featured
See All Featured
Visualization
eitanlees
146
16k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
46
9.6k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
8
800
Code Review Best Practice
trishagee
68
18k
A better future with KSS
kneath
239
17k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
138
34k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
124
52k
Imperfection Machines: The Place of Print at Facebook
scottboms
267
13k
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
7
700
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
17
940
Testing 201, or: Great Expectations
jmmastey
42
7.5k
Navigating Team Friction
lara
187
15k
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.