【レポート】【初級】Amazon EC2インスタンスタイプの選び方ガイド #AWSSummit

2019.06.13

こんにちは、大前です。

EC2インスタンスってタイプがたくさんあって何使ったら良いかわからなくなる時ありませんか?

Day2のセッションである「【初級】Amazon EC2インスタンスタイプの選び方ガイド」を受講したので、レポートの方書いていきます。

本ブログは、AWS Summit 2019 day2のセッションレポートになります。

セッションレポート

セッション概要

登壇者

アマゾン ウェブ サービス ジャパン株式会社 技術統括本部 ソリューションアーキテクト 小川 貴士 様

概要

EC2は年々新種のインスタンスがリリースされており、CPUやメモリサイズのバリエーションの他、GPU/FPGAなどのアクセラレータからIntel、AMD、ARMなどCPUアーキテクチャまで数多くの選択肢が存在しています。本セッションではEC2のインスタンスタイプの全容を理解し、数多くのEC2ラインナップの中から利用に合ったインスタンスタイプを的確にチョイスできるようになって頂くことを目的とした内容となっております。

セッションの目的

「c5d.xlarge」

  • この文字列の意味を理解して的確なスペックのEC2インスタンスを選択できるようになってもらう
  • どういうサーバーのスペックがあるのか理解していただく

Agenda

  1. Amazon EC2インスタンスのラインナップをしる
  2. EC2インスタンスのネーミングポリシーから全容を理解する
  3. EC2インスタンスタイプにまつわる補足情報
  4. EC2インスタンス選定のポイント

ラインナップをしる

EC2(Elastic Compute Cloud)とは

  • 数分で起動し、1時間または秒単位の従量課金で利用可能なAWSクラウド上の仮想サーバー
  • サーバーの追加・削除、マシンスペック変更も数分で可能
  • 管理者権限で作成したインスタンスを利用可能
    • 好きなアプリを自由にインストールできる

物理的な仕組み

  • 物理サーバーの上にハイパーバイザーがあり、その上のゲストOSがEC2インスタンスとなる

利用できる AWSデータセンター拠点

  • 21のリージョン、66箇所のAZ
  • 全てのリージョンとAZで利用することができる
  • リージョンによっては選択できるインスタンスの種類と価格が異なる
  • 東京より北米の方が安い

EC2で選択できるプロセッサとアーキテクチャ

  • Intel Xeon Processor
  • AMD EPYC processor
  • AWS Graviton Processor

CPUあたりの性能だとインテルが高いが、性能を重要視しない場合はコストを抑えることが出来るため、他のプロセッサを選択するのもベター

アクセラレータ搭載インスタンス

  • NVIDIAのGPU
  • XILINXのFPGA

自分で環境を用意するとコストが高いため、「使った分だけ課金」というクラウドの良いところを活用できる

安価なアクセラレータオプション

  • Elastic Graphics
  • Elastic Inference

幅広い選択肢

  • カテゴリー+機能+オプション=170種類以上のタイプが存在

ネーミングから全容を理解する

ネーミングポリシー

  • "c5d.xlarge" ... インスタンスタイプ
  • "c" ... インスタンスファミリー
  • "5" ... インスタンス世代
  • "d" ... 追加機能
  • "xlarge" ... インスタンスサイズ

インスタンスファミリー

  • メモリ、IO、CPUクロック重視、GPU、FPGA搭載などの特徴を持つ
  • 大きく5つのカテゴリに分類されている
    • 汎用
    • コンピューティング最適化
    • ストレージ最適化
    • メモリ最適化
    • 高速コンピューティング(GPU・FPGA)

インスタンス世代

  • 同じインスタンスファミリーでも世代が進むにつれ数字が大きくなる
  • 新しい方が性能もコストパフォーマンスも高いため、極力最新のインスタンス利用を推奨

EC2インスタンス追加機能のオプション表記

  • "d" ... 標準インスタンスに対して内蔵ストレージ(インスタンスストア)内蔵
  • "n" ... 標準インスタンスに対してネットワークを強化
  • "a" ... AMDのCPUを搭載
  • "e", "s" ... その他(CPUやメモリ搭載量が異なる)

補足:インスタンスストアとは

  • インスタンスの物理ホストに直接接続されているブロックストレージ
  • 高速IOが可能
  • インスタンスタイプによりサイズとタイプは固定
  • 料金はECの料金に含まれる
  • インスタンスの停止時にデータが削除されるため注意

インスタンスサイズ

  • CPU、メモリ、ネットワークのキャパシティによってインスタンスサイズが分類されている
  • nano micro small medium large xlarge 2xlarge 4xlargeが存在
  • 一段大きくなるとvCPU、メモリのサイズが倍になる
  • ESBとネットワーク帯域幅について"最大"の表記はバースト時の最大性能を表している

その他EC2インスタンスにまつわる補足情報

少し特殊なインスタンスタイプ

  • Amazon EC2 Bare Metal
    • ハイパーバイザーを排し、ハードウェアのダイレクトアクセス機能を提供するシリーズ
    • 仮想化環境上からは利用できない、パフォーマンスカウンターやエミュレーター実行などハードウェア機能を利用したい場合に使用
    • 標準的なインスタンスと性能的な差はない
    • 命名規則は「XX.metal」
  • バースト可能パフォーマンスインスタンス
    • ベースラインのCPUパフォーマンスに加えて、負荷に応じて高いレベルまでCPU性能がバーストする機能を持ったインスタンス
    • バースト性能はCPUクレジットを消費することで得られる
    • クレジットの残量はCloudWatchで確認可能
    • T2とT3で細かい違いがあるため注意
  • 64bit ARMアーキテクチャA1インスタンス
    • AWSカスタムサーバー向けARM Neoverseコアの CPU AWSGravitonプロセッサを搭載
    • 他インスタンスに比べて45%ほどコストが低いため、小さなインスタンスが多数必要なケースなどで使用

インスタンスの起動上限と制限緩和

  • 誤って大量のインスタンスが起動されないように各インスタンスに起動の上限数が決められている
  • 制限緩和のリクエストが申請可能

購入オプション

  • オンデマンド
  • リザーブドインスタンス
  • スポットインスタンス

物理ホストの占有オプション

  • お客様専用の物理サーバーにインスタンスを起動可能とする
  • コンプライアンスやライセンス対応で物理サーバの占有が必要な際に使用する
  • 2つのオプション
    • ハードウェア占有インスタンス
    • DedicatedHost

インスタンス選定のポイント

"M"を基準に、重視するリソースから選択する

  • 汎用インスタンス(Mインスタンスファミリー)のスペックが他のインスタンスファミリーの土台となっているため
  • Mインスタンスから重視したいリソースに合わせて各インスタンスファミリーへの変更を行う

重視すべきリソースがわからない時

  • とりあえずMを選択して使ってみる
  • EC2は作成した後もインスタンスタイプの変更が可能

終わりに

  • インスタンスに関する情報は量が多く把握することが困難であるため、Webなどから最新の情報を得ていきましょう

セッションの感想

私自身も業務で当然インスタンスを立てる機会は多いのですが、基本的にm系のインスタンスを使用する機会がほとんどであるため、この機会に様々なインスタンスタイプの説明を受けることが出来たのは非常に良かったです。

「基本的にはMインスタンスを選択し、そこから要件に合わせてタイプを変えていく」という考え方は頭の片隅に残しておきたいと思いました。

皆さんも、インスタンスタイプをうまく選定して、効率の良いリソース利用を目指していきましょう。

以上、AWS事業本部の大前でした!