Recap Series
- セッション 02:TerraformによるAWSコンプライアンス
- セッション 03:初心者からビルダーへ――素晴らしいクラウドの旅
- セッション 04:LaravelとBrefによるチームファーストのサーバーレスエンジニアリング
- セッション 05:イベント開会式:AWS Community Day Hong Kong 2025
- セッション 06:Agent-to-Agent:AWS 上で相互運用可能な AI を構築する
- セッション 07:別のテレメトリデータを AI エージェントで活用し、改善を加速する
- セッション 08:バイブコーディングからの卒業:Kiro による仕様駆動開発
- セッション 09:MCP と AI エージェントを活用した自動テスト
- セッション 10:通信セキュリティのモダナイゼーション:機械学習を活用したアプローチ
- セッション 11:GenAIエージェントの再考:RAGとMCP
- セッション 12:TAKとAWSを活用した災害・緊急対応
- セッション 13:テストの観点からサーバーレスアプリケーションのワークフローを再考する
- セッション 14:クラウド成功のための実践的なAWS FinOps
録画
https://www.youtube.com/watch?v=41JNqwdVmfk
プラットフォームエンジニアリングのアプローチによるサーバーレス開発
- CNCFの定義:サーバーを管理することなくアプリケーションを構築・実行すること。
- 利点:
- [ 1 ] 運用上のオーバーヘッドを削減できる。
- [ 2 ] コストを削減できる。
- [ 3 ] 開発を迅速に進められる。
- [ 4 ] サーバーのプロビジョニングが不要になる。
導入の目標とルール
- [ 1 ] 目標:
- 顧客が抱える現実の問題を解決する。
- [ 2 ] ルール:
- 実質的な価値を生み出す。
- PHPチームの働き方に適合させる。
- 一人だけでなく、チーム全体が保守できるようにする。
ケーススタディと得られた教訓
- [ 1 ] パートナーデータ用のシンプルなAPI:
- Amazon API GatewayとAWS Lambdaを使用し、データをAmazon S3へ保存した。
- トラフィックが200倍に増えてもパフォーマンス上の問題はなく、その点では成功した。
- 隠れた問題:保守できるのが一人だけだった。
- 教訓:問題は言語(Python)ではなく、チーム文化との不一致と不慣れなツールにあった。
- [ 2 ] 機械学習向けサーバーレスプラットフォーム:
- コストを削減でき、データサイエンティストからも好評だった。
- 問題:一般の開発チームは利用できなかった。
- 教訓:専門家だけでなく、主要な開発者層のためのソリューションが必要だった。
- [ 3 ] AWS Amplify:
- AWS Amplifyを使った実験の詳細は途中で途切れているが、より広いチームに適した持続可能なサーバーレスソリューションを探す、もう一つの試みだったと考えられる。
主なポイント
- [ 1 ] 共同オーナーシップ:
- 真の成功には、共同オーナーシップとチーム文化への敬意が必要である。
- [ 2 ] チームへの適合:
- ソリューションはチームの働き方に合い、チーム全体で保守できなければならない。
まとめ
- サーバーレスを効果的に導入するには、チーム文化を理解して尊重し、保守性を確保し、すべてのステークホルダーに実質的な価値を生み出す必要がある。
新しいプロトタイプで直面した課題
- [ 1 ] 当初の反応:
- サーバーレスを使用した新しいプロトタイプは、使い慣れたツールによって培われたラボチームの「体に染み付いた感覚」から外れていたため、抵抗を受けた。
- [ 2 ] 得られた教訓:
- 大きな変更を導入する前に、使い慣れたツールへの信頼と安心感を得ることが重要である。
チーム間で異なった経験
- [ 1 ] Rubyチーム:
- サーバーレスの導入に成功した。
- [ 2 ] PHPチーム:
- 認知負荷が高く、導入に苦戦した。
- [ 3 ] 気づき:
- 成否の違いは、認知負荷とツールへの習熟度に起因していた。
プラットフォームエンジニアリングへ移行する新戦略
- チーム全体がサーバーレスを利用・保守できるよう、プラットフォームエンジニアリングへ移行する。
目標の再評価
- 以前の目標:サーバーレスプロジェクトを単にリリースすること。
- 新しい目標:チーム全体が運用できるサーバーレスプロジェクトをリリースすること。
- 成功指標:関数の数ではなく、チームの自信。
PHPチームでサーバーレスを機能させる
- 使い慣れたツールの必要性:
- PHP開発者には、安心して使えるツールが必要だった。
- カスタムランタイム:
- 2018年という早い時期から、Lambda上でPHP用カスタムランタイムを使い始めた。
ソリューション:LaravelとBref
- [ 1 ] Laravel:
- 開発者はすでにLaravelを信頼し、使い慣れていた。
- [ 2 ] Bref:
- Lambda上でPHPを実行する際の複雑さをBrefが処理した。
- [ 3 ] 組み合わせたソリューション:
- 既存のワークロードを維持しながら検証を行い、サーバーレスの利点を得られるようになった。
最初の本番アプリケーション
- [ 1 ] アプリケーション:
- 大容量CSVファイルの処理。
- [ 2 ] 技術スタック:
- Amazon S3 Selectを使用してLambda内でデータを絞り込み、予測可能なパフォーマンスを確保した。
- [ 3 ] 結果:
- 高速な処理を実現し、サーバー管理も不要になった。
チームへの導入と成功
- [ 1 ] 若手開発者:
- ドキュメントに従うだけで、サーバーレスアプリケーションを開発・デプロイできた。
- [ 2 ] 役割の変化:
- 発表者の役割は、ボトルネックからコーチへと変わった。
- [ 3 ] 再現性:
- このアプローチは再現可能になり、一人の専門家に依存しなくなった。
まとめ
- サーバーレスの導入を成功させるには、チームの力学を理解し、使い慣れたツールを活用し、チーム全体が自信を持ってサーバーレスアプリケーションを運用できる環境を育てる必要があった。
サーバーレスで生じた新たな課題
- サーバーレス固有の問題:
- コールドスタート、タイムアウト、メモリ制限。
- Laravelアプリケーション全体を一つのLambdaで実行する「Lambda Lift」では、パッケージサイズの増大や権限の複雑化といった課題が生じた。
実践的な解決策
- [ 1 ] 緩和策:
- Lambda Layersと、機密性の高い関数用に分離したIAMロールを使用した。
- タイマー処理にはプロビジョンドコンカレンシーを採用し、コールドスタートの管理にはイベント駆動型のアプローチを取り入れた。
- [ 2 ] 妥当性の確認:
- 評価の高いエンジニアとの議論や検証により、Lambda上でモノリスを実行することの実用性が確認された。
得られた教訓
- [ 1 ] マイクロサービス対モノリス:
- 完璧なマイクロサービスアーキテクチャが常に必要とは限らない。
- 各チームにとってLambda Liftは、共同オーナーシップと機能の迅速なリリースを可能にする実用的な選択肢だった。
- [ 2 ] チームの自信:
- 特定のアーキテクチャよりも重要である。
ソリューションの展開
- 再利用可能なテンプレートと標準コマンド:
- 新しいチームがゼロから始めずに済むよう、再利用可能なテンプレートと標準コマンドを作成した。
- プラットフォームチームのサポート負荷を軽減した。
プラットフォームエンジニアリング
- [ 1 ] 定義:
- 開発チームの認知負荷を下げ、機能をより迅速にリリースできるようにする共有サービスを構築すること。
- [ 2 ] 指針:
- プラットフォームに関するCNCFホワイトペーパーなど、業界のベストプラクティスに従った。
- [ 3 ] Team Topologiesモデル:
- プラットフォームチームが一般的な問題に対する標準ソリューションを提供して認知負荷を軽減し、将来のチームが機能開発に集中できるようにすることを目標とした。
プラットフォームの設計
- [ 1 ] 既存チームへの適合:
- 既存のチーム構成と文化に合うようプラットフォームを設計した。
- [ 2 ] 認知負荷の軽減:
- 不安を生むような複雑なサーバーレスアーキテクチャを避けた。
- ロードバランサーを使用し、適切なコンピューティング先へトラフィックをルーティングした(例:PHPチームが使い慣れたLambda)。
- [ 3 ] データベースの選択:
- 開発者が使い慣れたSQLコマンドを最小限の変更で利用できるよう、MySQL互換サービスのTiDBを選択した。
ローカル開発体験
- ツール:
- DockerとLocalStackを使用し、開発者が同じPHPコマンドを使ってノートPC上でアプリケーション全体を実行できるようにした。
- 導入時の障壁が大幅に下がった。
変革による成果
- [ 1 ] 役割の変化:
- 発表者の役割は、ボトルネックから支援者へと変わった。
- [ 2 ] 成功の拡大:
- このパターンを複数のチームへ展開した。
- 新しいチームをサーバーレスプロジェクトへ参加させるまでの時間が大幅に短縮された。
まとめ
- 認知負荷の軽減、使い慣れたツールの活用、再利用可能なテンプレートと標準ソリューションの提供に重点を置くことで、プラットフォームエンジニアリングのアプローチは、チームがサーバーレス技術を導入・展開する力を変革した。
プラットフォームの主な特徴
- [ 1 ] セルフサービスシステム
- コマンドと自動化されたCI/CDパイプライン。
- サポートチケットを不要にし、開発者が自分の作業に集中できるようにする。
- [ 2 ] ガードレール
- 構造化ログやアラート機能付きのSentryなどのツール。
- 問題の解決方法を示すガイダンスとLambda関数が含まれる。
プラットフォームの進化
- 初期段階:緊密な協力。
- 現在の段階:プラットフォームをセルフサービス製品として提供する「X as a Service」モデルへ移行中。
- 目標:セルフサービスを文化の自然な一部にする。
継続中の取り組み
- プロセスへの統合:
- スプリント計画、コードレビュー、振り返りにサーバーレスのパターンを組み込む。
- チーム全体がシステムを安心して扱えるようにする。
3段階のロードマップ
- [ 1 ] 適応:
- テンプレートとコーチングから始める。
- [ 2 ] 標準化:
- 標準になるまでテストとデプロイを自動化する。
- [ 3 ] 拡大:
- パターンをより多くの製品へ展開し、改善を続ける。
- [ 4 ] 成果:
- このシンプルなサイクルにより、チームの生産性が高まり、将来への準備が整う。
