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

AWSの学習メモ

Amazon EBS

ブロックストレージ
    - EC2インスタンス・ストレージ
        - ホストコンピュータの領域で一時的なもの(落とすと消える)
    - EBS
        - SSD-backed Volume
            - gp2, io1
        - HDD-backed Volume
            - st1, sc1
EBSユースケース
    - gp2
        - 負荷が読めないシステム
        - 小規模DB
        - 開発環境など
    - io1
        - RDB
        - NoSQL
        - 他に持続的なIOPSパフォーマンスが必要な場合
    - st1
        - ビックデータ、分析
        - Hadoop、Splunk
        - DWH
    - sc1
        - ログデータ
        - アーカイブ
        - 低頻度アクセスの大量データ

gp2
    - デフォルトボリューム
    - 最小100IOPS(33.33GB以下)から最大16,000IOPS(5,334GB以上)
    - 1000GIBまでは3000IOPSまでバースト
    - スループットは1IOPS = 256KB/s
        - 128MB/s(170GBまで)
        - 最大250MB/s(170GBから334GB)
        - 250MB/s(334GB)
    - バーストバケットモデル
        - 5,400,000I/Oクレジットまで蓄積可能
        - バケットにクレジットが残っていればIOPSを3000まで引き上げてくれる
        - 枯渇するとベースラインパフォーマンス分
        - 3IOPS/GB以下でクレジット残高増加

    I/Oクレジットの監視で常にバーストするのであればSSD増加やio1への移行を検討

io1
    - 最小100IOPSからNitroベースインスタンスに対して最大64,000IOPS、
     他のインスタンスに対して最大32,000IOPSを提供
    - スループットは32,000IOPSで500MB/s、64,000IOPS/1000MB/sを提供

st1
    - シーケンシャルアクセス時に高い性能を発揮
        - ビックデータ向き
    - 500GB~16TBまで1GB単位で指定可能
    - 最大500IOPS、1MBのIOサイズで読み取りと書き込みが処理
    - スループット
        - 1TBあたり40MB/sがベースラインパフォーマンス
         1TBあたり250MB/sまで性能を引き上げるバーストが利用可能
         スループットの上限値は500MB/sとなる
sc1
    - ログやバックアップのアーカイブ先
    - 500GB〜16TBまで1GB単位で指定可能
    - 最大250IOPS、IMBのI/Oサイズで読み取りと書き込みが可能
    - スループット
        - 1TBあたり12MB/sがベースラインパフォーマンス
         容量1TBあたり12MB/sがベースラインパフォーマンス
         スループットの上限値は250MB/sとなる

st1/sc1のバーストはスループット

gp2とio1のIOPSカウント
    256KBまでの連続したアクセスを1IOPSとカウント
        - 32KBの連続するアクセス8回は、I/O命令を1回発行
        - 32KBのランダムなアクセス8回は、I/O命令を8回発行
    256KBを超える場合は複数回の256KBブロックアクセスを行ったとしてカウントされる
        - 32KBアクセスの1回はI/Oを1回発行
        - 512KBアクセスの1回はI/Oを2回発行

EC2インスタンス側のスループットを改善
    - 最新ではないインスタンスタイプの場合はEBS最適化(EBS-Optimized)を有効
    - インスタンスタイプを大きいものへ変更する

EBS側のI/O処理性能を改善
    - EBSボリューム側の実績IOPSを確認する
        - CloudWatchのVolume Read/Write Opsの合計値
        - OSでEBSボリュームへのI/O命令回数を確認(iostatやperfmon)
    - 上限に達成していればボリュームの変更を検討
        - タイプを変更(HDD -> gp2、gp2 -> io1)
        - スペックの変更(gp2:容量を増加、io1:IOPS値を増加)