ヤマムギ

growing hard days.

*

AWS Well-Architected フレームワークによるクラウド ベスト プラクティスのセッションを聞いたので自アカウントの環境を確認してみる

      2017/06/04

AWS Summit Tokyo 2017で「AWS Well-Architected フレームワークによるクラウド ベスト プラクティス」というセッションを聞いてきましたので、個人の環境のセルフレビューをしてみたいと思います。

AWS Well-Architected フレームワーク

  • 質問に答える形式でレビューが出来る
  • 設計のベストプラクティス
  • 5つの柱(コスト、信頼性、運用性、セキュリティ、パフォーマンス)
  • Availability = MTTF(故障までの平均時間) / (MTTF + MTTR(修理して回復するまでの時間))

AWS による優れた設計のページからホワイトペーパーをダウンロードして始められます。

ホワイトペーパーは英語です。
英語の勉強はまたするとして今回はGoogleドキュメント翻訳でPDFを翻訳して内容を読んでみました。
内容は2017/6/4現在のものです。

セキュリティ

SEC 1. How are you protecting access to and use of the AWS root account credentials?

rootのMFAは有効。
他にアカウントを作成しrootは未使用。

SEC 2. How are you defining roles and responsibilities of system users to control human access to the AWS Management Console and API?

出来る限り最小限の機能のみを有効。
個人アカウントなので入退社の概念はなく、サービス開始停止も頻繁にないのでメンテナンスもあまり大変ではありません。

SEC 3. How are you limiting automated access to AWS resources? (e.g., applications, scripts, and/or third-party tools or services)

EC2へのIAMロールは設定。
AWS STS(Security Token Service,一時的認証情報)は使った事がない。
プログラムからのリソースアクセスで有効な場面では使うべきということですね。

SEC 4. How are you capturing and analyzing logs?

CloudWatchは時々確認、監査の自動化は未。
ELBのログはS3->Athenaにしています。
CloudTrailは有効。

SEC 5. How are you enforcing network and host-level boundary protection?

セキュリティグループで制限。
RDSはプライベートアクセスのみにしてSQLクライアントツールを使用する場合はEC2を踏み台にしてアクセス。

SEC 6. How are you leveraging AWS service level security features?

IAMポリシー制御が主。

SEC 7. How are you protecting the integrity of the operating systems on your Amazon EC2 instances?

EC2の侵入検知や構成管理の自動化は出来てない。

SEC 8. How are you classifying your data?

データ分類はしていないが暗号化はしている。

SEC 9. How are you encrypting and protecting your data at rest?

RDSの暗号化は有効。

SEC 10. How are you managing keys?

CloudHSMは未使用。

SEC 11. How are you encrypting and protecting your data in transit?

必要に応じてSSL。

SEC 12. How do you ensure you have the appropriate incident response?

問題が起こってから調査、対応が主。
事前インシデント予測は未。
個人アカウントなのでこの環境で問題が発生/対応することで本番には活かせている。

信頼性

REL 1. How do you manage AWS service limits for your accounts?

必要に応じて申請。

REL 2. How are you planning your network topology on AWS?

自宅とAWSのVPN検討中。
サブネットなどネットワークの情報整理中。

REL 3. How does your system adapt to changes in demand?

Auto Scaliingは未。
* 事前に予測して余裕を持った構成にするのではなく、必要になった時必要な分だけリソースを使う。

REL 4. How are you monitoring AWS resources?

CloudWatchによるアラートは未。

REL 5. How are you executing change?

EC2へのパッチ適用自動化は未。
EC2 System Managerを使って構成したい。

REL 6. How are you backing up your data?

RDSは自動バックアップ。
EC2は構成変更の際に手動バックアップ。
LambdaのコードはCodeCommitで管理。

REL 7. How does your system withstand component failures?

負荷分散はなし、CloudFrontかELBで対応予定。

REL 8. How are you testing for resiliency?

障害想定のテストは未。
冗長化にあわせて行う。

REL 9. How are you planning for disaster recovery?

自動回復は未。
CloudFormationで現構成を固める。

パフォーマンス

PERF 1. How do you select the best performing architecture?

負荷テストは未。
スケールアップのための情報整理は未。

PERF 2. How do you select your compute solution?

最低スペックから施行。
不足が発生すればスケールアップ。

PERF 3. How do you select your storage solution?

極力EC2にはデータを置かずにS3に格納するようにしている。

PERF 4. How do you select your database solution?

個人アカウントなので基本的には学びたいものを採用。
パラメータグループは基本デフォルトで困ったときに変更。

PERF 5. How do you select your network solution?

EC2前にCloudFrontを検討中。
ドメインのRoute53移管中。

PERF 6. How do you ensure that you continue to have the most

appropriate resource type as new resource types and features
are introduced?

選択肢が多く持てるようサービス検証を継続。

PERF 7. How do you monitor your resources post-launch to

ensure they are performing as expected?

CloudWatch + SNSによる通知が一部のみ。

PERF 8. How do you use tradeoffs to improve performance?

選択肢が多く持てるようサービス検証を継続しそれぞれ得意なケースを確認。

コスト

COST 1. Are you considering cost when you select AWS services for your solution?

極力、Lambda,S3を使用することでコスト低下を目指す。

COST 2. Have you sized your resources to meet your cost targets?

適切なリソースサイジングのためにメトリクス監視は未。

COST 3. Have you selected the appropriate pricing model to meet your cost targets?

リザーブドインスタンス、スポットインスタンスの検証は未。

COST 4. How do you make sure your capacity matches but does not substantially exceed what you need?

未使用の無断なリソースが発生していないか監視が必要。

COST 5. Did you consider data-transfer charges when designing your architecture?

CloudFront一部利用。

COST 6. How are you monitoring usage and spending?

コストのアラートは設定済。

COST 7. Do you decommission resources that you no longer need or stop resources that are temporarily not needed?

時々不要になっているボリュームとスナップショットを削除している。

COST 8. What access controls and procedures do you have in place to govern AWS usage?

各リージョンにまたがっての使用状況の監視自動化が未。

COST 9. How do you manage and/or consider the adoption of new services?

新機能を積極的に検証し使うようにはしている。

運用制

OPS 1. What best practices for cloud operations are you using?

チェックリスト、セキュリティリストは未。
自動化したい。

OPS 2. How are you doing configuration management for your workload?

CDPはスライドに残す。
細かい設定はCloudFormationで固めたいが未。

OPS 3. How are you evolving your workload while minimizing the impact of change?

CI/CDパイプラインは未。
これは今SAMを使って一番やりたい。

OPS 4. How do you monitor your workload to ensure it is operating as expected?

モニタリングとアラーム通知、復旧の自動化はもっとやるべき。

OPS 5. How do you respond to unplanned operational events?

例えばサービスが応答なしになった際のインスタンス自動再起動などを設定するべき。

OPS 6. How is escalation managed when responding to unplanned operational events?

エスカレーション手順の明確化は未。

以下、セッションのメモです。

Automatic Feedback Control

  • アクセスログを継続的に解析し不審な接続元をWAFでブロックするよう自動設定する
  • ELB , S3 , Lambda , WAFで実現

Continuous Delivery & Test Automatic

開発サイクルとテストの自動化

  • 問題が発生してすぐに修正、テスト、デプロイが可能なプロセスを整備
  • テストケースの生成を自動化
  • コード変更発生時に自動でビルド、テスト、本番へのデプロイを自動化
  • ロールバックも自動化
  • 定義された性質を満たす検証ケースをランダムに自動生成する(QuickCheckなど)
  • CodePipeline , CodeBuild , CodeDeployで実現
  • 大きく改修、デプロイするのではなく、出来る限り小さい単位で変更してデプロイする

Game-day Testing

  • トラブルが本当に発生した時にはじめて対応するのではなく、本番で想定されるトラブルと対応をあらかじめテストする
  • 本番と同じ環境を作ってテストして破棄する
  • CloudFormation で本番と同様の環境をが可能
  • インフラの変更もJsonコードの変更で可能

Error Injection

  • データセンターや地域レベルの障害を注入してテストする
  • Route53のFailoverなどをが設定通りに動作するか確認する

最後までお読みいただきましてありがとうございました!

「AWS認定資格試験テキスト&問題集 AWS認定ソリューションアーキテクト - プロフェッショナル 改訂第2版」という本を書きました。

「AWS認定資格試験テキスト AWS認定クラウドプラクティショナー 改訂第2版」という本を書きました。

「ポケットスタディ AWS認定 デベロッパーアソシエイト [DVA-C02対応] 」という本を書きました。

「要点整理から攻略するAWS認定ソリューションアーキテクト-アソシエイト」という本を書きました。

「AWSではじめるLinux入門ガイド」という本を書きました。

 - AWS ,

ad

ad

  関連記事

S3 Intelligent-Tieringのオブジェクトの階層移動をCloudWatchメトリクスで確認

CloudWatchメトリクスの保存期間は現時点で15ヶ月(455日)なのでそろ …

CloudFormationスタックポリシーでスタック更新を防止する

CloudFormationのスタックにスタックポリシーを設定することによって、 …

Amazon Location Service入門ワークショップ-ジオフェンス

関連記事 Amazon Location Service入門ワークショップの前提 …

AWS Cloud9でJavaサンプルを実行する

リモートで共有開発ができるCloud9便利ですね。 Cloud9でJavaのサン …

EC2インスタンスを必要最小限のパラメータでCLIとSDKから起動する

EC2インスタンスをCLIとSDKから起動するデモで、パラメータを必要最小限にし …

EC2インスタンスプロファイルによってAssumeRoleされた認証情報の有効期限は短くできるのでしょうか

「EC2インスタンスプロファイルによってAssumeRoleされた認証情報の有効 …

AWS Managed Microsoft ADを構築してユーザー追加まで

事前準備 DNSホスト名と名前解決を有効にしたVPCを作成して、2つのAZにパブ …

S3バケットポリシーでクロスアカウントのPrincipalについて確認

確認したこと ドキュメントではこちらで確認しました。 AWS JSON ポリシー …

EC2インスタンスの起動で、–cli-input-jsonと–cli-input-yamlを使いました

AWS CloudShellから実行しました。 JSON実行 [crayon-6 …

AWS Organizationsで新規メンバー登録したアカウントを組織から離して解約

2021年現在ではこの方法しかないと認識していますので書き残します。 そのうち新 …