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 ニフティ株式会社
モニタリング統一への道のり - 分散モニタリングツール統合のためのオブザーバビリティプロジェクト
niftycorp
PRO
1
520
2025-07-08 InnerSource Commons Japan Meetup #14 【OST】チームの壁、ぶっ壊そ!壁の乗り越え方、一緒に考えよう!
niftycorp
PRO
0
57
2025-04-25 NIFTY's InnerSource Activites
niftycorp
PRO
0
230
外コミュニティ活動や登壇活動が技術 広報として大事だよ、と改めて周囲に伝 えられた件 - EM Oasis 特別会
niftycorp
PRO
0
120
Dify触ってみた。
niftycorp
PRO
1
230
Amazon Bedrockを使用して、 運用対応を楽にしてみた
niftycorp
PRO
1
240
自社製CMSからの脱却:10件のWebサイト再構築に学ぶ運用重視の技術選定 - NIFTY Tech Day 2025
niftycorp
PRO
0
120
エンジニアの殻を破る:インナーソースと社外活動がもたらした成長 - NIFTY Tech Day 2025
niftycorp
PRO
0
80
システム全体像把握の超高速化〜システム関連図を使い倒そう (LT) - NIFTY Tech Day 2025
niftycorp
PRO
0
79
Other Decks in Programming
See All in Programming
脱Riverpod?fqueryで考える、TanStack Queryライクなアーキテクチャの可能性
ostk0069
0
500
テスターからテストエンジニアへ ~新米テストエンジニアが歩んだ9ヶ月振り返り~
non0113
2
220
iOS 26にアップデートすると実機でのHot Reloadができない?
umigishiaoi
0
140
TypeScriptでDXを上げろ! Hono編
yusukebe
3
770
MCPを使ってイベントソーシングのAIコーディングを効率化する / Streamlining Event Sourcing AI Coding with MCP
tomohisa
0
170
テストから始めるAgentic Coding 〜Claude Codeと共に行うTDD〜 / Agentic Coding starts with testing
rkaga
15
5.6k
AIと”コードの評価関数”を共有する / Share the "code evaluation function" with AI
euglena1215
1
180
Python型ヒント完全ガイド 初心者でも分かる、現代的で実践的な使い方
mickey_kubo
1
240
効率的な開発手段として VRTを活用する
ishkawa
0
160
可変変数との向き合い方 $$変数名が踊り出す$$ / php conference Variable variables
gunji
0
180
AIエージェントはこう育てる - GitHub Copilot Agentとチームの共進化サイクル
koboriakira
0
760
猫と暮らす Google Nest Cam生活🐈 / WebRTC with Google Nest Cam
yutailang0119
0
170
Featured
See All Featured
Navigating Team Friction
lara
187
15k
What's in a price? How to price your products and services
michaelherold
246
12k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
229
22k
Embracing the Ebb and Flow
colly
86
4.8k
How to train your dragon (web standard)
notwaldorf
96
6.1k
Designing for Performance
lara
610
69k
Product Roadmaps are Hard
iamctodd
PRO
54
11k
The Cost Of JavaScript in 2023
addyosmani
51
8.6k
For a Future-Friendly Web
brad_frost
179
9.8k
Build your cross-platform service in a week with App Engine
jlugia
231
18k
Stop Working from a Prison Cell
hatefulcrawdad
271
21k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
30
2.2k
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.