メモリーやCPUだけじゃない!? AWSインスタンスを選ぶ際に気をつけたいこと
2017年7月18日(火)石田 知也(アイレット cloudpack事業部ソリューションアーキテクト)
オンプレミスからAWSクラウドへとリソースを移行する際、まず必要になるステップが『インスタンス選定』だ。本連載の読者であれば「インスタンスって何?」という方はほとんどいないだろうが、今回はあらためて自社に最適なAWSインスタンスの選び方について掘り下げてみたい。
インスタンスを構成する要素
あらためて言うまでもないが、インスタンスとは「Amazon Elastic Compute Cloud(以下、Amazon EC2)」の機能として提供される仮想コンピューティング環境である。CPU、メモリー、ストレージ、ネットワークキャパシティなど、いわゆる“サーバー環境”を構成するのに必要な基本リソースが含まれている。そして、物理サーバーが各リソースのスペックを選べるように、インスタンスもいくつかの「インスタンスタイプ」から選択可能だ。
Amazon EC2のインスタンスタイプは「m4.xlarge」のように表記される。この例で言えば、「m4」はインスタンスファミリー("4"は世代)、そして「xlarge」はインスタンスのサイズをそれぞれ示している。
インスタンスファミリーとは、インスタンスタイプを用途別に分類したもので、グループとしては大きく「汎用」「コンピューティング最適化」「メモリー最適化」「Accelerated Computing」「ストレージ最適化」に分かれる。本連載のテーマであるオンプレミスからの移行プロジェクトで多く採用されているのは、仮想コア(vCPU)とメモリーの割合のバランスが取れていて一般的な用途に向いている「汎用」と、メモリーに対してvCPUの割合が高く、Webアプリケーションサーバーや分散処理、HPCなどの用途に向いている「コンピューティング最適化」の2つのグループなので、今回はこれらに絞って説明したい。
現在、汎用およびコンピューティング最適化のそれぞれのグループに含まれる現行世代のインスタンスファミリーとその特徴は以下となる。
汎用
- T2 ベースラインパフォーマンスを超えてバーストできるCPUパフォーマンスを提供する。ベースラインパフォーマンスとバースト機能はCPUクレジットによって管理される。アイドル状態のときにCPUクレジットを蓄積し、バーストするときにCPUクレジットを消費するしくみ。Webサーバーやデータベースなど、常時ではなくイレギュラーにバーストするタイプのワークロードに向いている
- M4 もっとも各リソースのバランスが良い、最新世代の汎用インスタンス。デフォルトでEBS最適化。多くのアプリケーションに向いている
- M3 M4インスタンスファミリーの1世代前のインスタンスファミリー。M4と同様に各リソースのバランスは良い
コンピューティング最適化
- C4 Amazon EC2の中でもっとも高い性能を誇るプロセッサが提供されるインスタンスファミリー。デフォルトでEBSが最適化されており、拡張ネットワーキングとクラスタをサポート。高パフォーマンスが求められるソーシャルゲーム、ビデオエンコーディング、バッチ処理、HPC、アドテクなどに向いている
- C3 C4インスタンスファミリーの1世代前のインスタンスファミリー。SSDベースのインスタンスストレージが利用可能で拡張ネットワーキングとクラスタをサポート
なお、インスタンスファミリーの世代の数字は、大きくなるほど新しい世代となる。当然だが新世代ほどスペックが良く、コストパフォーマンスが高い場合がほとんどなので、可能であればできるだけ最新世代を選びたいところだ。もちろん旧世代から新世代への移行(M3→M4、C3→C4など)も可能ではあるが、その場合はいったんインスタンスを停止する必要があることは覚えておきたい。
インスタンスタイプのもうひとつの構成要素である「インスタンスのサイズ」についても触れておこう。ひとつのインスタンスファミリーには、サイズの異なる複数のスペックモデルが含まれている。もっとも汎用的なM4インスタンスファミリーの場合、L(large)、XL(xlarge)、2XL(2xlarge)、4XL(4xlarge)、10XL(10xlarage)、16XL(16xlarge)の6種類のサイズが用意されており、XLはLの2倍、2XLはXLの2倍(Lの4倍)…、といった具合で基本的にvCPUやメモリーなどのスペックが倍になっていくしくみだ。サイズと同様に価格もほぼ倍になっていくと計算して良いだろう。
インスタンス選びのポイントは“負荷の特性”
オンプレミスからAWSクラウドにインフラを移行する場合、標準的な環境であれば汎用性の高いM系(M3/M4)、バーストしやすいWebサービスを提供しているならT系(T2)を選ぶのが一般的な構成だと言える。T系を採用する場合でも、メインのシステムはM系で運用し、一部のバーストしやすいサービスのみT系で構築、というケースが多い。さらにHPCや分散処理などパフォーマンスを求められる重めのワークロードならC系を併用、といったところだろうか。
だが、どのインスタンスタイプを選ぶにせよ、「オンプレミスとほぼ同じ構成をAWSクラウド上に構築する」という考え方は捨てるべきである。AWSクラウド上にインフラを構築するのであれば、自社のビジネスにより最適な環境を作り上げることを目指さなくては意味がない。
会員登録(無料)が必要です
- AWS障害対策~予防から運用上の注意まで(2017/07/31)
- 見るべきポイントはレイテンシー!? クラウドのPoCを考える(2017/07/24)
- 移行前のアセスメント ~ 既存データセンターとAWSのセキュリティレベルを比較する(2017/07/10)
- 「AWSに移行する」が意味することの“本質”(2017/07/03)