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

地方こそサーバーレス! チームにフィットさせるサーバーレス / Rural areas are...

shiro seike
September 06, 2024

地方こそサーバーレス! チームにフィットさせるサーバーレス / Rural areas are serverless! Serverless to Fit Your Team

【現地開催】JAWS-UG おおいた 地方企業がクラウドを活用するヒント
https://jawsug-oita.connpass.com/event/325916/

shiro seike

September 06, 2024
Tweet

More Decks by shiro seike

Other Decks in Programming

Transcript

  1. ©Fusic Co., Ltd. 2 ਗ਼Ո ࢙࿠ @seike460 େ෼ݝ༝෍ࢢঙ಺ொग़਎ େ෼༤৓୆ߴߍଔۀ AWS

    Community Builder Serverless Fukuoka.php Fukuoka.go JAWS-UG Fukuoka Serverless Meetup Fukuoka Cloudflare Meetup Fukuoka JP_Stripes Fukuoka ࣗݾ঺հ ͸͡Ίʹ גࣜձࣾFusic ϓϦϯγύϧΤϯδχΞ/ΤόϯδΣϦετ
  2. ©Fusic Co., Ltd. 3 CONTENTS ໨࣍ 1. αʔόʔϨεͱ͸ͳΜͳͷ͔ 2. ஍ํ

    x αʔόʔϨε 3. ஍ํͰͷ։ൃͱϑϨʔϜϫʔΫ 4. ·ͱΊ
  3. ©Fusic Co., Ltd. 5 αʔόʔϨεͱ͸ͳΜͳͷ͔ サーバーレスという 言 葉の定義は 「Cloud Native

    Computing Foundation」が提供している資料 CNCF Serverless Whitepaper v 1 . 0 によると サーバ管理を必要としないアプリケーションの構築と実 行 の「概念」 https://github.com/cncf/wg-serverless/tree/master/whitepapers/serverless-overview
  4. ©Fusic Co., Ltd. 6 αʔόʔϨεͷ֓೦ΛऔΓೖΕΔϝϦοτ͸ଟ਺ サーバーレスアーキテクチャを導 入 するメリットは多く、 物理サーバーでは取り 入

    れることが難しかった概念の導 入 が可能に 大 規模な事例が語られることは多いのですが、 小 規模な開発こそサーバーレスの概念が活きるケースも多く 私は積極的にサーバーレスアーキテクチャの採 用 を 行 っています
  5. ©Fusic Co., Ltd. 7 Ϋϥ΢υωΠςΟϒͰ͋Ζ͏ͱ͢Δ͜ͱ αʔόʔϨεΩϟογϡͰ༗໊ͳmomentoʹΑΔදݱ 1. ϓϩϏδϣϯෆཁɺ؅ཧෆཁ 2. ࠷௿ྉۚͷͳ͍࢖ͬͨ෼͚ͩͷࢧ෷

    3. 1 ͭͷ API ݺͼग़͠Ͱར༻Մೳ 4. ܭըఀࢭ͕ͳ͍ 5. Πϯελϯε͕ແ͍ αʔόʔϨεͷಛ௃ଊ͓͑ͯΓඇৗʹαʔόʔϨεΒ͍͠ ݸਓతͳҙࣝͱͯ͠͸ʮ౴͑ͩͱߟ͑Δඞཁ͸ͳ͍ʯ αʔόʔϨεΒ͍͠αʔϏε΋Ξοϓσʔτ͞Ε͍ͯ͘͠ɺ ৽͍֓͠೦ͷ௥ՃʹΑΓαʔόϨεΒ͠͞͸มΘ͍ͬͯ͘
  6. ©Fusic Co., Ltd. 9 ஍ํ։ൃͷ՝୊ 地 方 開発の課題   リソース制約:

    限られた予算、 人 材、時間   スキルセット: メンバー次第で濃淡が出がち、広い共有知があるスキルが揃いがち
  7. ©Fusic Co., Ltd. 11 ஍ํ։ൃͷ՝୊ 地 方 開発の課題   リソース制約:

    限られた予算、 人 材、時間   スキルセット: メンバー次第で濃淡が出がち、広い共有知があるスキルが揃いがち サーバーレスの強み   初期、運 用 コストの削減: 物理サーバーやインフラの設定、ゼロスケール、メンテナンスが不要   マネージドサービス: 共有知が多いAmazon Web Servicesに乗っかれる
  8. ©Fusic Co., Ltd. 18 Bref Brefͱ͸PHPͷOSSϓϩδΣΫτͷҰͭ AWS Lambda্ͰPHPΞϓϦέʔγϣϯΛ؆୯ʹσϓϩΠͱ؅ཧΛՄೳʹ͢Δπʔϧ - PHPϥϯλΠϜ

    ɹAWS LambdaͷΧελϜϥϯλΠϜΛར༻ɺDeveloper Community ڞ༗ͷΧελϜϥϯλΠϜΛఏڙ - ϑϨʔϜϫʔΫରԠ ɹLaravelɺSymfonyͳͲͷਓؾͷ͋ΔPHPϑϨʔϜϫʔΫΛαϙʔτ - ίϯιʔϧίϚϯυ ɹίϚϯυϥΠϯΠϯλʔϑΣʔεʢCLIʣΛఏڙ
  9. ©Fusic Co., Ltd. 19 PHPΛAWS Lambda্Ͱ࢖͏͜ͱΛݕ౼ AWS Dev Day 2022ʹͯϑϧαʔόʔϨεʹͯఏڙ͍ͯ͠ΔαΠτͷ࿩Λ͠·ͨ͠

    ʮAmazon S3 Select で ࣮ݱ͢Δαʔ バ ʔϨεߴෛՙରԠαΠτʯ https://speakerdeck.com/seike460/serverless-high-load-site-realized-with-amazon-s3-select
  10. ©Fusic Co., Ltd. 21 LambdaͷϞϊϦε Amazon Web Services ϒϩάͷʮOperating Lambda:

    ΠϕϯτۦಈܕΞʔΩςΫνϟʹ͓͚ΔΞϯνύλʔϯ – Part 3ʯ ҎԼͷΑ͏ʹ৮ΕΒΕ͍ͯ·͢ɻ -LambdaͷϞϊϦε -ύοέʔδαΠζ -࠷খݖݶΛద༻͢Δͷ͕೉͍͠ -ΞοϓάϨʔυ͕ࠔ೉ -อक͕ࠔ೉ -ҎԼ͸֘౰͠ͳ͍ -ίʔυͷ࠶ར༻͕೉͍͠ɿLaravelಘҙ -ςετ͕೉͍͠ɿLaravelಘҙ ࢀߟURL:https://aws.amazon.com/jp/blogs/news/compute-operating-lambda-anti-patterns-in-event-driven-architectures-part-3/ Operating Lambda: ΠϕϯτۦಈܕΞʔΩςΫνϟʹ͓͚ΔΞϯνύλʔϯ – Part 3
  11. ©Fusic Co., Ltd. 26 ΤϯυϙΠϯτΛ෼͚Δ͜ͱͰ֦ுʹ΋ରԠ 実際に今回の構成でも動作するエンドポイントを 役割に分けて変更できる エンドポイント専 用 のRoleを設定できるし、

    エンドポイントごとにデプロイ出来る ※APIGatewayを分ける場合は明 示 的に書く必要有 functions: web: handler: public/index.php runtime: php- 8 2 -fpm timeout: 28 events: - httpApi: '*' admin-web: handler: public/index.php runtime: php- 8 2 -fpm timeout: 28 role: api-admin-role events: - httpApi: method: '*' path: /admin $ serverless deploy function --function admin-web Deploying function admin-web to stage dev (ap-northeast- 1 ) ✔ Function code deployed ( 4 2 s) Function configuration did not change, and the update was skipped. If you made changes to the service configuration and expected them to be deployed, it most likely means that they can only be applied with a full service deployment. ( 4 2 s)
  12. ©Fusic Co., Ltd. 29 Monolith First Serverless Development ࢀߟURL :

    https://speakerdeck.com/_kensh/monolith-first-serverless-development?slide=55 @_kensh ʮMonolith First Serverless Developmentʯ