AWS 5つの設計原則と11のベストプラクティス

# 5つの設計原則と11のベストプラクティス
<img width="677" alt="スクリーンショット 2020-03-08 14.03.00.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/522222/8e5b24e9-0848-a708-2261-f1d1d5cc1b26.png">

#<font color="green">運用上の優秀性
主にシステムの標準化と変更管理、運用自動化、障害予測と対応手順のテスト
##運用に関する6つの設計の原則と3つの分野におけるベストプラクティス

###設計の原則
- 運用のコード化
- ドキュメントへの注釈
- 高頻度で小規模な可逆的変更
- 運用手順の頻繁な更新
- 障害の予測
- 運用上の失敗の改善

###ベストプラクティス
####<font color="Red">準備
AWS CloudFormationによるテンプレートベースな方法、AWS Configを用いたシステム標準に準拠しているかのチェック等、運用の優秀性を実現するための効果的な準備方法の説明
####<font color="Red">運用
適切なシステム運用方法や効果的な運用イベントの管理について述べられており、特にAmazon CloudWatchを利用したシステムの運用状態のモニタリング、CloudTrail等によるロギング等が重要視されている
####<font color="Red">進化
運用上の優秀性を維持するために重要な運用進化の方法について。運用進化にとって不可欠なログ分析には、Amazon Elasticsearch Serviceを利用

#<font color="green">セキュリティ
###設計の原則
- 強固な認証基盤の整備
- 追跡可能性の実現
- 全レイヤーへのセキュリティ適用
- セキュリティのベストプラクティス自動化
- 転送中および保管中のデータの保護
- データに人を近づけない
- セキュリティイベントに対する準備

###ベストプラクティス
####<font color="Red">アイデンティティとアクセス管理
IAMによるAWSサービス・リソースへのアクセスコントロールが重要となります。
####<font color="Red">発見的統制
CloudTrailを用いたAPIコールの記録やAmazon GuardDutyによる不正操作の検出等により発見的統制を実現することができます。

####<font color="Red">インフラストラクチャ保護
インフラストラクチャの保護には、多層防御が重要となります。DDos攻撃を緩和するAWS ShieldとAmazon CloudFrontとの統合、AWS WAF等が紹介されています。

####<font color="Red">データ保護
データ暗号化機能（Amazon EBS・S３・RDS等）、機密データの自動検出・保護サービス（Amazon Macie）、暗号化キーの作成・管理サービス（AWS KMS）等が重要となります。

####<font color="Red">インシデント対応
効果的なインシデント対応を促進するための方法、例えばロギング機能の使用、APIと連携した自動処理、AWS CloudFormationによるテスト・検証用の環境構築等が紹介されています。

#<font color="green">Reliability：信頼性
<img width="533" alt="スクリーンショット 2020-03-08 14.45.50.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/522222/44e5a12c-d4c2-13e0-cd2d-3afedf91c30c.png">

インフラ障害からの迅速な復旧、設定ミスやネットワーク問題等の障害の軽減・防止
自動的に復旧可能なシステム設計、復旧計画の検証、復旧プロセスの自動化と変更管理
###設計の原則
- 復旧手順のテスト
- 障害からの自動的な復旧
- 水平方向のスケールによる総合的なシステム可用性の向上（需要変化に応じた水平スケーラビリティ）
- キャパシティを勘に頼らない
- 自動化の変更管理

###ベストプラクティス
####<font color="Red">基盤
AWSが十分なネットワーク帯域やコンピューティング性能を用意する責任を負っていること、過剰なプロビジョニングを防ぐため各AWSリソース数の制限を設定していること等が説明されています。
####<font color="Red">変更管理
AWS CloudTrailによるAPIコールの記録と監査用ログファイルの送信、AutoScalingを用いたワークロードの需要管理の自動化、CloudWatchにおけるアラート送信機能等が変更管理に関連するサービスとして紹介されています。
####<font color="Red">障害管理
モニタリングデータに対して自動化されたアクションの設定ができること、新しいリソースに置き換えることにより本番環境外で障害を分析できること等が説明されています。

#<font color="green">パフォーマンス効率
コンピューティングリソースの効率的な使用とその維持
システムに最適なソリューションの選択、パフォーマンスのモニタリングと効率の改善が挙げられます。

###設計の原則

- 最新テクノロジーの標準化
- 迅速なグローバル化の実現
- サーバーレスアーキテクチャの使用
- 実験頻度の増加
- 適合したテクノロジーアプローチ

###ベストプラクティス
####<font color="Red">選択
主要な4つのリソースタイプ（コンピューティング、ストレージ、データベース、ネットワーク）のパフォーマンス効率について説明されています。
####<font color="Red">レビュー
AWSでは、新しいリージョン、サービス、機能等の定期的なリリースによるパフォーマンス効率の改善が期待できます。
####<font color="Red">モニタリング
CloudWatchのモニタリングとアラーム送信機能を用いたパフォーマンス効率の改善について説明されています。
####<font color="Red">トレードオフ
Amazon ElastiCacheやCloudFrontを利用することでパフォーマンス効率が向上する一方で、システムはより複雑になります。このトレードオフを考慮した最適なアプローチの選択が重要となります。

#<font color="green">コスト最適化
最もコストを抑えたシステムによるビジネス価値の実現
コスト削減、発生する費用の把握と分析

###設計の原則
- 消費モデルの導入
- 全体的な効率の評価
- データセンター運用費の排除
- 支出の分析と帰属
- 所有コストを削減するためのマネージドサービスとアプリケーションサービスの使用

###ベストプラクティス
####<font color="Red">コスト効率に優れたリソース
最適なインスタンスとリソースを使用したシステム設計がコスト削減には不可欠です。ここでは、Trusted Advisorを用いたAWS環境の最適化、Amazon Auroraを使用したライセンスコストの排除等が紹介されています。
####<font color="Red">需要と供給の一致
需要に合ったリソースを自動的にプロビジョニングすることが、コストを最小限に抑える上で重要となります。AWSでは、AutoScalingを用いることで需要の変動に自動的に対応することが可能です。
####<font color="Red">費用の把握
費用を明確に把握することは、効率的なリソース使用を促し、無駄の削減に役立ちます。AWSでは、Cost Explorerにより支出の追跡と内訳を把握できます。また、AWS Budgetsを用いることでコストが閾値を超えた場合の通知を受け取ることができます。
####<font color="Red">継続した最適化
AWSの新しいサービス・機能のリリースにより、コスト効率を改善することができます。特に、大幅なコスト削減が可能になるケースがよくあるため、新たなマネージドサービスの確認が推奨されています

##最後に
参考サイト
http://blog.serverworks.co.jp/tech/2018/12/20/post-68335/