Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

[AKIBA.AWS] EC2の基礎 - パフォーマンスを100%引き出すオプション設定 -

5,514 views

Published on

第一回AKIBA.AWS資料です。
Amazon EC2はAWSでもっともよく使われるサービスの1つです。基本的なサービスある一方で、EC2のパフォーマンスをうまく引き出すには、オプションパラメータ、インスタンスタイプ、ストレージ、ネットワークの特性をよく理解しておく必要があります。これら、EC2の各種オプションパラメータ設定を紹介し、ボトルネックになりやすいポイントや構築・運用上の注意点についてお話しします。

Published in: Internet
  • Hey guys! Who wants to chat with me? More photos with me here 👉 http://www.bit.ly/katekoxx
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here

[AKIBA.AWS] EC2の基礎 - パフォーマンスを100%引き出すオプション設定 -

  1. 1. EC2の基礎 -パフォーマンスを100%引き出すオプション設定- 菊池修治
  2. 2. 2⾃⼰紹介 菊池 修治 - クラスメソッド AWS事業部 - Solutions Architect - AWS認定 5冠 - SIer → 製造業 → クラスメソッド - 好きなデータストア - MongoDB
  3. 3. 3Agenda Introduction インスタンスタイプ EC2のストレージ EC2のネットワーク まとめ
  4. 4. 4Agenda Introduction インスタンスタイプ EC2のストレージ EC2のネットワーク まとめ
  5. 5. 5EC2のパフォーマンスを考える 性能問題/パフォーマンスチューニング • 指標を明確にすること • アプリケーションのレスポンス/スループット
  6. 6. 6EC2のパフォーマンスを考える 性能問題/パフォーマンスチューニング • 指標を明確にすること • アプリケーションのレスポンス/スループット • よくある間違い • CPU使⽤率が⾼い! • メモリ使⽤率が⾼い!
  7. 7. 7EC2のパフォーマンスを考える 性能問題/パフォーマンスチューニング • 指標を明確にすること • アプリケーションのレスポンス/スループット • よくある間違い • CPU使⽤率が⾼い! • メモリ使⽤率が⾼い! パフォーマンスが良好であれば問題ない CPU/メモリ/ストレージ/NW、全てのリソースが⾼い使⽤率を維持 できているのが最も望ましい状態
  8. 8. 8EC2作成時の設定項⽬:マネジメントコンソール 1. AMIの選択 2. インスタンスタイプの選択 3. 詳細設定 • インスタンス数 • 購⼊オプション(スポット) • VPC • サブネット • パブリックIPの⾃動割当の有無 • プレイスメントグループ • IAMロール • シャットダウン動作 • 削除保護 • 詳細モニタリング • EBS最適化 • テナンシー • ネットワークインターフェースの設定 • ユーザーデータ 4. ストレージ追加 5. タグ 6. セキュリティグループの選択 7. キーペアの選択
  9. 9. 9EC2作成時の設定項⽬:マネジメントコンソール 1. AMIの選択 2. インスタンスタイプの選択 3. 詳細設定 • インスタンス数 • 購⼊オプション(スポット) • VPC • サブネット • パブリックIPの⾃動割当の有無 • プレイスメントグループ • IAMロール • シャットダウン動作 • 削除保護 • 詳細モニタリング • EBS最適化 • テナンシー • ネットワークインターフェースの設定 • ユーザーデータ 4. ストレージ追加 5. タグ 6. セキュリティグループの選択 7. キーペアの選択 パフォーマンスを左右する項⽬に注⽬
  10. 10. 10Agenda Introduction インスタンスタイプ EC2のストレージ EC2のネットワーク まとめ
  11. 11. 11インスタンスタイプの選択
  12. 12. 12インスタンスタイプの選択
  13. 13. 13インスタンスタイプの選択 インスタンスタイプによって異なるのはvCPU、メモリ だけではない • インスタンスストレージの有無/タイプ • EBS最適化/最⼤スループット • ネットワークパフォーマンス • バースト有無
  14. 14. 14T2インスタンス • ⼀定のベースラインパフォーマンスを持つ • CPUクレジットを消費することでバーストすること ができる
  15. 15. 1CPUクレジット:1CPUコアを1分間、100%使⽤可能 15T2インスタンス インスタンス タイプ 初期CPU クレジット 1時間に受け取る CPUクレジット vCPU ベースライン パフォーマンス 最⼤獲得CPU クレジットバランス t2.nano 30 3 1 5% 72 t2.micro 30 6 1 10% 144 t2.small 30 12 1 20% 288 t2.medium 60 24 2 40%(最⼤200%) 576 t2.large 60 36 2 60%(最⼤200%) 864 t2.xlarge 120 54 4 90%(最⼤400%) 1296 t2.2xlarge 240 81 8 135%(最⼤800%) 1944 http://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/t2-instances.html
  16. 16. 1CPUクレジット:1CPUコアを1分間、100%使⽤可能 16T2インスタンス インスタンス タイプ 初期CPU クレジット 1時間に受け取る CPUクレジット vCPU ベースライン パフォーマンス 最⼤獲得CPU クレジットバランス t2.nano 30 3 1 5% 72 t2.micro 30 6 1 10% 144 t2.small 30 12 1 20% 288 t2.medium 60 24 2 40%(最⼤200%) 576 t2.large 60 36 2 60%(最⼤200%) 864 t2.xlarge 120 54 4 90%(最⼤400%) 1296 t2.2xlarge 240 81 8 135%(最⼤800%) 1944
  17. 17. 17T2インスタンス インスタンス タイプ 初期CPU クレジット 1時間に受け取る CPUクレジット vCPU ベースライン パフォーマンス 最⼤獲得CPU クレジットバランス t2.medium 60 24 2 40%(最⼤200%) 576 t2.large 60 36 2 60%(最⼤200%) 864 t2.xlarge 120 54 4 90%(最⼤400%) 1296 t2.2xlarge 240 81 8 135%(最⼤800%) 1944 ベースラインの表記は1vCPUを使⽤した場合の使⽤率であることに注意 • t2.mediumの場合、vCPU全体(2)では 40➗2 = 20%の使⽤率 • t2.xlargeの場合、vCPU全体(4)では 90➗4 = 22.5%の使⽤率
  18. 18. 18Agenda Introduction インスタンスタイプ EC2のストレージ EC2のネットワーク まとめ
  19. 19. 19EC2のストレージ EBS • 永続可能なブロックストレージ • パフォーマンス/コストの異なるタイプ • SSD:IO1、GP2 • HDD:ST1、SC1、(マグネティック) インスタンスストア • 揮発性のブロックストレージ • インスタンスタイプにより固定の割当 • HDD、SSD、NVMe SSD
  20. 20. 20EBSの選択 GP2(汎⽤SSD) • 1GBあたり 3 IOPSのIO性能が割り当て(ベースライン) • 1TB未満では”クレジット”を消費して3000 IOPSまでバースト • クレジットが枯渇するとベースラインまで低下 • 1ボリューム最⼤10,000 IOPS • 1インスタンス最⼤75,000 IOPS(複数ボリュームを使⽤) ただし、インスタンスタイプによりパフォーマンス上限が設定され ていることに注意
  21. 21. 21EBSの選択 IO1(プロビジョンドIOPS) • $0.073/IOPSで必要性能を割り当て • 50 IOPS/GBまでプロビジョニング可能 • 1ボリューム最⼤20,000 IOPS • 1インスタンス最⼤75,000 IOPS(複数ボリュームを使⽤) ただし、インスタンスタイプによりパフォーマンス上限が設定され ていることに注意
  22. 22. 22EBSの変更 • 2017年2⽉のアップデートでEBSのタイプ変更と容量追加がオンラ インで可能に • GP2からIO1、IO1からGP2など • 追加分の容量を利⽤するためにはファイルシステムの拡張が必要 • GP2では.. • 容量追加に伴うIO性能向上は⾃動で反映 • クレジット枯渇時に容量変更すると、クレジットが完全に回復 • ただし、1度変更すると次の変更は6時間後まで不可能
  23. 23. 23EBS最適化 • 通常のNWトラフィックと分離したEBS専⽤の帯域を確保することでNW I/O との競合を最⼩化 • T2を除く現⾏の主要インスタンスタイプ(M4/C4/R4/I3)ではデフォルト で有効化 • デフォルトで有効でないインスタンスタイプでは追加コストが発⽣ Network EBS Network EBS EBS最適化⾮対応インスタンス EBS最適化インスタンス
  24. 24. 24EBS最適化 • インスタンスタイプによりIO性能の限界があることに注意 インスタンス タイプ 最⼤スルー プット(MB/s) 最⼤IOPS (16KB) c4.large 62.5 4,000 c4.xlarge 93.75 6,000 c4.2xlarge 125 8,000 c4.4xlarge 250 16,000 c4.8xlarge 500 32,000 i3.large 50 3,000 i3.xlarge 100 6,000 i3.2xlarge 200 12,000 i3.4xlarge 400 16,000 i3.8xlarge 850 32,500 i3.16xlarge 1,750 65,000 インスタンス タイプ 最⼤スルー プット(MB/s) 最⼤IOPS (16KB) m4.large 56.25 3,600 m4.xlarge 93.75 6,000 m4.2xlarge 125 8,000 m4.4xlarge 250 16,000 m4.10xlarge 500 32,000 m4.16xlarge 1,250 65,000 r4.large 54 3,000 r4.xlarge 109 6,000 r4.2xlarge 218 12,000 r4.4xlarge 437 18,750 r4.8xlarge 875 37,500 http://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/EBSOptimized.html
  25. 25. 25EBSのプレウォーミング • スナップショット/AMIから復元したEBSは初期化が必要 • EBS各ブロックの初回アクセス時にレイテンシが増⼤ • dd/fioで⼀度、全ブロックにアクセスすることで本来のパ フォーマンスが発揮可能に • 新規に作成したEBSは初期化不要
  26. 26. 26インスタンスストア • 揮発性(停⽌/起動でデータは失われる)ではあるが、イン スタンスタイプによっては、追加コスト無しでハイパフォー マンスなストレージを可能 • 2017年2⽉にI3インスタンスがGA • NVMe SSD(PCI Express直結のSSD) • 最⼤ 3,300,000 IOPS
  27. 27. 27ストレージ最適化インスタンス インスタンス サイズ vCPU メモリ I3インスタンス ストレージ I2インスタンス ストレージ I3料⾦ I2料⾦ large 2 15.25 1 x 475 NVMe SSD - $0.18 - xlarge 4 30.5 1 x 950 NVMe SSD 1 x 800 SSD $0.37 $1.00 2xlarge 8 61 1 x 1900 NVMe SSD 2 x 800 SSD $0.73 $2.00 4xlarge 16 122 2 x 1900 NVMe SSD 4 x 800 SSD $1.46 $4.00 8xlarge 32 244 4 x 1900 NVMe SSD 8 x 800 SSD $2.93 $8.00 16xlarge 64 488 8 x 1900 NVMe SSD - $5.86 - • I3が登場しストレージ最適化インスタンスが⼿頃に
  28. 28. 28Agenda Introduction インスタンスタイプ EC2のストレージ EC2のネットワーク まとめ
  29. 29. 29EC2のネットワーク最適化 拡張ネットワーキング プレイスメントグループ
  30. 30. 30拡張ネットワーキング • シングルルートI/O仮想化(SR-IOV)を有効化すること でPPS、レイテンシが最適化 • 対応インスタンスタイプ • Intel 82599 Virtual Function(VF): C3、C4、D2、I2、R3、M4 (m4.16xlarge を除く) • Elastic Network Adapter(ENA): F1、I3、P2、R4、G3、X1 および m4.16xlarge http://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/enhanced-networking.html
  31. 31. 31拡張ネットワーキング • VF/ENAとも、インスタンス属性での有効化とドライバの 対応が必要 • Amazon Linuxでは対応のインスタンスタイプを選択する ことで⾃動で有効化される http://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/enhanced-networking.html
  32. 32. 32拡張ネットワーキング VF有効化の確認 • インスタンス属性の確認 • カーネルモジュール(ixgbevf)の確認(Linuxの場合) http://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/enhanced-networking.html $ aws ec2 describe-instance-attribute --instance-id instance_id --attribute sriovNetSupport "SriovNetSupport": { "Value": "simple” }, $ modinfo ixgbevf filename: /lib/modules/3.10.48-55.140.amzn1.x86_64/kernel/drivers/amazon/ixgbevf/ixgbevf.ko version: 2.14.2 license: GPL description: Intel(R) 82599 Virtual Function Driver : : 有効化されていない場合は値が空 最低推奨バージョン2.14.2以降
  33. 33. 33拡張ネットワーキング ENA有効化の確認 • インスタンス属性の確認 • カーネルモジュール(ena)の確認(Linuxの場合) http://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/enhanced-networking.html $ aws ec2 describe-instances --instance-id instance_id --query 'Reservations[].Instances[].EnaSupport’ [ true ] $ modinfo ena filename: /lib/modules/4.4.11-23.53.amzn1.x86_64/kernel/drivers/amazon/net/ena/ena.ko version: 0.6.6 license: GPL : : インストールされていなければERROR trueであればサポートされている
  34. 34. 34プレイスメントグループ • インスタンスを論理グループ化しインスタンス間の通信を最適化 • 同⼀AZに限る • ピアリングしたVPCにも適⽤可能 • 拡張NWと組み合わせることで効果を最⼤化 • InsufficientInstanceCapacityエラーのリスクに注意 • InsufficientInstanceCapacity:リソース不⾜による起動失敗 http://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/placement-groups.html
  35. 35. 35拡張ネットワーキングとプレイスメントグループ 効果 • 同⼀AZ内のインスタンス間のPingレイテンシ(100回) • インスタンスタイプ:c3.large • OS:CentOS6 条件 最⼩(ms) 平均(ms) 最⼤(ms) 標準偏差 デフォルト 0.318 0.385 0.814 0.075 拡張ネットワーキング有効化 0.202 0.220 0.389 0.023 プレイスメントグループ有効化 0.239 0.301 0.410 0.034 拡張ネットワーキング + プレイスメントグループ 0.130 0.157 0.172 0.018 http://dev.classmethod.jp/cloud/aws/ec2-placement-group/
  36. 36. 36Agenda Introduction インスタンスタイプ EC2のストレージ EC2のネットワーク まとめ
  37. 37. 37まとめ • EC2のパフォーマンスを引き出すためにはCPU/メモリ/ディスク /NWの全体で最適化する • インスタンスタイプによってvCPU/メモリ以外にも、ストレージ、 ネットワークのパフォーマンス特性が異なることに注意 • 最新世代のインスタンス + Amazon Linuxであればデフォルト で最適化される設定が多い
  38. 38. 38

×