[検証!マイグレーション先としてのAWS]

メモリーやCPUだけじゃない!? AWSインスタンスを選ぶ際に気をつけたいこと

【第3回】

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クラウド上にインフラを構築するのであれば、自社のビジネスにより最適な環境を作り上げることを目指さなくては意味がない。

 では、インスタンスを選ぶ際には何に注意すべきなのか。ここでは最も欠かせないポイントとして、自社における“負荷の特性”を正しく把握することを強調しておきたい。クラウドのメリットのひとつとして「必要なときに必要なリソースが必要な量だけ手に入る=キャパシティプランニングが必要なくなる」ということがよく言われるが、これは自社の負荷の特性を理解し、最適なインスタンスタイプを選択している場合に限って実現するものである。予測できないピークが急に訪れたときに"必要なリソースを必要な量だけ"調達するには、最低でも自社の負荷のタイプを事前に見極めておかなくてはいけない。

 では“自社の負荷のタイプ”とは何か。誤解を怖れずに言えば、それはビジネスの現状と同義ではないだろうか。トラフィックのオンとオフがはっきりしていれば、それはビジネスのオンとオフも明確な状況にあり、M&Aなどで会社が右肩上がりで急成長しているモードにあれば、トラフィックも同様に伸びているだろう。また、「夜間のバッチ処理」「ライブチケットの販売開始」「テレビCMの放送」といった予測可能なピークをビジネスに織り込んでいる場合もあるかもしれない。

 もちろん、ある日突然、ソーシャルネットワークで自社のサービスが取り上げられ、まったく予測できないピークを迎えてしまった、というケースもあるかもしれないが、そういう特殊な場合を除き、自社のビジネスのステータスを正しく把握できていれば、トラフィックのおおまかな全体像を描くことができ、最適なインスタンスタイプ、必要なインスタンスタイプの選択につながるのだ。クラウドがビジネスに直結しやすいのはこういうところにも理由がある。

 もうひとつ、インスタンスタイプを選ぶ際に気をつけたいポイントは「ストレージとネットワーク」である。言うまでもなく、Amazon EC2はコンピューティングリソースを仮想的に提供するサービスだが、各インスタンスのCPUパワーとメモリーのみに注目してしまい、ストレージやネットワークのバランスを考慮しないケースが少なくない。CPUを消費していなくても、バックグラウンド処理でEC2とEBS間の帯域を使い切ってしまい、ボトルネックになってしまうことがある。特にデフォルトでEBSが最適化されているM4やC4などのインスタンスファミリーでは注意したいポイントだ。帯域幅がどこまで決まっているのか、必ずチェックしておきたい。

情報チェック、リザーブドインスタンス、VMware - インスタンス選びのTips

 AWSクラウドへの移行はコスト削減の手段としてアピールされることが多いが、インスタンス選びを間違えてしまうと、「思ったより安くならない、むしろ割高になっている」という事態に陥りかねない。そうならないために、前述のように「自社の負荷の特性を把握する」「CPUやメモリーだけでなくストレージ/ネットワークにも留意する」といったポイントを押さえてインスタンス選びに臨んでいただきたいのだが、以下、コストとパフォーマンスの最適化をはかるうえで覚えておきたいtipsを追加で挙げておく。

リソースの利用状況を定期的にチェック
ITシステムのコスト削減というと、とかくオオゴトに捉えてしまいがちだが、クラウドであれば大きく構える必要はない。いつでも必要なリソースを、数クリックで調達・破棄できる特長を積極的に活用していこう。CloudWatchを用いてリソースの利用状況を定期的にチェックし、スペックダウンが可能な場合はインスタンスサイズを下げよう。利用状況が低いサーバー群は機能を集約するなどして、管理台数を減らしてしまえばいい。設計時の想定は、運用して時が経つにつれて差が出てきて当たり前だ。定期的なチェックで最適化を進めることで、コスト削減とより安定的なシステム運用を両立することが可能になる。

AWSのインスンタンスアップデートを定期的にチェック
「AWS re:Invent」「AWS Summit」といった大きなイベントやカンファレンスのタイミングだけに限らないが、AWSは年に何回か新しいインスタンスファミリーを発表し、大幅な値下げを含む価格の改定を行う。一度選んだインスタンスをずっと使い続けるのではなく、新しいインスタンスファミリーや価格体系を定期的にチェックし、必要に応じてインスタンスの乗り換えを図ることで、コストパフォーマンスの最適化を実現できる。逆に言えば、このチェックを怠るようであれば、AWSクラウドを使うメリットは激減することになる。

リザーブドインスタンスの検討
Amazon EC2のリザーブドインスタンスは、1年もしくは3年といった長期間の利用をコミットすることで、オンデマンドでインスタンスを利用するよりも最大で75%もの割引を適用されるというものだ。うまく活用すると非常にコストメリットが高いが、購入をキャンセルできないなどの注意点がある。

VMware on AWS
日本国内でのサービスローンチは2018年になる見込みだが、現状のオンプレミス環境をどうしてもそのままAWS上に移行したい場合は、VMwareから提供される「VMware on AWS」を検討するのもひとつの手だ。VMwareの現行ユーザであれば、AWSのリソースをベアメタル環境としてほぼ同じように利用することができる。2017年後半には海外ユーザの先行事例も出てくると見られるので、興味があれば継続して情報のチェックをしておきたい。
 

バックナンバー
検証!マイグレーション先としてのAWS一覧へ
関連記事

メモリーやCPUだけじゃない!? AWSインスタンスを選ぶ際に気をつけたいことオンプレミスからAWSクラウドへとリソースを移行する際、まず必要になるステップが『インスタンス選定』だ。本連載の読者であれば「インスタンスって何?」という方はほとんどいないだろうが、今回はあらためて自社に最適なAWSインスタンスの選び方について掘り下げてみたい。

PAGE TOP