クラウドインテグレーション事業部の森です。
re:invent 2023 に現地参加しております。
THE FRUGAL ARCHITECT ( 倹約的なアーキテクト )
本キーノートは、ワーナーのドラマ映像から始まりました。
そのドラマの中で THE FRUGAL ARCHITECT (倹約的なアーキテクト) という一冊の本がありその内容に沿ってキーノートが進みました。
本キーノートで話されていたコストについての原則はすべて以下に載っていますのでぜひご覧ください。
LAW Ⅰ. Make Cost a Non-functional Requirement. ( 第1条 コストを非機能要件にする )
可用性、拡張性とともにコストも非機能要件に含めることが重要だと述べていました。また、コストが一番見落とされるとも述べていました。
設計、開発、運用のあらゆる段階でコストを考慮しないことで、ビジネスが失敗する可能性が高まります。
純粋に、コストが収益より高ければリスクだからです。
コスト影響を早期かつ継続的に把握できるようにし、収益性を最大化させることが重要です。
LAW Ⅱ. Systems that Last Align Cost to Business. ( 第2条 コストをビジネスに合わせる )
コストがビジネスモデルと適合しているかについて確認しなければなりません。
システム設計の段階から、収益源と利益を考慮する必要があります。
階段状にコストを増加させ、利用数に合わせる形を取ることで、コストが最適化されます。
LAW Ⅲ. Architecting is a Series of Trade-offs. ( 第3条 アーキテクトとはトレードオフの連続である )
構築においてはあらゆる決定にトレードオフが発生します。
可用性やコスト、セキュリティ等様々な要素が関連しあうため、技術的ニーズとビジネス ニーズの間の適切なバランスを見つけて決定をする必要があります。そして、支出を抑え、価値を最大化する箇所にコストをかける決定が重要です。
LAW Ⅳ. Unobserved Systems Lead to Unknown Costs. ( 第4条 未知のシステムは未知のコストにつながる )
使用状況、支出、エラーなどを追跡することはコスト管理で非常に重要です。
新しくGAとなった、myApplications では、アプリケーションのコストをモニタリングおよび管理することができます。
重要なコスト指標を継続的にモニタリングすることで、過剰な支出を特定して運用コスト削減できる可能性があります。
LAW Ⅴ. Cost Aware Architectures Implement Cost Controls. ( 第5条 コストを意識したアーキテクチャーはコスト管理を実施する )
一般的なアプローチとしては、重要度に寄ってコンポーネントを階層化することがです。
Amazon のショッピングサイトの中でもTierが決まっており、Tier 1の耐障害性は最も投資すべきです。他のTierが落ちていてもTier 1はサービス提供のために決して停止させていはいけません。過去Tierが1に上がったものとしてはレビュー機能があるそうです。
コストと体験の両方を最適化することが重要です。
LAW Ⅵ. Cost Optimization is Incremental. ( 第6条 コストの最適化は漸進的である )
継続的なコスト最適化が重要であり、それは段階的です。
使用状況の継続的なモニタリングや、ワークロードのパターンを分析し最適化することなど、コスト追求は継続的な旅です。
LAW VII. Unchallenged Success Leads to Assumptions. ( 第7条 挑戦のない成功は思い込みを生む )
構築にコストがかかるものの、運用のコストも非常に大きいものです。
しかし、大きな失敗なく成功を得た場合、現状に満足してしまう傾向にあります。
そして、英語で最も危険なフレーズは以下です。
“We’ve always done it this way.”
そしてプレゼンの最後はこの7つの原則にいつでも戻ることができるように、THE FRUGAL ARCHITECTの本を模したサイトへのQRコードを共有しました。