AWS ご利用開始時に最低限おさえておきたい10のこと

初めに

本記事は、AWS White Belt Online Seminar のアウトプットになります。

pages.awscloud.com

AWS Well-Architected Framework(W-A)

AWS Well-Architected Framework(W-A)とは?

システム設計・運用の大局的な考え方とベストプラクティス集
AWSのソリューションアーキテクトと利用者が数多くの経験から作り上げたもの
・毎年アップデートされる

AWS Well-Architected Frameworkホワイトペーパー

内容

・運用の優秀性
・セキュリティ
・信頼性
・パフォーマンス効率
・コストの最適化

設計原則

・必要なキャパシティを勘に頼らない
本番環境でのテストを行う
アーキテクチャ試行の回数を増やすために自動化を取り入れる
発展的なアーキテクチャを受け入れる
データ計測に基づいてアーキテクチャを決定する
・本番環境で想定されるトラブルをあらかじめテストし、対策する

質問と回答形式のベストプラクティス

・ベストプラクティスとしては、全項目網羅されている事
・リスクや改善点などを理解したうえで、明確な判断材料に基づいてあえてベストプラクティスを実施しないことは問題ない

設計構築時に”W-A”を実施

「ベストプラクティスの質問」を活用
・合計46個のベストプラクティスの質問に答えて、ワークロードとの差分(改善点・リスク)を把握する。
・ベストプラクティスを理解した上で、判断する 。
イメージは健康診断。改善、要改善項目を見つけ対応の要不要の判断をする。

※運用中のサービスのレビューも可能

AWS利用開始時に最低限おさえておきたいこと

セキュリティ(5/11項目抜粋)

・確認事項: ワークロードの認証情報と認証をどのように管理していますか。

ベストプラクティス:
rootアカウントには、必ずMFA(多要素認証)を設定し、最小限の利用に留める(極力利用しない)。
普段の作業には、IAMユーザーを使用する。

・確認事項: AWSサービスへの人為的なアクセスをどのように制御していますか。

ベストプラクティス:
ユーザー各個人に固有の認証情報(IAMユーザー)を払い出し、必要に応じた最小限の権限を付与する。 ユーザーグループを使うと、権限をまとめて管理できる。

・確認事項: AWSサービスへのプログラムによるアクセスを、どのように制御していますか。

ベストプラクティス:
認証情報をハードコーディングをせず、IAMロールを活用する。git-secretsを使い認証情報を管理することができる。

※git-secret‥AWS Labsの認証情報をgitリポジトリにコミットすることを防ぐツール。

・確認事項: ワークロードのセキュリティイベントをどのように検知して調査していますか。

ベストプラクティス:
セキュリティ関連のログを取得し、一元的に監視と分析をする。CloudTrailAPI、GUい操作ログ、コマンド操作ログなどを取得可能。
何かあった際にログを確認するだけでなく、普段から監視することも大事。Amazon GuardDutyを活用することで、通知の自動化も可能。

・確認事項: ネットワークをどのように保護していますか。

ベストプラクティス:
ネットワークACLSG(セキュリティグループ)を活用することで、各レイヤでのセキュリティ対策や必要最低限のアクセス設定に絞ることが可能。

AWS WAFAWS Shieldを活用することで、よりセキュアなシステムを構築できる。

信頼性(2/9項目抜粋)

・確認事項: どのようにデータをバックアップしていますか。

ベストプラクティス:
バックアップを取得し、定期的なリカバリテストでRTO・RPOを満たすことを確認している。 EC2 AMIEBS スナップショットRDSの自動バックアップ機能を活用する。
トラブル発生時を想定した、復旧テストを定期的に実施し、手順の確認をすることを推奨。

RTO‥インシデント発生から復旧までの「許容できるダウンタイムの最大時間」を指す。

RPO‥復旧すべきバックアップファイルの古さのこと。つまり、どの程度データの損失を許容できるのかを決める。

・確認事項: システムがコンポーネントのエラーに耐えられるようにどのように設計していますか。

ベストプラクティス:
マルチAZまたは、複数リージョンでシステムが実行されている疎結合アーキテクチャを採用している。
障害を監視し、自動的に回復する仕組みがある。
単一障害点の排除がキーポイント。

コストの最適化(3/9項目抜粋)

・確認事項: AWS使用量とコストをどのようにモニタリングしていますか。

ベストプラクティス:
請求ダッシュボードAWS Cost Explorerで積極的に使用量を把握し、分析している。
そのために、IAMユーザーの請求情報へのアクセス有効化コストエクスプローラーの有効化をルートアカウントで設定する。
日頃から定期的に確認することを推奨。

AWS Budgetsを活用することで、設定した予算から超過した場合に通知させることができる。

・確認事項: コスト目標を達成するためにインスタンスタイプとサイズをどのように選択していますか。

ベストプラクティス:
メトリクスに基づいて、サイジングする。
そのために、AWS CloudWatchでリソース状況を把握し、利用状況に応じた適切なインスタンスタイプなどを選択する。
リザーブドインスタンスAutoScalingなどの活用も検討する。
定期的に見直すことを推奨。
基本的には、新しいタイプ、ファミリーの方が安い。

・確認事項: コスト削減のために料金も出るはどのように選択していますか。

ベストプラクティス:
利用率を分析し、購入オプションを検討している。
時間課金系サービスを使い分けることを意識する。

リージョン毎の料金差も考慮している。
より安価なリージョンを選択できるような場合もある。