Upgrade to Pro — share decks privately, control downloads, hide ads and more …

GitHub Actionsで多環境の運用管理を簡単にする

Avatar for Kohei Kojima Kohei Kojima
November 05, 2025
220

GitHub Actionsで多環境の運用管理を簡単にする

開発生産性と開発者体験を改善するための勉強会の資料
https://yumemi.connpass.com/event/371982/

Avatar for Kohei Kojima

Kohei Kojima

November 05, 2025
Tweet

Transcript

  1. | CONFIDENTIAL 2 • ؀ڥ͕ଟ਺͋Δࡍͷɺ؀ڥ͝ͱͷαʔόʔͷϚελઃఆ͕େม • ૝ఆ • "ࣾ༻ɺ#ࣾ༻ͱ෼͔Ε͍ͯΔ •

    ͦΕͧΕʹ%FW 4UH 1SPE͕ଘࡏ͢Δ • Ϛελઃఆࣗମ͸֎͔ΒมߋͰ͖Δ • ૝ఆ • %# • 4ͳͲʹ഑ஔͨ͠+40/ ՝୊
  2. | CONFIDENTIAL 3 • ؀ڥ͕ଟ਺͋Δࡍͷɺ؀ڥ͝ͱͷαʔόʔͷϚελઃఆ͕େม • ૝ఆ • "ࣾ༻ɺ#ࣾ༻ͱ෼͔Ε͍ͯΔ •

    ͦΕͧΕʹ%FW 4UH 1SPE͕ଘࡏ͢Δ • Ϛελઃఆࣗମ͸֎͔ΒมߋͰ͖Δ • ૝ఆ • %# • 4ͳͲʹ഑ஔͨ͠+40/ ՝୊ $*͔Βߋ৽Ͱ͖Δ ࢓૊ΈΛೖΕΑ͏
  3. | CONFIDENTIAL 4 • ൓ө࿙Ε͕ͳͤ͘Δ • ൓өઌͷ਺͕%FW 4UH 1SPEͱ͓٬༷ͷ਺ͷֻ͚ࢉʹͳΔ •

    ൓өͷ޻਺࡟ݮʹ΋ͭͳ͕Δ • ؀ڥ͝ͱͷઃఆ஋ͷࠩΛͳ͘͠΍͍͢ • ݸͷϑΝΠϧΛશ؀ڥͰݟΔΑ͏ʹ͢Ε͹ࠩ͸ͳͤ͘Δ • (JU)VCͳͲͷ$*Λ࢖༻͢Δ৔߹ ௨ৗ௨ΓͷϨϏϡʔϓϩηεΛ౿Ή͜ͱ͕Ͱ͖Δ • ͲͷΑ͏ͳઃఆʹͳ͍ͬͯΔ͔ϑΝΠϧͱͯ͠࢒͠΍͍͢ $*͔Βߋ৽͢ΔϝϦοτ Կ͕͏Ε͍͠ͷ͔ ϝϦοτ
  4. | CONFIDENTIAL 5 • $*͕ࣦഊ͢ΔϦεΫʹඋ͑Δඞཁ͕͋Δ • લஈͷϓϩηε͕ωοτϫʔΫΤϥʔͰࣦഊͨ͠ • ߋ৽தʹΤϥʔ͕ൃੜͨ͠ •

    FUD • ˠ ߋ৽Λႈ౳ʹ͢Δ͜ͱͰϦτϥΠͰ͖ΔΑ͏ରԠ • ߋ৽ॱʹؾΛ഑Δඞཁ͕͋Δ • %&7ˠ 45(ˠ 130%ͷߋ৽ͷதʹɺίʔυߋ৽͕ೖΔͱ%&7Ͱະ൓өͷઃఆ ্͕Ґʹೖͬͯ͠·͏ • ˠ ϒϥϯνΛ෼͚ΔͳͲͯ͠༧๷͢Δ $*͔Βߋ৽͢ΔσϝϦοτ Կ͕͏Ε͘͠ͳ͍ͷ͔ σϝϦοτ
  5. | CONFIDENTIAL 6 ࣗಈ൓өͷϓϩηε %&7؀ڥͷࣗಈ൓өϓϩηεͷྫ  มߋΛ࡞੒͢Δ  13Λ࡞੒͢Δ 

    ϨϏϡʔ͠ɺ"QQSPWF͢Δ  NBJOʹϚʔδ͢Δ  $*͕ൃՐ͠ɺ%FW؀ڥʹࣗಈ൓ө͞ΕΔ
  6. | CONFIDENTIAL 9 ର৅ͷ؀ڥ΁ͷΞΫηε $*ͷϓϩηε "84ͳΒ BXTBDUJPOTDPOGJHVSFBXTDSFEFOUJBMTͷBDUJPOTΛ࢖༻Ͱ͖Δ • ݖݶ͸ߋ৽಺༰ʹ߹Θͤద੾ͳ΋ͷΛઃఆ -

    uses: aws-actions/configure-aws-credentials@v4 with: aws-region: 'us-east-1' role-to-assume: ${{ secrets.AWS_IAM_ROLE }} role-session-name: ‘Update' mask-aws-account-id: true retry-max-attempts: 3
  7. | CONFIDENTIAL 10 Ϛελઃఆͷߋ৽ॲཧ $*ͷϓϩηε 4΁ϑΝΠϧΛΞοϓϩʔυ͢Δ • BXT TTZODͷίϚϯυΛ࢖༻ •

    IUUQTEPDTBXTBNB[PODPNDMJMBUFTUSFGFSFODFTTZODIUNM • ͜ΕͰϑΝΠϧΛΞοϓϩʔυ͢Δ • EFMFUFΛ͚ͭΔ͜ͱͰϑΝΠϧͷ࡟আ΋Ͱ͖Δ • ႈ౳ͳॲཧͳͷͰΤϥʔ࣌ʹ͸ϦτϥΠ͢Ε͹0, - run: aws s3 sync "./images" "${S3_DESTINATION}/assets/images/"
  8. | CONFIDENTIAL 11 Ϛελઃఆͷߋ৽ॲཧ $*ͷϓϩηε .Z42-ͷߋ৽ • 42-Λ༻ҙ͠ɺ*/4&350/%61-*$"5&,&:61%"5&ͱ%&-&5&Λ࢖༻ • ႈ౳ʹد͍ͤͯͨ͘Ί

    • खಈͰߋ৽͠ͳ͚Ε͹42-͕ਖ਼ʹͳΔ INSERT INTO app_versions (os_type, app_version) VALUES ('android', '1.0.0'), ('ios', '1.0.0'), ('android', '1.1.0'), ('android', '2.0.0'), ('ios', '2.0.0') AS inserting ON DUPLICATE KEY UPDATE os_type=inserting.os_type, app_version=inserting.app_version;
  9. | CONFIDENTIAL 13 $*ͷτϦΨʔ ͍ͭ$*Λಈ͔͔͢ ݸʑͷҊ݅ͷੑ࣭ɺϒϥϯνઓུʹ΋ΑΔ͕ • %FW͸ϒϥϯνʹ1VTI͞Εͨࡍʹࣗಈ൓ө • 4UH

    1SPE͸ XPSLGMPX@EJTQBUDI Ͱखಈ൓ө • ಛʹσϓϩΠ༻ͷϒϥϯνΛ༻ҙ͍ͯ͠ͳ͍৔߹͸खಈ͕͓͢͢Ί • ݸผϒϥϯν͕͋ΔͳΒࣗಈ൓ө͕͓͢͢Ί
  10. | CONFIDENTIAL 16 ·ͱΊ $*͔ΒϚελઃఆΛߋ৽͢Δ͜ͱͰ • ൓ө࣌ͷ࿙ΕΛݮΒ͢͜ͱ͕Ͱ͖Δ • ҆ఆͨ͠ӡӦʹͭͳ͕Δ •

    ϨϏϡʔͷϓϩηεΛ౿ΊΔ • ඼࣭޲্ʹͭͳ͕Δ ͳͲɺੜ࢈ੑ΍։ൃऀମݧΛ޲্ͤ͞ΒΕΔ