AWSサービス EC2を理解する~インスタンスタイプとは~

AWSのインスタンスタイプは、EC2(Elastic Compute Cloud)サービスで提供される仮想サーバーのスペックを定義するものです。

本記事では、AWSサービスの1つであるインスタンスタイプについて、その概要と設定方法を紹介します。

EC2の概要については下記紹介していますので、ご参考ください。

インスタンスタイプとは

AWSのインスタンスタイプは、EC2(Elastic Compute Cloud)サービスで提供される仮想サーバーのスペックを定義するものです。

インスタンスタイプは、CPU、メモリ、ストレージ、ネットワーク性能などの組み合わせによって構成されており、様々なワークロードに対応できるよう設計されています。

インスタンスタイプの表記方法

インスタンスタイプの表記は以下の要素で構成されています。

  • インスタンスファミリー
    • 最初のアルファベットで表されます(例: m, c, r など)
    • 用途や性能特性を示します(汎用、コンピューティング最適化、メモリ最適化など)
  • 世代
    • ファミリーの後の数字で表されます(例: 5, 6, 7 など)
    • 数字が大きいほど新しい世代を示します
  • 追加機能
    • 世代の後に付く追加のアルファベットで表されます
    • 例:
      • g: AWS Gravitonプロセッサ搭載
      • d: インスタンスストア(内蔵ストレージ)搭載
      • n: ネットワーク性能強化
      • a: AMDプロセッサ搭載
  • インスタンスサイズ
    • 最後の部分で、nano、micro、small、medium、large、xlarge、2xlarge などで表されます
    • サイズが大きくなるほど、CPU、メモリ、ストレージなどのリソースが増加します

例えば、「m5dn.xlarge」の場合:

  • m: 汎用インスタンスファミリー
  • 5: 第5世代
  • d: インスタンスストア搭載
  • n: ネットワーク性能強化
  • xlarge: インスタンスサイズ

この表記方法を理解することで、インスタンスタイプの特性や性能をある程度把握することができます

インスタンスタイプの構成要素

インスタンスタイプの以下の4つの要素それぞれについて、詳しく紹介します。

  • インスタンスファミリー
  • インスタンス世代
  • 追加機能
  • インスタンスサイズ

インスタンスファミリー

インスタンスファミリーは、AWSのEC2サービスにおいて特定の用途や性能特性に最適化されたインスタンスのグループを表します。
各ファミリーは、特定のワークロードやアプリケーションのニーズに合わせて設計されています。

汎用インスタンス

汎用インスタンスは、コンピューティング、メモリ、ネットワークリソースのバランスが取れており、幅広いワークロードに適しています。

  • Mシリーズ
    • M7g、M6i、M5などが含まれます。
    • バランスの取れたリソース配分で、多様なアプリケーションに適しています。
    • 例えば、M7gはAWS Graviton3プロセッサを使用し、最高の料金パフォーマンスを提供します
  • Tシリーズ
    • T4g、T3、T2などが含まれます。
    • バースト可能な性能を持ち、CPU使用率が変動するワークロードに適しています。
    • コスト効率が高く、小規模なウェブサーバーやテスト環境に適しています。

コンピューティング最適化インスタンス

CPUパフォーマンスを重視したインスタンスファミリーです。

  • Cシリーズ
    • C7g、C6i、C5などが含まれます。
    • 高性能コンピューティングやバッチ処理、機械学習の推論などに適しています。
    • メモリに対するCPUの比率が高く、CPU集約型のワークロードに最適です。

メモリ最適化インスタンス

大容量のメモリを必要とするワークロードに適したインスタンスファミリーです。

  • Rシリーズ
    • R7g、R6i、R5などが含まれます。
    • 大規模なインメモリデータベース、リアルタイムのビッグデータ分析などに適しています。
  • Xシリーズ
    • X2gd、X2idn、X1eなどが含まれます。
    • 極めて大容量のメモリを必要とするアプリケーション、SAP HANAなどの大規模インメモリデータベースに適しています

ストレージ最適化インスタンス

高速なローカルストレージアクセスを必要とするワークロードに適したインスタンスファミリーです。

  • Iシリーズ:
    • I4g、I3、I3enなどが含まれます。
    • 高いI/O性能が要求されるNoSQLデータベースやデータウェアハウスに適しています。
  • Dシリーズ:
    • D3、D2などが含まれます。
    • 大容量のローカルストレージを提供し、分散ファイルシステムやMapReduceワークロードに適しています

高速コンピューティングインスタンス

GPUやFPGAを搭載し、特殊な計算処理に適したインスタンスファミリーです。

  • Pシリーズ:
    • P4、P3などが含まれます。
    • GPUを搭載し、機械学習のトレーニングや高性能コンピューティングに適しています。
  • Gシリーズ:
    • G5、G4dnなどが含まれます。
    • グラフィックス処理や動画エンコーディングに適しています。

インスタンスファミリーの選択は、アプリケーションの要件、パフォーマンス、コスト効率を考慮して行う必要があります。例えば、以下のような情報があります。

  • ウェブアプリケーションやマイクロサービスには汎用インスタンス(MシリーズやTシリーズ)が適しています。
  • 高性能な数値計算やバッチ処理にはコンピューティング最適化インスタンス(Cシリーズ)が適しています。
  • 大規模なインメモリデータベースにはメモリ最適化インスタンス(RシリーズやXシリーズ)が適しています。
  • 高I/Oを必要とするデータベースやビッグデータ処理にはストレージ最適化インスタンス(IシリーズやDシリーズ)が適しています。

各インスタンスファミリー内でも、世代や追加機能によって性能や機能が異なるため、詳細な要件に基づいて適切なインスタンスタイプを選択することが重要です。

インスタンス世代

インスタンス世代は、AWSのEC2インスタンスタイプの進化を表す重要な要素です。
新しい世代が登場するたびに、性能や機能が向上し、より効率的なリソース利用が可能になります。

インスタンス世代の特徴

  • 命名規則
    インスタンス世代は、インスタンスタイプ名の中で数字で表されます。例えば、「m5.large」の「5」が世代を示します。
  • 進化の方向性
    世代が進むにつれて、数字は大きくなります。例えば、M4からM5、M6へと進化します。
  • 性能向上
    新しい世代ほど、同じインスタンスファミリー内でより高い性能を提供します。例えば、M5はM4と比較して、全体的に約10%のパフォーマンス向上を実現しています。
  • コストパフォーマンス
    新世代のインスタンスは、通常、より良いコストパフォーマンスを提供します。同じワークロードをより低コストで実行できる可能性があります。

主要なインスタンス世代の変遷

  • 第1世代〜第3世代
    初期のEC2インスタンス。現在はほとんど使用されていません。
  • 第4世代
    例:M4、C4、R4
    • インテルXeon E5-2686 v4プロセッサを使用
    • EBS最適化がデフォルトで有効
  • 第5世代
    例:M5、C5、R5
    • インテルXeon Platinum 8000シリーズプロセッサを使用
    • Nitroシステム(AWSの仮想化技術)の導入
    • 最大25 Gbpsのネットワーク帯域幅
  • 第6世代
    例:M6g、C6g、R6g
    • AWS Graviton2プロセッサ(ARMベース)の導入
    • 最大40%のコストパフォーマンス向上(第5世代比)
  • 第7世代
    例:M7g、C7g、R7g
    • AWS Graviton3プロセッサの導入
    • DDR5メモリの採用により、DDR4比で50%の帯域幅向上
    • M6g比で最大20%のネットワーク帯域幅強化

世代間の主な改善点

  • プロセッサ性能
    新世代では、より高性能なCPUが採用され、クロック速度や命令セットが改善されます。
  • メモリ技術
    DDR3からDDR4、そしてDDR5へと進化し、メモリ帯域幅と容量が向上しています。
  • ネットワーク性能
    世代が進むにつれて、ネットワーク帯域幅が向上し、より高速なデータ転送が可能になっています。
  • ストレージ性能
    EBS最適化やNVMeストレージの採用により、ストレージのI/O性能が向上しています。
  • 仮想化技術
    AWS Nitroシステムの導入により、仮想化のオーバーヘッドが減少し、ベアメタルに近い性能を実現しています。
  • 特殊機能
    新世代では、機械学習向けの拡張命令セットや、暗号化処理の高速化など、特定のワークロードに最適化された機能が追加されています。

インスタンス世代の選択は、アプリケーションの要件、コスト、パフォーマンスのバランスを考慮して行う必要があります。

通常、新しい世代を選択することで、より良い性能とコスト効率を得られますが、特定のレガシーアプリケーションでは、古い世代との互換性を考慮する必要がある場合もあります。

追加機能

AWSのEC2インスタンスタイプにおける追加機能は、インスタンスの特性や性能を強化するための重要な要素です。

これらの追加機能により、特定のワークロードやユースケースに最適化されたインスタンスを選択できます。以下に、主な追加機能とその詳細を説明します。

主な追加機能

  • a – AMD プロセッサ搭載
    • AMD EPYC プロセッサを使用しています。
    • 一般的に、同等のIntelプロセッサ搭載インスタンスよりも低コストです。
    • 例: m5a、r5a、c5a
  • g – AWS Graviton プロセッサ搭載
    • AWSが独自に開発したARMベースのプロセッサを使用しています。
    • 優れた価格性能比を提供し、特定のワークロードで高い効率を発揮します。
    • 例: m6g、c6g、r6g
  • i – Intel プロセッサ搭載
    • 最新のIntel Xeonプロセッサを使用しています。
    • 広範なソフトウェアとの互換性があります。
    • 例: m6i、c6i、r6i
  • n – ネットワーク強化
    • 高帯域幅のネットワーク機能を提供します。
    • 100 Gbps以上のネットワーク性能を持つインスタンスもあります。
    • 例: m5n、r5n、c5n
  • b – EBS最適化
    • Amazon EBS (Elastic Block Store) との間で高速なデータ転送が可能です。
    • ストレージI/O性能が向上します。
    • 例: m5b、r5b
  • d – インスタンスストア搭載
    • 高速な一時ストレージを提供するNVMeベースのSSDを搭載しています。
    • データベースや高I/Oアプリケーションに適しています。
    • 例: m5d、c5d、r5d
  • z – 高周波数プロセッサ
    • 最大4.5 GHzの高周波数で動作するプロセッサを搭載しています。
    • シングルスレッド性能が重要なアプリケーションに適しています。
    • 例: z1d
  • e – 追加メモリ
    • 標準インスタンスよりも多くのメモリを搭載しています。
    • メモリ集約型アプリケーションに適しています。
    • 例: r5e
  • hpc – 高性能コンピューティング最適化
    • 高性能なプロセッサと高速なネットワークを組み合わせています。
    • 科学計算や金融モデリングなどのHPCワークロードに適しています。
    • 例: hpc6a

追加機能の組み合わせ

複数の追加機能を組み合わせたインスタンスタイプも存在します。
例えば、以下の通りです。

  • r6gd: AWS Gravitonプロセッサ搭載(g)かつインスタンスストア搭載(d)のメモリ最適化インスタンス
  • m5zn: 高周波数プロセッサ(z)かつネットワーク強化(n)の汎用インスタンス

追加機能の選択

追加機能の選択は、以下の要因を考慮して行います。

  • ワークロードの特性: CPU集約型、メモリ集約型、I/O集約型など
  • コスト効率: 例えば、GravitonプロセッサはコスT効率が高い場合が多い
  • アプリケーションの互換性: 特にARMベースのGravitonプロセッサの場合
  • ネットワーク要件: 高帯域幅が必要な場合はn機能を検討
  • ストレージ性能: 高I/Oが必要な場合はdやb機能を検討

追加機能を適切に選択することで、ワークロードに最適化されたインスタンスを構築し、パフォーマンスとコスト効率を向上させることができます。

また、AWSは定期的に新しい追加機能や改良版を導入しているため、最新の情報を確認することが重要です。

インスタンスサイズ

インスタンスサイズは、EC2インスタンスのリソース容量を定義する重要な要素です。
以下にインスタンスサイズの詳細な特徴と考慮点を説明します。

インスタンスサイズの基本構成

  • 命名規則
    • nano、micro、small、medium、large、xlarge、2xlarge、4xlarge、8xlarge、16xlarge、32xlarge など
    • 数字が大きくなるほど、リソース量が増加します。
  • リソースの比例増加
    • 多くの場合、サイズが2倍になると主要リソース(CPU、メモリ、ネットワーク性能)も概ね2倍になります。
    • 例: m5.xlarge は m5.large の2倍のリソースを持ちます。

主要リソースの変化

  • vCPU (仮想CPU)
    • サイズが大きくなるにつれて、vCPU数が増加します。
    • 例: m5.large (2 vCPU) → m5.xlarge (4 vCPU) → m5.2xlarge (8 vCPU)
  • メモリ
    • vCPUと同様に、サイズに比例して増加します。
    • 例: m5.large (8 GiB) → m5.xlarge (16 GiB) → m5.2xlarge (32 GiB)
  • ネットワーク性能
    • 多くの場合、サイズが大きくなるとネットワーク帯域幅も向上します。
    • 例: m5.large (最大10 Gbps) → m5.xlarge (最大10 Gbps) → m5.2xlarge (最大10 Gbps) → m5.4xlarge (最大10 Gbps) → m5.8xlarge (10 Gbps)
  • EBS帯域幅
    • 一般的に、サイズが大きくなるとEBS帯域幅も向上します。
    • 例: m5.large (最大3.5 Gbps) → m5.xlarge (最大3.5 Gbps) → m5.2xlarge (最大3.5 Gbps) → m5.4xlarge (3.5 Gbps)

インスタンスサイズの選択における考慮点

  • ワークロードの要件
    • CPU集約型、メモリ集約型、I/O集約型など、アプリケーションの特性に合わせて選択します。
  • スケーラビリティ
    • 将来的な成長を見込んで、適切なサイズを選択します。
    • 垂直スケーリング(より大きなサイズへの移行)と水平スケーリング(複数の小さなインスタンスの使用)のバランスを考慮します。
  • コスト効率
    • 一般的に、大きいサイズのインスタンスほどリソース単位あたりのコストが低くなります。
    • ただし、必要以上に大きなサイズを選択すると無駄が生じる可能性があります。
  • バースト可能パフォーマンス
    • T系列などの一部のインスタンスタイプでは、小さいサイズでもCPUクレジットを使用してバースト性能を発揮できます。
  • ライセンスコスト
    • ソフトウェアライセンスがCPUコア数に基づいている場合、適切なサイズ選択でライセンスコストを最適化できます。
  • メモリとCPUの比率
    • アプリケーションの要件に応じて、適切なメモリとCPUの比率を持つサイズを選択します。
  • ネットワーク要件
    • 高いネットワークスループットが必要な場合、それに見合ったサイズを選択します。

インスタンスサイズの適切な選択は、パフォーマンスとコストの最適化に直結します。定期的にリソース使用状況をモニタリングし、必要に応じてサイズを調整することが重要です

まとめ

今回は、AWSサービスの1つであるインスタンスタイプについて、その概要と設定方法を紹介しました。

ご参考になれば、幸いです。

以上になります。ありがとうございました。

参考

https://business.ntt-east.co.jp/content/cloudsolution/column-21.html
https://biz.nuro.jp/column/aws-mama-022/
https://aws.amazon.com/jp/ec2/instance-types/
https://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/instance-types.html
https://blog.serverworks.co.jp/ec2-instance-types

コメント

タイトルとURLをコピーしました