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

20260110_オンプレ思考からクラウドネイティブ思考への転換レシピ

Avatar for Hiroshi Kato Hiroshi Kato
January 10, 2026
0

 20260110_オンプレ思考からクラウドネイティブ思考への転換レシピ

Avatar for Hiroshi Kato

Hiroshi Kato

January 10, 2026
Tweet

Transcript

  1. 自己紹介 下坂 真里亜 (しもさか まりあ) 所属:JAWS-UG金沢 勤務地:石川県 エンジニア歴:5年目 好きなこと ゲーム(モンハン)、旅行、チェロ

    加藤 寛士 (かとう ひろし) 三重県在住 JAWS-UG名古屋運営 クラウドエンジニア @Hircha12 BuriKaigi初参加 BuriKaigi初参加
  2. ブーリー 分クッキング 10 アプリケーションサーバ Web アプリ ファイル 受信 API バッチ

    処理 データベース ユーザ 商品 在庫 注文 決済 本日の料理 クラウドらしいアーキテクチャに 仕上げていきます オンプレ思考から クラウドネイティブ思考へ 材料) アプリケーションサーバ:一式 機能・・・Webアプリ、API、 ファイル受信、バッチ処理 データベース:一式 属性・・・ユーザ、商品、在庫、 注文、決済 recipe
  3. ブーリー 分クッキング 10 まず、どのように調理しますか? EC2 RDS 本日の料理 これでも動く、けどクラウドのメリットを受けられません アプリケーションサーバ Webアプリ

    ファイル 受信 API バッチ処理 データベース ユーザ 商品 在庫 注文 決済 食べられないことはない ・・・ けど、美味しくない
  4. ブーリー 分クッキング 10 本日の料理 分解して、考えられる 状態にする 切る 味付け 煮込み 盛り付け

    選択とトレードオフ を決める 材料と味付けを合わせ 構成を組み立てる システムを商用利用 できるようにする 美味しくするには、きちんと調理をして、クラウドにのせていく必要があります
  5. ブーリー 分クッキング 10 本日の料理 分解して、考えられる 状態にする 切る 味付け 煮込み 盛り付け

    選択とトレードオフ を決める 材料と味付けを合わせ 構成を組み立てる システムを商用利用 できるようにする セキュリティ=厨房の衛生基準 特定の工程ではなく、すべてに共通して考えるべきもの、大前提です
  6. ブーリー 分クッキング 10 アプリケーションサーバ Webアプリ ファイル受信 API バッチ処理 切るときのPOINT 依存関係

    時間 責務と役割 ファイル受信 バッチ処理 Step1 切る ファイル受信と バッチ処理は 簡単に切れそう! 繋がりが複雑で 切りにくそうだけど・・・
  7. ブーリー 分クッキング 10 Webアプリ API Step1 切る 切るときのPOINT 依存関係 時間

    責務と役割 同期で呼び出されてて、 時間軸でも切りにくそう 非同期で実行してるから、 時間軸でも切れそう! アプリケーションサーバ ファイル受信 バッチ処理
  8. ブーリー 分クッキング 10 データベース 入力 業務 通知 Step1 切る 切るときのPOINT

    依存関係 時間 責務と役割 Webアプリ API アプリケーションサーバ ファイル受信 バッチ処理 エ ン ド ポ イ ン ト サーバからエンドポイントを 外せるといいな エンドポイントは 全体でひとつがいい
  9. ブーリー 分クッキング 10 アプリケーションサーバ Webアプリ 画面 Step1 切る API ビジネスロジック

    認証認可 更新 参照 画面 ビジネス ロジック 認証認可 参照 更新 細かく見ると、 もっと切り出せる 部分がありそう 切れるかどうかは 全体の仕組みで 変わってきそう・・・ 切るときのPOINT 依存関係 時間 責務と役割
  10. ブーリー 分クッキング 10 Step1 切る アプリケーションサーバ Webアプリ ファイル受信 API バッチ処理

    アプリケーションサーバ Webアプリ 画面 API ビジネスロジック 認証認可 更新 参照 エ ン ド ポ イ ン ト ファイル受信 バッチ処理 非同期
  11. ブーリー 分クッキング 10 Step1 切る データベース ユーザ 商品 在庫 注文

    決済 データベースを切るときのPOINT 時間 データの特徴 この2つの観点で切って問題がないかを確認します
  12. ブーリー 分クッキング 10 データベース 参照系 更新系 200ミリ秒以内の レスポンス Step1 切る

    参照と更新でDBリソース を奪いあうので切り分け られるかな? 切るときのPOINT 時間 データの特徴
  13. ブーリー 分クッキング 10 キャッシュ・ リードレプリカ 参照系 更新系 200ミリ秒以内の レスポンス Step1

    切る 切るときのPOINT 時間 データの特徴 データベース 更新の中でも一部は 時間をかけても 大丈夫そうだ
  14. ブーリー 分クッキング 10 キャッシュ・ リードレプリカ 参照系 更新系 200ミリ秒以内の レスポンス Step1

    切る 切るときのPOINT 時間 データの特徴 データベース 遅延OK キュー 更新系
  15. ブーリー 分クッキング 10 データベース 整合性が 必要 大量の データ 処理速度 Step1

    切る オンプレでは1つのDBに詰め込む特徴があるが、 クラウドではそれぞれの特徴を持ったDBを使用することができる 特徴ごとに使用するDBを変えていけると、クラウドのおいしさがあがる 切るときのPOINT 時間 データの特徴
  16. ブーリー 分クッキング 10 整合性重視の データベース 整合性が 必要 大量の データ 処理速度

    Step1 切る オンプレでは1つのDBに詰め込む特徴があるが、 クラウドではそれぞれの特徴を持ったDBを使用することができる 特徴ごとに使用するDBを変えていけると、クラウドのおいしさがあがる 切るときのPOINT 時間 データの特徴 拡張性重視の データベース 速度重視の データベース 切れるかどうかは 全体の仕組みで 変わってきそう・・・
  17. ブーリー 分クッキング 10 Step1 切る データベース (更新) キャッシュ・ リードレプリカ (参照)

    アプリケーションサーバ Webアプリ 画面 API ビジネスロジック 認証認可 更新 参照 エ ン ド ポ イ ン ト ファイル受信 バッチ処理 非同期
  18. ブーリー 分クッキング 10 ブーリー 分クッキング 10 アーキテクチャに正解はない、あるのは「一番の妥協点」 味付け=トレードオフ Step2 味付け

    コスト 運用負荷 納期 性能 可用性 全ての味がする料理は存在しない 優先させる味と、犠牲にする味を決める
  19. ブーリー 分クッキング 10 Step3 煮込み データベース (更新) キャッシュ・ リードレプリカ (参照)

    アプリケーションサーバ Webアプリ 画面 API ビジネスロジック 認証認可 更新 参照 エ ン ド ポ イ ン ト ファイル受信 バッチ処理 非同期
  20. ブーリー 分クッキング 10 Step3 煮込み データベース (更新) アプリケーションサーバ Webアプリ 画面

    API ビジネスロジック 認証認可 更新 参照 エ ン ド ポ イ ン ト ファイル受信 バッチ処理 非同期 キャッシュ・ リードレプリカ (参照)
  21. ブーリー 分クッキング 10 Step3 煮込み データベース (更新) アプリケーションサーバ Webアプリ 画面

    API ビジネスロジック 認証認可 更新 参照 エ ン ド ポ イ ン ト ファイル受信 バッチ処理 非同期 キャッシュ・ リードレプリカ (参照) Lambdaで 運用さっぱり SQSで非同期 S3でイベント駆動 に、非同期化 リードレプリカで参 照と更新を分離
  22. ブーリー 分クッキング 10 Step3 煮込み データベース (更新) アプリケーションサーバ Webアプリ 画面

    API ビジネスロジック 認証認可 更新 参照 エ ン ド ポ イ ン ト ファイル受信 バッチ処理 非同期 キャッシュ・ リードレプリカ (参照) 運用が薄味にで きていない
  23. ブーリー 分クッキング 10 Step3 煮込み データベース (更新) アプリケーションサーバ Webアプリ 画面

    API ビジネスロジック 認証認可 更新 API(参照) エ ン ド ポ イ ン ト ファイル受信 バッチ処理 非同期 キャッシュ・ リードレプリカ (参照)
  24. ブーリー 分クッキング 10 Step3 煮込み データベース (更新) アプリケーションサーバ Webアプリ API

    ビジネスロジック 更新 エ ン ド ポ イ ン ト ファイル受信 バッチ処理 非同期 キャッシュ・ リードレプリカ (参照) 認証認可 画面 API(参照) ク ラ イ ア ン ト
  25. ブーリー 分クッキング 10 Step3 煮込み データベース (更新) アプリケーションサーバ Webアプリ API

    ビジネスロジック 更新 エ ン ド ポ イ ン ト ファイル受信 バッチ処理 非同期 キャッシュ・ リードレプリカ (参照) 認証認可 画面 API(参照) ク ラ イ ア ン ト フロントエンドが 守られていない
  26. ブーリー 分クッキング 10 Step3 煮込み データベース (更新) アプリケーションサーバ Webアプリ API

    ビジネスロジック 更新 エ ン ド ポ イ ン ト ファイル受信 バッチ処理 非同期 キャッシュ・ リードレプリカ (参照) 認証認可 画面 API(参照) ク ラ イ ア ン ト フ ロ ン ト エ ン ド
  27. ブーリー 分クッキング 10 Step3 煮込み データベース (更新) アプリケーションサーバ Webアプリ API

    ビジネスロジック 更新 エ ン ド ポ イ ン ト ファイル受信 バッチ処理 非同期 キャッシュ・ リードレプリカ (参照) 認証認可 画面 API(参照) ク ラ イ ア ン ト フ ロ ン ト エ ン ド データの特徴でDB を分けるとコストが 変わるかも
  28. ブーリー 分クッキング 10 Step3 煮込み データベース (更新) アプリケーションサーバ Webアプリ API

    ビジネスロジック 更新 エ ン ド ポ イ ン ト ファイル受信 バッチ処理 非同期 キャッシュ・ リードレプリカ (参照) 認証認可 画面 API(参照) ク ラ イ ア ン ト フ ロ ン ト エ ン ド 高パフォーマンスの データベース
  29. ブーリー 分クッキング 10 リードレプリカ 参照 ファイル受信 バッチ処理 認証認可 静的コンテンツ Webアプリ

    Step3 煮込み 吹きこぼれ 処理に失敗! エラーが起きる前提で、成立する設計 エラーが発生し、処理が止まる箇所がないか 吹きこぼれ DBが応答しなく なった!
  30. ブーリー 分クッキング 10 Step3 煮込み DLQに保存 リードレプリカ 参照 ファイル受信 バッチ処理

    認証認可 静的コンテンツ Webアプリ エクスポネンシャル バックオフで、間隔 をあけてアクセス エラーが起きる前提で、成立する設計 エラーが発生し、処理が止まる箇所がないか
  31. ブーリー 分クッキング 10 Step4 盛り付け • 煮込んだだけでは、まだ料理は提供できません • 商用システムでは、「障害が発生する前提」「人が入れ替わる前提」でも 安心して出し続けられる状態が求められます

    「盛り付け」は、料理のおいしさを 「維持し続ける」ための工程 運用 人が変わっても回るか 監視 異常に気づけるか 障害対応 止まっても復帰できるか バックアップ 取り返しがつくか
  32. 上級者は、頭の中で何をしているのか? ひらめきではなく、思考の往復運動 ① 前提を疑う ② 制約を洗い出す ③ 選択肢を並べる ④ 捨てた理由を言語化する

    ⑤ 妥協点に名前をつける • 本当にこの要件は固定か? • 暗黙の前提が紛れ込んでいないか? • 「一番いい構成」は考えていない • 性格の違う複数案を並べている • なぜ◯◯を捨てたのか • どのリスクを受け入れたのか • 技術制約 • 期限・コスト・運用制約 • 将来の変化耐性 • 「これは現実的に一番マシ」 • 「このリスクなら責任を持てる」
  33. 上級者は、頭の中で何をしているのか? 思考量が増えるほど、根拠のある判断に辿り着ける ① 前提を疑う ② 制約を洗い出す ③ 選択肢を並べる ④ 捨てた理由を言語化する

    ⑤ 妥協点に名前をつける • 本当にこの要件は固定か? • 暗黙の前提が紛れ込んでいないか? • 「一番いい構成」は考えていない • 性格の違う複数案を並べている • 技術制約 • 期限・コスト・運用制約 • 将来の変化耐性 • 「これは現実的に一番マシ」 • 「このリスクなら責任を持てる」 思考量を 増やす 思考量を 増やす • なぜ◯◯を捨てたのか • どのリスクを受け入れたのか