AWS ご利用開始時に最低限おさえておきたい10のこと
初めに
本記事は、AWS White Belt Online Seminar のアウトプットになります。
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リポジトリにコミットすることを防ぐツール。
・確認事項: ワークロードのセキュリティイベントをどのように検知して調査していますか。
ベストプラクティス:
セキュリティ関連のログを取得し、一元的に監視と分析をする。CloudTrail
でAPI、GUい操作ログ、コマンド操作ログなどを取得可能。
何かあった際にログを確認するだけでなく、普段から監視することも大事。Amazon GuardDuty
を活用することで、通知の自動化も可能。
・確認事項: ネットワークをどのように保護していますか。
ベストプラクティス:
ネットワークACL
とSG(セキュリティグループ)
を活用することで、各レイヤでのセキュリティ対策や必要最低限のアクセス設定に絞ることが可能。
AWS WAF
やAWS Shield
を活用することで、よりセキュアなシステムを構築できる。
信頼性(2/9項目抜粋)
・確認事項: どのようにデータをバックアップしていますか。
ベストプラクティス:
バックアップを取得し、定期的なリカバリテストでRTO・RPOを満たすことを確認している。
EC2 AMI
とEBS スナップショット
、RDSの自動バックアップ機能
を活用する。
トラブル発生時を想定した、復旧テストを定期的に実施し、手順の確認をすることを推奨。
RTO‥インシデント発生から復旧までの「許容できるダウンタイムの最大時間」を指す。
RPO‥復旧すべきバックアップファイルの古さのこと。つまり、どの程度データの損失を許容できるのかを決める。
・確認事項: システムがコンポーネントのエラーに耐えられるようにどのように設計していますか。
ベストプラクティス:
マルチAZ
または、複数リージョン
でシステムが実行されている疎結合なアーキテクチャを採用している。
障害を監視し、自動的に回復する仕組みがある。
単一障害点の排除
がキーポイント。
コストの最適化(3/9項目抜粋)
・確認事項: AWS使用量とコストをどのようにモニタリングしていますか。
ベストプラクティス:
請求ダッシュボード
やAWS Cost Explorer
で積極的に使用量を把握し、分析している。
そのために、IAMユーザーの請求情報へのアクセス有効化
とコストエクスプローラーの有効化
をルートアカウントで設定する。
日頃から定期的に確認することを推奨。
AWS Budgets
を活用することで、設定した予算から超過した場合に通知させることができる。
・確認事項: コスト目標を達成するためにインスタンスタイプとサイズをどのように選択していますか。
ベストプラクティス:
メトリクスに基づいて、サイジングする。
そのために、AWS CloudWatch
でリソース状況を把握し、利用状況に応じた適切なインスタンスタイプなどを選択する。
リザーブドインスタンス
やAutoScaling
などの活用も検討する。
定期的に見直すことを推奨。
基本的には、新しいタイプ、ファミリーの方が安い。
・確認事項: コスト削減のために料金も出るはどのように選択していますか。
ベストプラクティス:
利用率を分析し、購入オプションを検討している。
・時間課金系サービス
を使い分けることを意識する。
リージョン毎の料金差も考慮している。
・より安価なリージョン
を選択できるような場合もある。