AWS でアーキテクチャ設計を検討する上で知っておくべき 10 のこと
1. スケーラビリティを確保する
ベストプラクティス
しきい値に達したあとに自動でスケールする
2. 環境を⾃動化する
アンチパターン
検知したあとに人が手動で起動や設定を行う
ベストプラクティス
CloudWatchで異常のあるインスタンスを自動的に検出
Auto Scalingにアラートを送信し、自動的に同じサーバを起動
ログを残す
管理者に通知
3. 使い捨て可能なリソースを使⽤する
リソース1つずつに名前を付けるのではなくラベル(タグ)で管理する
4. コンポーネントを疎結合にする
疎結合、つまりシステム構成要素間の結びつき、依存関係、関連性が弱い状態を目指す ウェブサーバーとアプリケーションサーバーを直で通信させるのではなく、間にロードバランサ(処理のつなぎ目)を挟む それぞれ3x3で直接やりとりをしていると、アプリケーションサーバー1台に障害があった際にすべてのウェブサーバーに影響がある
ロードバランサーを挟むことで
障害が起きたアプリケーションサーバーへアクセスがいかないようにする
ウェブサーバー追加時にすべてのアプリケーションサーバーを接続先と指定する必要がなく、ロードバランサーへ接続すればよい
メリット
必要な部分のみに変更を適用できる
アプローチ
処理の繋ぎ目を検討
つなぎ目となるコンポーネント
Many-to-Manyに繋げる
5. サーバーではなくサービスで設計する
耐障害性や可用性が組み込まれている
特にサービスのつなぎ目で活用する
6. 適切なデータベースソリューションを選択する
7. 単⼀障害点を排除する
すべてのものは故障するものと考える
8. コストを最適化する
総所有コストのことで、ある設備などの資産に関する、購⼊から廃棄までに必要な時間と⽀出の総計
最適化アプローチ・検討事項
リソースサイズとタイプが適しているか
どのメトリクスをモニタリングするか
起動不要なリソースがオフになっていることをどのように確認するか
リソースの使用頻度はどの程度か
マネージドサービスに置き換えられるか
9. キャッシュを使⽤する
ディスクやSSDでなくメインメモリに保存するのでマイクロ秒レベルのアクセスができる 10.すべてのレイヤーでセキュリティを確保する
11.増加するデータの管理
クラウドで変わるデータ活用
安価で上限なしのストレージであれば、データはすべて残すことができる
ディスクの限界でなくビジネスに合わせて変更できる
すべてのデータを1ヶ所に集めて保存し、利用時に好きなように加工できる