【レポート】【初級】AWS の利用前におさえておきたい 10 のこと #AWSSummit

こんにちは。サイトウです。6月12日から14日まで開催された AWS Summit Tokyo 2019 に参加してきました。

出席したセッション「【初級】AWS の利用前におさえておきたい 10 のこと」のレポートをお届けします。

スピーカー

アマゾン ウェブ サービス ジャパン株式会社

技術統括本部

ソリューションアーキテクト

高山 博史 様

Well-Architected Framework とは?

システム設計、運用の大局的な考え方とベストプラクティス集コチラ
  • ソリューションアーキテクトとお客様が長年に渡り、数多くの経験から作り上げたもの
  • ベストプラクティスをご理解いただいた上で、ビジネス的な判断を実施いただくための材料
  • 質問と回答形式でのベストプラクティス
  • 全てがベストプラクティスに則っている必要は無い
【ポイント】
  • Well-Architected Framework は全部で 46 項目用意されている。
  • 運用中の内容と比較し、現状とのギャップを考える。
  • いわば、人間ドックや健康診断のような使い方ができる。

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

  • セキュリティ(5項目)
  • 信頼性(2項目)
  • コスト最適化(3項目)

1.AWSルートアカウントは最小限の利用に留める

[SEC 1]
Q: ワークロードの認証情報と認証をどのように管理していますか?
A: AWSルートアカウントには必ずMFA(他要素認証)を設定し、 最小限の利用に留める(極力使用しない)
  • AWSルートアカウントは最小限の利用に留める
  • ルートアカウントではなくIAMを利用する

2.ユーザには最小限の権限を付与する

[SEC 2]
Q: AWSサービスへの人為的なアクセスを どのように制御していますか?
A: ユーザは各個人に固有の認証情報(IAMユーザ)を払い出し、 必要に応じた最小限の権限を付与する
  •  IAMユーザとIAMグループを利用する
    •  各個人にIAMユーザを払い出す(共有アカウントにしない)
    •  最小限のアクセス権限から開始し、必要に応じて追加のアクセス権限を付与する
【ポイント】
  • 同じアカウントを使用していると CloudTrail で操作ログを取得しても区別できない。
  • 必要に応じてアクセス権を付与したときは、 MFA を必ず設定する。

3.認証情報をコードに埋め込まない

[SEC 3]
Q: AWSサービスへのプログラムによるアクセスをどのように制御していますか?
A: 認証情報をハードコーディングせず、 IAMロールを活用する
  • EC2 やAWS Lambda には IAM ロール利用
  • 認証情報の漏えいリスクを低減

4.セキュリティ関連ログの取得と監視

[SEC 4]
Q: ワークロードのセキュリティイベントをどのように検知し調査していますか?
A: セキュリティ関連のログ取得し、一元的に監視と分析をする
  • AWS CloudTrailによる操作ログの取得を設定する
  • Amazon GuardDutyの活用
【ポイント】
  • AWS CloudConfig も有効化するといい。
  • AWS CloudTrail は昔から使っているアカウントだと有効になっていない場合があるので注意。
  • Amazon GuardDuty は機械学習から疑わしいアクティビティを検出する。
  • セキュリティとコンプライアンスの一元化。
  • AWS Security を利用する。

5.各レイヤでのセキュリティ対策

[SEC 6]
Q: ネットワークをどのように保護していますか?
A: 各レイヤでのセキュリティ対策を実施する
  • アクセス設定を必要最低限に設定
  • AWS WAF
  • AWS Shield
【ポイント】
  • EC2 へのアクセスをセキュアにする
  • SystemManager のセッションマネージャーを利用する

6.データのバックアップ

[REL6]
Q: どのようにデータのバックアップをしていますか?
A: バックアップを取得し、定期的なリカバリテストで RTO・RPOを満たすことを確認している
  • Amazon EC2のAMI
  • Amazon EBSのスナップショット
  • RDSの自動バックアップ機能
【ポイント】
  • トラブル発生を想定した復旧テストで手順を確認しておく。
  • RDS自動のバックアップ機能で 、Point-in-Timeリカバリをすると新しいエンドポイントができるので復旧作業時に注意すること。

7.障害や不具合への対策

[REL7]
Q: システムがコンポーネントのエラーに耐えるように どのように設計していますか?
A: マルチAZまたは複数リージョンでシステムが実行されている 疎結合なアーキテクチャを採用している 障害を監視し自動的に回復する仕組みがある
  • 単一障害点の排除
  • RDSのMultiAZデプロイメント(オプション)
  • マネージドサービスの活用

8.使用料金の把握

[COST2]
Q: AWS使用量とコストを どのようにモニタリングしていますか?
A: 請求ダッシュボードやAWS Cost Explorerで積極的に使用料金を把握し、分析している
  • IAMユーザの請求情報へアクセス有効化
  • コストエクスプローラーの有効化
  • 請求情報とコスト管理ダッシュボード、請求書
  • コストエクスプローラー
  • AWS Budgetsの活用
【ポイント】
  • コストエクスプローラー有効化後のデータが閲覧対象になる
  • タグを設定すれば、タグごとに料金を把握することができる
  • AWS Budgets 閾値の設定、閾値を超えたら通知することが可能

9.メトリクスに基づいたサイジング

[COST5]
Q: コスト目標を達成するためにインスタンスタイプとサイズをどのように選択していますか?
A: メトリクスに基づき、サイジングを実施している
  • AWS CloudWatchでリソース利用状況を把握する
  • 利用状況に応じた適切なインスタンスタイプなどを選択
  • インスタンスタイプの見直しを検討する
  • 最新インスタンスファミリーを活用する
【ポイント】
  • インスタンスタイプによって異なるが、同じファミリーでも最新のインスタンスは高性能で安価になっている。
  • インスタンス乗換のテスト工数等も考慮してインスタンスの変更を検討する。

10.まずリージョン毎の価格差を考慮

[COST6]
Q: コスト削減のために料金モデルを どのように選択していますか?
A: 利用率を分析し、購入オプションを検討している リージョン毎の料金差も考慮している
  • より安価なリージョンを選択出来るようになる場合もある
  • 購入オプションの活用
  • 検討すべき購入オプション① -時間課金系サービス-
  • リザーブドインスタンスの適用箇所を検討
  • 検討すべき購入オプション②-その他 Amazon Cloudfront と Amazon DynamoDB のリザーブドキャパシティ

最後に

AWS は各サービスについて非常にたくさんのドキュメントを提供しています。AWS を始めたばかりの方やこれから始める方の中にはどのドキュメントから読んだらいいかわからない方もいらっしゃると思います。そんな方にぜひ参考にしていただきたいセッションでした。

また、AWS 認定資格やクラウドについて学習したい方向けのミニセッションのレポートも参考にしていただければ幸いです。

【レポート】AWS 認定資格のトレンドと最新情報

【レポート】AWS トレーニングプログラムの紹介とクラウド学習のコツ