勉強日記

チラ裏

AWS Solution Architect Associate 試験対策 ch1_2

book.impress.co.jp


AWSサービス全体の概要

1-6 ストレージサービス

S3: Simple Storage Service

  • オブジェクトストレージ
  • 高耐久性
    • デフォルトで同一リージョン内の3箇所のAZに自動複製
    • eleven nine
  • 大容量ストレージ
    • 容量制限実質なし
      • 1ファイルあたりのサイズ制限はあり
    • 従量課金
  • バージョニング機能
    • オブジェクト単位にバージョンIDで管理
    • 標準では同名オブジェクト上書き(世代管理しない)
  • 静的Webサイトホスティング
    • サーバ不要
    • Route 53のDNSフェイルオーバーと組み合わせて、Sorryページとしてもよく使われる
  • 暗号化
    • SSE(Server-Side Encryption)
    • AES-256暗号化対応
      • AWSで鍵管理
        • S3のデフォルトキー
        • KMS: Key Management Serviceで管理されている鍵
      • ユーザーで鍵管理
        • ユーザーの任意の鍵
    • AWSで鍵管理する場合は、暗号化鍵と暗号化されたオブジェクトとのマッピングは透過的
  • アクセス制御
    • IAMポリシー
      • Read, Get, Put等の認可
    • バケットポリシー
    • ACL: Access Control List
      • AWSアカウントレベルのアクセス制御
      • パブリックアクセス
        • 不特定多数のユーザーへファイル公開可能
  • ストレージクラス
標準 Intelligent-Tiering 標準IA 1ゾーンIA RRS Glacier
説明 非推奨 アーカイブ目的
耐久性(%) eleven nine eleven nine eleven nine eleven nine 99.99 eleven nine
可用性(%) 99.99 99.9 99.9 99.5 99.9 99.99
AZ >=3 >=3 >=3 1 2 >=3
取り出し料金 - - あり あり - あり
ユースケース/
アクセス頻度
自動最適化 ?
  • 柔軟なライフサイクルポリシー
    • 設定した期間が経過したらなにかする
  • 署名付きURL
  • ログ保管
  • マルチパートアップロード
    • 大容量のオブジェクトのアップロード時に
    • 分割アップロードし、S3側で再構成
  • クロスリージョンレプリケーション
    • S3は分類上グローバルサービス
    • S3に保存したデータはデフォルトで同一リージョン内の3箇所のAZに複製される
    • これを複数リージョンに複製するようにする
      • AWSアカウントも指定可能

EBS: Elastic Block Storage

汎用SSD (General Purpose SSD: gp2) プロビジョンドSSD (PIOPS: io1) スループット最適化HDD (st1)
特徴 デフォルト、容量ごとにIOPS決まっている IOPS指定できる 大容量・安価
ユースケース OSのルート領域、IOPS要求の低い領域 IOPS要求の高い領域 コスト抑えたい
  • 高可用性
    • AZ内冗長性
  • スナップショットによるバックアップ
    • スナップショットはS3に自動保管
    • 初回はフルバックアップ
    • 以降は増分
    • 完了を待たなくて良い
      • 開始時点のスナップショットが保管される
      • cf. オンプレ環境での「スナップショット」は完了待ちがある

その他のストレージサービス

  • インスンタンスストア(エフェメラルディスク)
    • インスタンスのホストコンピュータの領域を使用
      • 高パフォーマンス
      • 揮発性
  • EFS: Elastic File System
    • 共有ストレージサービス
    • 複数のEC2インスタンスにアタッチできる
    • オンプレサーバーからも利用できる
  • SGW: Storage Gateway
    • S3に標準プロトコルでアクセス
      • NFS: Network File Sytem
      • SMB: Server Message Block
      • iSCSI: Internet Small Computer System Interface
    • オンプレサーバーにS3をマウントして利用できるようになる
    • タイプ
      • キャッシュ型ボリュームゲートウェイ
        • データをS3格納
        • 高アクセス頻度データはローカルキャッシュ
        • iSCSI使用
      • 保管型ボリュームゲートウェイ
        • データをスナップショットとしてS3に格納
        • iSCSI使用
      • テープゲートウェイ
        • 物理テープ装置の代替としてデータをS3 Glacierに格納
        • iSCSI使用
      • ファイルゲートウェイ
        • データをS3に直接オブジェクトとして格納
        • NFS使用
  • AWS Import/Export
    • ユーザ <-- 物理ディスク --> AWS内ストレージ
    • deprecated
  • AWS Import/Export Snowball
    • PB単位の大容量データをAWS内ストレージに転送
    • AWSが専用の筐体を用意・住所に発送

1-7 データベースサービス

AWSのデータベースの特徴

  • マネージド
    • 本来行いたいことに多くの時間を充てることができる
      • テーブルやカラムの設計等

RDS: Relational Database Service

  • DBエンジン
  • Amazon Aurora
    • PostgreSQL, MySQL互換
    • これらより高性能
    • 冗長構成
      • 3箇所のAZにデータ格納
      • 1AZにつき2箇所のディスクに書き込み
      • ダウンタイムほぼなし
  • パッチ適用の管理負荷軽減
    • パッチ自動適用
      • 曜日や時間帯指定
    • マルチAZ使用時の流れ
      1. スレーブのメンテ
      2. スレーブをマスターに昇格
      3. 元マスターのメンテ
  • バックアップと復元
    • バックアップ
      • データベースインスタンスのスナップショット
        • 標準で1日1回
        • S3
        • 任意のタイミングで手動でも実施可能
        • 保存期間指定可能
        • 最大で35日分保存可能
      • トランザクションログの保存
        • 5分に1回
        • S3
    • 復元方法
    • 復元時は新しいインスタンスを建てる
      • ので、アプリケーション側に修正必要
        • 新しいエンドポイントを指すように
  • マルチAZ
    • Aurora以外のエンジンでは明示的に指定
      • cf. Auroraではもともと3AZ x 2ディスクの冗長構成
    • 複数のAZをまたいでRDSクラスタ構築
    • 高耐久性・高可用性
      • 障害時、フェイルオーバーが働く
      • cf. シングルAZではバックアップからの復元が必要
  • リードレプリカ
  • SSL接続
    • 公式
    • コマンド
      • MySQL, MariaDB
        • mysql ... --ssl-ca=[full path]rds-combined-ca-bundle.pem --ssl-verify-server-cert
      • PostgreSQL
        • $ psql ... sslrootcert=rds-ca-2015-root.pem sslmode=verify-full"

DynamoDB

  • NoSQL
  • キーバリュー型
    • 半構造データもバリューとして格納可能
  • マルチAZ
    • 自動的に3AZに保存
  • 結果整合性モデル(Eventual Consistency)
    • データ読み取りのタイミングによっては書き込んだデータが反映されない
      • 3箇所のAZに分散・保存される際、時間差がある
      • 2つのAZに正常に書き込み完了した時点で、「正常に書き込み完了した」と判断し、成功の旨をレスポンスする
      • この状態で、残り1つのAZからデータを読み取るとinconsistencyがおこる
      • 時間が経てば正しく反映される(結果的には整合性が保証される)
    • それでは困る場合は「Consistent Read」オプションを利用する

Redshift

  • データウェアハウス
  • PB単位の大量データの集計・分析
    • BIツールなどからの
  • PostgreSQL8.0.2準拠
    • 列指向なので大きな違いもある
  • 世界観
    • クラスタ
      • ノードの集まり
        • リーダーノード
          • 処理を受ける
        • コンピュータノード
          • 実処理
  • スナップショット
    • タイプ
      • 自動
        • トリガーは下記いずれか:
          • 8時間ごと
          • 5GBの更新ごと
        • 保存期間がすぎると自動削除
      • 手動
    • 格納先
      • 標準: クラスターが配置されているリージョン
      • クロスリージョンスナップショット
        • 別リージョンにもコピー

ElastiCache

  • インメモリDB
  • RDSのキャッシュ等として利用される
    • EC2 -> ElastiCache -> RDS

1-8 データ通知・連携処理サービス

  • アプリケーションで自ら実装せずにデータ通知・連携

データ通知・連携処理サービスの概要

  • 通知処理
    • SES: Simple Email Service
      • メール
    • SNS: Simple Notification Service
      • メッセージ通知
      • Pub/Sub
      • 構成要素
        • トピック
          • 通知を受信するためのアクセスポイント
        • サブスクライバ
          • HTTP/HTTPS
          • AWSのさまざまなサービスへの通知・連携
            • CloudWatch
            • SQS
            • Lambda
        • パブリッシュ
          • トピックに対して配信
    • SQS: Simple Queue Service
      • メッセージキューイング
      • 非同期かつ並列な分散処理
        • 処理負荷の大きなバッチとか
    • Data Pipeline
      • データのETL: Extract/ Transform / Load
      • 機能
        • スケジュール
        • ワークフロー定義
        • イベント通知
        • オンプレ環境との連携
    • Kinesis
      • ストリーミング処理
      • シリーズ

1-9 構成管理サービス

構成管理

  • プロビジョニング
    • ITリソースを状況に応じて動的に利用したり割り当てたり
      • サーバー
      • N/W
      • DB
      • ストレージ
  • デプロイ
    • サーバーにファイルやアセットを配置して利用できるようにする

CloudFormation

  • AWSのすべてのインフラストラクチャリソースを自動でプロビジョニング
  • テンプレート
    • IaC: Infrastructure as Code
  • スタック
    • プロビジョニングされるリソースの集合

Elastic Beanstalk

  • プロビジョニング+デプロイ
  • 対応アプリケーション
  • Dockerにも対応
  • 対応サーバー

その他のサービス

  • OpsWorks
    • デプロイ・プロビジョニング自動化
    • 構成管理ツール利用可能
      • Chef
      • Puppet
  • CodeDeploy
    • デプロイ自動化

1-10 運用管理サービス

CloudWatchの概要

  • リソースの情報の収集・監視・可視化
  • EC2のメトリクス
    • 標準メトリクス
      • CPUUtilization
      • DiskReadOps
      • DiskReadBytes
      • NetworkIn
    • 標準メトリクスにないやつ
      • メモリ使用率
      • ディスク使用率
    • カスタムメトリクス
      • CloudWatchエージェントをインスタンスにインストール
      • 自前でスクリプト書いてエージェントからカスタムメトリクス送りつける
  • CloudWatchの監視間隔と保存期間
プラン 課金 監視間隔 収集データの保存期間
基本モニタリング 無料 5分間隔 最大15ヶ月
詳細モニタリング 追加料金 1分間隔 最大15ヶ月
  • CloudWatchアラーム
    • CloudWatchでの監視項目がある一定の値になった場合にアラームとアクション起動
    • 基本モニタリングなら5分間異常だとALARMになり5分間正常だとOKに
状態 説明
OK < 閾値 正常
ALARM > 閾値 異常
INSUFFICIENT-DATA データ不足につき判定不能
  • CloudWatch Events
    • イベント駆動型監視
    • トリガー
      • リソースの状態変化
        • EC2インスタンスの状態 pending->running とか
        • Auto Scalingの起動成功/失敗とか
      • スケジュール
    • アクション
    • 用例
      1. スポットインスタンスが強制停止されたら(トリガー)
      2. Lambdaを起動して(アクション)
      3. 新しいスポットインスタンスを起動する

その他の運用管理サービス

  • CloudWatch Logs
    • さまざまなAWSログを統合的に収集
      • VPCフローログ
      • CloudTrail
      • など
  • VPCフローログ
    • VPC内のネットワークインタフェース間で行き来する通信の内容をキャプチャ
    • やはり監視・監査に
  • CloudTrail
    • AWSアカウントで利用されたAPIコールをログとして記録
    • セキュリティ監視・監査に
      • 不審なアクセスや操作
      • 意図せぬ設定変更
    • AWS Configとの違い
    • 「何やったか」
  • AWS Config
  • AWS Systems Manager
    • なんかよくわからないので公式引用

AWS Systems Manager を使用することで、複数の AWS のサービスの運用データを一元化し、AWS リソース全体のタスクを自動化できます。
アプリケーション、アプリケーションスタックのさまざまなレイヤー、本番環境と開発環境といったリソースの論理グループを作成できます。
Systems Manager では、リソースグループを選択し、その最新の API アクティビティ、リソース設定の変更、関連する通知、運用アラート、ソフトウェアインベントリ、パッチコンプライアンス状況を表示できます。
運用ニーズに応じて、各リソースグループに対してアクションを実行することもできます。
Systems Manager により、AWS リソースを一元的に表示および管理でき、運用を完全に可視化して制御できます。

  • AWS Trusted Advisor
    • ベストプラクティスに基づいて改善事項を推奨する
    • 例の5つの柱っぽいやつ
      • コスト最適化
      • セキュリティ
      • 耐障害性
      • パフォーマンス
      • サービスの制限