gitkadoの気まぐれ日記

島根在住エンジニアが何かに興味を持ったらブログを更新します

【aws INNOVATE】AWS認定 試験対策 セッション1

セッション

aws INNOVATE
「回復性の高いアーキテクチャを設計する」
各セッション情報はこちら

概要

試験で全体の34%をしめるもっとも出題率が高い分野
4 つのベストプラクティスに基づいたポイントを紹介

  • 信頼性と回復性に優れたストレージを選択する
  • AWS のサービスを使用した疎結合化メカニズムの設計方法を決定する
  • 多層アーキテクチャソリューションの設計方法を決定する
  • 可用性や耐障害性に優れたソリューションの設計方法を決定する

ポイント

信頼性と回復性に優れたストレージを選択する

  • EC2インスタンスストア

  • EBS

    • 永続的ストレージ
    • 同じAZ内のEC2にアタッチ可能
    • EC2インスタンスと別料金(利用した量に応じて課金される)
    • 4種類のボリュームタイプがある
  • EFS

    • 複数のEC2から同時にアクセス可能
    • データを自動でスケーリングすることが可能
    • 耐久性/可用性に特化
  • S3

    • オブジェクトストレージ
    • EC2やWebから任意のデータを格納可能
    • 柔軟なアクセスコントロール
    • 暗号化可能(転送中はhttps)
  • Glacier

    • S3に似ている
    • アーカイブ用のストレージ
    • データの取り出しに時間がかかる
    • ストレージ料金的にはS3より安い

AWS のサービスを使用した疎結合化メカニズムの設計方法を決定する

多層アーキテクチャソリューションの設計方法を決定する

  • コンポーネントの状態の疎結合化(システムの可用性向上)

    • Webサーバからのメール通知を一旦キューに溜める
    • メールサーバに問題があってもWebサーバには影響がない
  • スケーラビリティの疎結合

    • Webサーバが使用するログ記録サービスを使用する
    • ログ記録サービスが過負荷でスローダウン
      • Webサーバの処理が遅延する
    • 疎結合の場合はログ記録サービスへのアクセスを一旦キューに格納する
      • ログ記録サービスが非同期にキューのアクセスを処理する
      • ログ記録サービスのコンポーネントを増やすだけで対処可能になる
    • オンプレと異なりクラウドは必要なインスタンスの準備を容易に行うことができる
    • 相互に密接に依存しない構成にすることでスケーラビリティな対応を容易に行える
    • コンポーネント間を非同期で処理する
    • 密結合だとコンポーネントの障害や負荷によって処理に影響が出る

可用性や耐障害性に優れたソリューションの設計方法を決定する

  • 高可用性

    • あらゆるものはいつ故障してもおかしくない
    • いずれかのコンポーネントが故障しても短時間で復旧できる様にする
    • 複数AZ、複数リージョン、オートスケーリング、マネージドサービスを使用する
  • 耐障害性/フォールトトレランス(コスト: 高)

  • CloudFormation

    • システム全体が停止してしまった場合に復旧できるのか
    • 必要なリソースの構成を準備する必要がある
    • 1つのテンプレートから全体構成(スタック)を作ることができる
    • テンプレートを直すことでスタックを直せる
  • Lambda

    • サーバレスアーキテクチャ
    • 様々なAWSサービスから呼び出せる(トリガー設定容易)
    • 可用性やスケーラビリティを運用者は気にする必要がない
      • コードの実行環境はAWSが提供しているため

問題を解くコツ

  • 問題文の大切なワードを整理して何を聞かれているのか正確に理解する
  • 複数の選択肢に絞れた場合は問題から限定的な文言を見つけ出す
  • 「単一のアベイラビリティゾーン」が正解ではないという前提に立って考える
  • マネージドサービスの使用を常に優先する
  • 高可用性と耐障害性は同じではない
  • あらゆるものはいつか故障するという前提に立って設計する