AWSアーキテクチャのベスト・プラクティス
AWS妥当フレーム支柱フレームワーク
- セキュリティ - 保護と監視システム
- 情報システムと資産を保護するために、
- リスク評価と緩和戦略
- 信頼性 - 障害や少数の中断から回復
- インフラやサービスの障害からの回復
- のニーズを満たすために、コンピューティングリソースへの動的アクセス
- 設定エラーを削減し、ネットワークの問題は一時的な中断を減らすために
- パフォーマンス - 資源の賢明な利用
- システム要件を満たすために、コンピューティングリソースの効率的な使用
- 需要の変化や技術開発はまだ効率を維持する場合
- コストの最適化 - 不必要な支出を排除
- 不要なコストと次善のリソースを削減
- オペレーショナル・エクセレンス
合理的なアーキテクチャの設計原理
- 推測容量の要件を停止 - 伝統的な環境の無駄があります
- そのため、テストの高コストのために、それは伝統的な環境をテストするために、実際の生産環境をシミュレートすることは通常できない - 生産レベル試験システムで
- 組織変更のリスクを減らす - 伝統的な環境は、次の試験に影響を与える可能性があるラインシリアライズされたテスト、テストプロセスにおける様々な変更、で待っが必要です。
- 低コストの変更を追跡し、復元するためのスクリプトと、レプリケーションシステムの作成 - 簡単に展開ができるように自動化することにより
- 製品のライフサイクルを制限することにより、従来の環境、早期の決定はまた、変化するビジネスニーズに対応することができない、障害物になる可能性 - サポートインフラの継続的な開発
- データ駆動型アーキテクチャ - クラウド環境では、関連するデータはCloudWatchので収集することができ、負荷のアーキテクチャを理解します。クラウド・インフラストラクチャは、コードの形で存在し、アーキテクチャを改善するために、これらのデータを使用することが可能です。
- インフラの不備を改善するために、大規模な流れをシミュレートすることによって、そして経験とに対処するためのプログラムの蓄積 - 大規模フローの改善をシミュレートすることで実現しました。
高可用性と冗長性
- 除去するために冗長性を導入し、現在のアーキテクチャの故障の単一点を発見しました
- 最も効率的な冗長性の最も適切なバックアップおよびリカバリ計画を選択
- 高可用性を実現するために、異なる可能な地理的領域を使用します
- ELBはRoute53を使用すると、自動的にダウンタイムを削減するために、冗長性イニシアチブメカニズムを達成するために切り替えます
柔軟な設計
- システムは、時間の経過とともに弾力性やビジネスに応答して、ユーザに、負荷の増加に突然の変化に対応する必要があり、トラフィック、パフォーマンスを犠牲にすることなく、データサイズの増加であります
- リソースの成長は規模の経済を導入すべきシステムがビジネス価値を作成するよう、費用はあなたの次元に童謡に従ってください
- 垂直スケーリング
- 以上のCPU、RAM、IO、ネットワーキング及び他の機能を停止させることにより達成さ調整の例
- 垂直方向のスケーリングは、その上限が容易に達成されていません
- ズームレベル
- ステートレスアプリケーション
- すべての操作は、過去の状況を知っている必要はありません、セッションが保存されることはありません
- これは、安全性の任意のレベルに拡張し、それがシステムのリソース間のセッションデータを共有しないため、終了するのは自由ですが可能
- すべてのノードが彼だけに割り当てることができるワークロードを処理する必要があり、他のノードの存在を認識する必要はありません。
- 垂直スケーリング
- ベストプラクティスを自動スケーリング
- ステートレスコンポーネント
- ほとんどのアプリケーションは、このようなログイン情報として、いくつかのステータス情報を維持する必要があります。
- オプション1:
- アプリケーションは、ローカルに(例えば、HTTPクッキー)セッションIDがユーザによって記憶されているクライアント上でステートレスの程度を達成することができるが、二つの問題が存在することになります。
- 改ざんに対する脆弱性ローカルエンド顧客情報にクッキー、各ユーザは、セッション状態のリソース占有増加待ち時間を送信する必要があります
- オプション2:
- 関連するデータベースサーバは、DynamoDBのように、サーバコンポーネントを有効にするとステートレスのユーザのセッション情報を格納します
- ステートフルコンポーネント
- 多くのアプリケーションおよびアーキテクチャはステートレスに変換することができません
- 多くのレガシーシステムを別々に計算、それがローカルリソースに依存して実行する必要があります設定されるように設計されています
- ステートレスコンポーネント
自動展開
- パブリッククラウドの最大の利点は、展開プロセスを自動化するAPIを使用する能力である、最初から自動展開を実行することをお勧めします
- オートメーションと再現展開が効果的にエラーを減らし、効果的なスケーラビリティの更新プロセスを促進します
- ブートストラップの例
- 自動アクションブートストラップを使用しての例
- 単に名前、初期化プロセスにおける役割情報として指定され、他のスクリプトがように、コード、スクリプトや構成などを含むさまざまなオプションの自動化を開始するために必要なすべてのリソースを提供し、自動的にあります。
- 同じ環境を作成するために繰り返し
- 抽象的なクラウドインフラストラクチャ残ります
- 手動エラーのチャンスの展開を削減
- 自己発見と自己修復環境を作成します。
- 自動アクションブートストラップを使用しての例
適切なストレージを選択
- S3
- ウェブは、大規模なストレージ容量とパフォーマンスを必要とします
- 高い耐久性データのバックアップおよび災害復旧支援
- 氷河
- 長期データのアーカイブとバックアップ
- CloudFrontを
- 世界のエッジ位置をストリーミングコンテンツ配信ネットワークの配備、静的、動的、およびインタラクティブコンテンツの使用
- DynamoDBの
- 高速かつ柔軟なNoSQLデータベース、柔軟なデータモデルと信頼性の高いパフォーマンス
- デカップリングステートフル・アプリケーションを使用することができる、DynamoDBの操作に格納されたユーザ状態は、コンポーネントのアプリケーション状態なしで達成することができます
- EBS
- ロットなどのOracle、SAP、交換、などの重要なアプリケーションを実行するための信頼性の高いストレージ
- RDS
- 高可用性SQLデータベース
- 赤方偏移
- ビジネス分析をサポートするために、PB級のデータウェアハウス
- ElasticCache
- Redisのクラスタ・キャッシュ・メモリ
- EFS(弾性ファイルシステム)
- 一般的なファイルシステムの複数のインスタンス間で共有アプリケーションEC2
それぞれのレベルでセキュリティを確立するために、
- 従来のセキュリティ監査、定期的に監査されていますが、クラウドで継続的な監視と管理を提供することができ、同僚は、セキュリティポリシーのインフラストラクチャの設計を埋め込むためのコードを使用しました
- ベストプラクティス
- インベントリデータと優先順位付けは、送信および保存中に暗号化の適切なレベルを適用します
- AWSは、マルチレベルの防御を備え
- ネットワークレベル:VPC、サブネット、セキュリティグループ、ルーティング制御
- ホストレベル:WAF、IAM
- AWSのセキュリティ
- AWSホスティングサービス、セキュリティパッチを使用し、AWSによって管理
- 特権アクセスを削減
- アプリケーションは、EC2上で実行するために、一時的なセキュリティトークンを使用します
- IAMは、アカウントと権限管理を使用して行わ
- 一時的なトークンの共同使用は、アクセスを提供します
- 資格証明書の自動配布やローテーション
- 最小助成金の許可基準の安全対策
- セキュリティを実現するためのコードを使用します
- 確実に「黄金の環境」と呼ばれるセキュリティを導入CloudFormationスクリプトを使用します
- セキュリティ上のベストプラクティスには、簡単でCICDパイプラインに異なる環境に統合し、再利用されます
- 自動検出は、安全性とセキュリティポリシーのベースライン偏差をテストするために使用することができます
- CloudFormationはガバナンスにおける製品の導入AWSサービスカタログの一貫として使用することができます
- リアルタイムの監査
- AWSセキュリティリスクを最小限に抑え、継続的な監視と制御の自動化を実現
- コンフィグルールを短時間非準拠したコンポーネントかどうかを知ることができます
- CloudWatchのは、広範なログを提供します
- 実際のAPI呼び出しを実現CloudTrail
- すべてのログは、ラムダ、EMRおよびその他の自動プロセスを調製することができます。
並列処理の考え方
- クラウドは簡単に並列処理を実現することができます
- 性能とスループットを向上させるために、設計が可能パラレル要求限り使用すべきであるので、そのような格納データを検索は、雲は、大規模な並列動作を処理するように設計された場合
- Webアプリケーションは、並列処理ELB負荷バランス着信要求の配布をサポートするように設計されなければなりません
- スレーブノードのバッチシーン以上使用することは、Hadoopのアーキテクチャよりも多くを持っています
疎結合デザイン
- システムは独立したシステムアーキテクチャ、より緩いコンポーネント、下部相互依存を複数形成するように設計され、大規模なシステムを拡張することができ
- アマゾンAPIゲートウェイは、オープンインタフェースの定義方法が完全にホストされているサービスを提供しています
- これは、作成、公開、維持し、APIやあらゆる規模の保護を監視するために、開発者を可能にします
- これは、トラフィック管理、認証およびアクセス制御を含む同時関与API呼び出しの数十万人を、扱うことができます
- 疎結合統合を使用する非同期モード、疎結合統合キネシスまたはSQSの使用
- 非同期統合結合はさらなる柔軟性を導入すること、メッセージの処理が再度失敗を行ってもよいです
AWSベストプラクティス
- スケーラブルなアーキテクチャを実現 - 需要の変化に対応するため
- 自動デプロイメント環境 - システムの安定性と一貫性を改善し、組織の効率を改善するためのマニュアルをなくします
- 一時的なリソースとして考えサーバおよびその他のコンポーネント - 使い捨て資源の使用
- 疎結合コンポーネント - 相互依存障害またはコンポーネントの変化は、他のコンポーネントが影響を受けていない場合、低減、及びELBプライマリデカップリングSQS溶液であります
- むしろ、サーバを設計するよりもデザインサービス - などラムダ、SQS、SNS、DynamoDBのように、より高い信頼性と環境を達成するために何の環境をホスティングソリューションとサービスアーキテクチャを可能にしません
- より適切なデータベースソリューション - テクノロジーとワークロードに合わせ、リレーショナルデータベース、NoSQLのデータベース、データウェアハウスなどの検索最適化されたデータストレージ用を選択
- 単一障害点 - システム全体を弱体化させるシングルポイント障害を回避するための実施形態の冗長性は、自動シャットダウンソリューションまたは失敗自動的に置き換え根本的なホスティングサービスを開始するために選択することができます
- コストの最適化 - リソースが適切なサイズであることを確認、それは自動的に減少し、需要拡大に応じて変動費に異なる料金プランの設備投資を活用することができます。
- 冗長データ検索操作を低減することが可能な限り - キャッシングを使用
- 各ポジション保護インフラストラクチャのセキュリティで - セキュリティは、周辺と内部リソースまたはリソースの間で達成することができます
イベント駆動型アーキテクチャ
アウトライン
- クラウドコンピューティングの利点は、変化に対応するために、需要資源の変化に対応するために迅速です。
- 伝統的なモデルであってもクラウドコンピューティングプラットフォームでは、手動の拡張子がわずか数分かかりますが、サーバーは、訪問に応答できない場合、完全な容量につながるだけでなく、受け入れられないだろう
イベント駆動型アーキテクチャに基づいて、
- CloudWatchの監視ソリューション
- 膨張の様々なトリガするための閾値を設定することにより、キューを使用して、CloudWatchの監視サーバは、閾値は、特定のルールの設定アプリケーションのカスタム指標に設定することができます。
- 自動スケーリング
- 拡張子をインスタンス化CloudWatchのアラームが受信したシームレスな体験を提供するために、アプリケーションは、サービスがフル稼働に達する前に行く準備ができています
- 垂直方向の拡張
- 等CPU、メモリ、等の仕様変更の例
- 垂直方向の拡大は、常にその天井があり、そこにパフォーマンスの問題は、そのようなあまりに起因するJavaスタックとして回復の長さが、より多くのであり、サーバを再起動する必要があります
- 水平展開
- インスタンスの数は、インスタンスを追加、削除、変更します
- ほとんど容量制約、唯一のアプリケーションの設計プロセスは、延長サポートのレベルを考慮する必要があります
- EC2自動回復
- EC2の問題は、例えば、損傷または自動回復機能が自動的に交換された場合
- 接続が失われたネットワークはCloudWatchの、システムの消費電力によって検出することができるので、ホストソフトウェアとハードウェアの問題は、EC2への損傷によって引き起こされます
- 例としては、同じインスタンスID、メタデータ、IPアドレスを維持するために交換することができますが、メモリのデータが失われます
- 中国はまだエリアでサポートされていません。
- あなたはEBSインスタンスストレージをサポートしなければならないストレージを使用することはできません
Webアプリケーションの設計
Webアプリケーションのビジネス価値
ウェブホスティング、クラウドベースのアーキテクチャの練習アーキテクチャ
- Route53は、DNSサービスを提供します
- CloudFrontは、高容量のコンテンツのためのエッジキャッシングを提供します
- ELBは、フロントエンドWebサーバートラフィックの自動スケーリンググループよりも少ないポイント
- Webサーバーのセキュリティグループは、ファイアウォール、セキュリティポリシーの外に達成します
- バックエンドファイアウォールのセキュリティポリシーを達成するためのバックエンドサーバーのセキュリティグループ
- ELBトラフィックのバックエンドは、バックエンドの分散アプリケーション・クラスター
- ElastiCacheは、それによってデータベース層の負荷を低減する、アプリケーションのためのキャッシングサービスを提供します
- S3によって静的な資産を保管し、提供するために