
理想的なAWSのシステム設計はAWS Well-Architectedフレームワークなどと呼ばれます。
AWSの長年の運用検知が詰まった「ベストプラクティス集」です。
理想的なAWSのシステム設計
以下のような観点でシステム設計をすると理想的なAWSシステム設計ができます。
システム設計やシステム点検(コスト削減、セキュリティチェック)する際にチェック事項として利用するとよいでしょう。
- 信頼性の高いアーキテクチャ
- Reliability(信頼性、堅牢性:壊れにくさ)
- 単一障害点がないか?
- 自動的にリソース拡張できるか?
- 障害の影響を軽減できているか?
- これらをテストできているか?
- 回復性の高いアーキテクチャ
- Availability(高可用性:使用可能状態の維持の度合い)
- パフォーマンスに優れたアーキテクチャ
- 最新のテクノロジーのメリットを理解し、選定できているか?
- 価値の高い仕事に集中できているか?マネージドサービスを利用しているか?
- 最新テクノロジーの比較、実験を頻繁にできているか?
- セキュアなアーキテクチャ(セキュリティ)
- 権限管理、追跡調査できているか?
- すべてのレイヤにセキュリティを適用しているか?
- 継続改善できているか?
- リハーサルや自動復旧の仕組みづくりはあるか?
- コストが最適化されたアーキテクチャ
- リソース状況確認(空き容量)
- 拡張、縮小作業の実施
- コストを計測し、削減できる取り組みができているか?
- 差別化に繋がらない高過負荷の作業に費用をかけていないか?
- オペレーションを備えたアーキテクチャ(運用上の優位性)
- Serviceability(保守性:維持管理のしやすさ)
- 作業効率(ログイン回数など)
- ログを監視してモニタリングできるか?
- インフラをコード化して、安全に、頻繁にアップデートできるか?
といろいろ洗い出してみましたが、
こんな時間かけていられるか!
というのが本音だと思います。
成功事例から、システム設計する
これが手っ取り早い方法です。
例えば
AWS, Docker, CircleCI, Laravelでポートフォリオを作成してみた【参考リンク付き】 - Qiita
のような詳細に示してくれる記事があるので
こういうものを参考に足りないものを洗い出していくほうが、より早くかなうモノができあがりやすくなります。