理想的なAWSのシステム設計はAWS Well-Architectedフレームワークなどと呼ばれます。
AWSの長年の運用検知が詰まった「ベストプラクティス集」です。
理想的なAWSのシステム設計
以下のような観点でシステム設計をすると理想的なAWSシステム設計ができます。
システム設計やシステム点検(コスト削減、セキュリティチェック)する際にチェック事項として利用するとよいでしょう。
- 信頼性の高いアーキテクチャ
- Reliability(信頼性、堅牢性:壊れにくさ)
- 単一障害点がないか?
- 自動的にリソース拡張できるか?
- 障害の影響を軽減できているか?
- これらをテストできているか?
- 回復性の高いアーキテクチャ
- Availability(高可用性:使用可能状態の維持の度合い)
- パフォーマンスに優れたアーキテクチャ
- 最新のテクノロジーのメリットを理解し、選定できているか?
- 価値の高い仕事に集中できているか?マネージドサービスを利用しているか?
- 最新テクノロジーの比較、実験を頻繁にできているか?
- セキュアなアーキテクチャ(セキュリティ)
- 権限管理、追跡調査できているか?
- すべてのレイヤにセキュリティを適用しているか?
- 継続改善できているか?
- リハーサルや自動復旧の仕組みづくりはあるか?
- コストが最適化されたアーキテクチャ
- リソース状況確認(空き容量)
- 拡張、縮小作業の実施
- コストを計測し、削減できる取り組みができているか?
- 差別化に繋がらない高過負荷の作業に費用をかけていないか?
- オペレーションを備えたアーキテクチャ(運用上の優位性)
- Serviceability(保守性:維持管理のしやすさ)
- 作業効率(ログイン回数など)
- ログを監視してモニタリングできるか?
- インフラをコード化して、安全に、頻繁にアップデートできるか?
しかし、全部満たすことは不可能なのでバランスが必要です。
レーダーチャートで表示するとわかりやすいかもしれません。
また要件によって、セキュリティ面を重要視するシステム設計になる場合もあります。
その際は利便性が失われる場合があります。
しかし、それが正解になりますのでケースバイケースでシステム設計が必要となります。
何を作るか、どのように作るか、どのようにテスト、運用(監査、セキュリティ、管理コスト)するか
業界は?
汎用設計から特化設計へ
AWSが提供しているサービス系統分け一覧
AWSサービスを覚える、全体を把握する。
要件に対して、AWSサービスを充てる。(マッチング)