1日1%成長する ~Aws EBS~

AWSの学習メモ

Amazon EBS

EBSの監視
    - 標準メトリクス
        - Volume Read/Write Bytes
        - Volume Read/Write Ops
        - VolumeConsumedReadWrite
        - Ops
    - 容量メトリクス
        - ディスクの使用量、空き容量
    - バーストクレジットのメトリクス
        - BurstBalance

    io1は1分間、gp2、st1、sc1は5分毎

NVMeSSD
    - NitroベースインスタンスではNVMeブロックデバイスとしてEBSボリュームを認識
    - OSのNVMeドライバを利用してPCIバスをスキャンして、アタッチされたEBSを検出
    - 旧世代のインスタンスやハイパーバイザーからの移行
        - 旧世代ハイパーバイザーからNitroハイパーバイザーへ変更の際にはNVMeドライバが必要
        - OS自体がNVMeデバイスに対応していること
        - OSのアップグレードが難しいなど、条件を満たすことができないc4/m4/r4などの旧世代を利用することも検討

    - OSからNVMeデバイスに送信されるI/O操作のタイムアウト値を最大へ
    - EC2の起動毎にデバイス名が変わるため、fstab等ではUUIDを指定(もしくはLABELでも可能)

Elastic Volume
    - EBSボリュームをEC2インスタンスにアタッチ中でもサイズやIOPSを変更可能
        - gp2 -> io1
        - gp2 -> st1やsc1への変更は500GB以下でないことを確認
        - サイズ縮小はできない
    - io1はサイズとiopsの両方が変更可能
    - APICLI、マネージメントコンソールから操作可能

    注意
        - EBSの容量拡張後はOS側のファイルシステムの拡張を実施
        - IOPSの設定は徐々に反映される
        - 1度変更すると6時間は変更不可(つまり6時間は変更できない)
        - 変更後のボリュームに応じて金額が変わる

バックアップ
    - 定期的にsnapshotを作成する
    - データ整合性を保つため、静止点を設けてやる
    - 保存期間や世代数は無制限
    - フルバックアップと増分バックアップフルバックと増分1バックアップを両方消すと戻せなくなる
    - リージョン間でコピー可能
    - cloudwatch eventsで可能

バックアップ方法
    - CLI/SDK/マネージドコンソール
    - Systems Manager/CloudWatch Events
        - windowslinux混合の場合に利用
        - VSSと連携して一貫性のあるSnapshotを作成可能
    - Amazon Data Lifecycle Manager(DLM)
        - タグ付けしたEBSを定期的にSnapshot
    - AWS Backup
        - EBSだけでなく、EFS、RDS、DynamoDB、StorageGatewayをサポート(東京リージョンは未サポート)
暗号化
    - ボリュームされると以下が暗号化される
        - ボリューム内のデータ、インスタンス間の移動されるデータ、Snapshotが暗号化される
    - OSから透過的に使えるためOSを乗っ取れれると意味がない
    - 暗号化/復号化はハードウェア機能なのでパフォーマンス影響は小さい
    - 暗号化されたSnapshotを復元すると暗号化されたボリュームが作成される

暗号化キー
    - AES256
    - Data keyは暗号化する各ボリューム毎に一意のキーを生成し、暗号化されたデータと共にボリューム上に保存
    - Data Keyの生成
        - AWS Management Service(KMS)
        - カスタマーマスターキー(CMK)及びカスタマー管理(CMK)

暗号化
    - EBSボリューム作成後はSnapshot経由で暗号化を有効にできる
    - 暗号化の解除を行う場合は新規ボリュームを作成してOS側でデータコピーを行う
    - 暗号化の解除は新規ボリュームを作成してOS側でデータコピーを行う
        - linux:rsyncwindows:robocopy