yamamanx

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などをが設定通りに動作するか確認する
@yamamanx
開発ベンダー5年、ユーザ企業システム部門通算8年目のSoftware Engineerです。
質問はコメントかSNSなどからお気軽にどうぞ。
出来る限りなるべく答えます。

 - AWS ,

ad

ad

Message

メールアドレスが公開されることはありません。

  関連記事

EC2とRDSのMySQLを他のAWSアカウントへ移設する

他のAWSアカウントへシステムごと移設した場合の手順です。 構成はEC2とRDS …

「関西AWSスタートアップ勉強会」に行ってきました

第2回 関西スタートアップAWS勉強会に行ってきました。 akippa 拠点数コ …

[JapanTaxi] Athena 指向アナリティクス 〜真面目に手を抜き価値を得よ〜(AWS Summit Tokyo 2017)を聞いてきました

Athenaのユースケースとして聞きにいきましたが、最近触ってるRe:dashも …

AWS Summit 2016 Tokyoに参加してきました (Day3)

飛天3日目です。 JAWS-UGブースのすぐ前にあったこのお水がめちゃめちゃおい …

AWS Step Functions まずはパラレルでLambdaを並列実行してみました

複数のlambdaの実行制御をLambdaでやってましたが、その部分をStep …

AWS EC2 Amazon Linuxにmauticをインストールする(Sendgrid, Nginx, MySQL on RDS)

mauticをAmazon LinuxとNginx,MySQL on RDSにイ …

Route53でドメインを新規取得してDNSレコードを設定する

Elastic IPをAWSで発行しているのですから、DNSの設定も同じようにマ …

EC2 Amazon LinuxのNginx+RDS MySQLにレンタルWebサーバーからWordPressを移設する(手順整理版)

ブログサイト(WordPress)をレンタルWebサーバーからAWSに移設する事 …

AWS Summit 2016 Tokyoに参加してきました (Day2)

馬込は非常に良い天気です。 泊まっている部屋が2Fでしたので窓を明けると歩いてい …

AWS Toolkit for Eclipseをセットアップする

AWSでそろそろ課金がされつつありますので、夜中はインスタンスを自動停止して朝自 …