EC2インスタンスタイプを選ぶ時の注意点3選

AWS

EC2を立ち上げるときに、どのインスタンスタイプを利用しようか・・・と悩んだことはありませんか?
AWSはサービスの更新も頻繁で年々新しいインスタンスタイプが出てきて嬉しくもあり、また困るところでもあります。今回は今まで自分が経験した中で選ぶ時の考慮したことを3つに絞ってご紹介したいと思います。

バーストするインスタンスを使う

バーストするインスタンスは単価が安いので魅力的になりますが、このタイプはバーストするためにクレジットが必要になります。
具体的にはT4g、T3、T3a、T2などT系インスタンスタイプが該当します。

バーストが発生する量を予測して、溜まったクレジット内で処理をけるのか、完全にコントロールするのって難しいですよね。なので高負荷時にクレジットが切れてバーストできなくても問題ないワークロードで利用するのが良いと思います。

ただ、コストメリットは大きいので、多少止まってもスケールで対応できたり、開発環境向けや、踏み台などほぼ処理しないサーバーなどは利用できると思います。

バーストパフォーマンスインスタンス - Amazon Elastic Compute Cloud
これらのインスタンスは、ベースラインパフォーマンスやワークロードの必要に応じて非常に高いパフォーマンスまでバーストする機能に使用します。

特殊なインスタンスタイプを使う

ざっくり言うと汎用以外のインスタンスタイプでストレージ最適化、高速コンピューティングなどのインスタンスタイプは尖った用途で使うと思いますが、
AWSのリージョン・Az内でインスタンスのリソースがどのぐらいあるかは、サポートケースで問い合わせても答えてくれない所ではあるのですが、用途が限られてくるインスタンス用のハードウェアより利用しやすい汎用系リソースの方を多く提供できるようにしていると予想されます。

感覚値ですが特殊なインスタンスタイプ、かつ大きいサイズになるにつれて、キャパシティ不足で起動しなくなる頻度が増える印象です。
Az障害の発生時は特にリソースの取り合いになるので、より顕著に現れる懸念があります。
なので、こういったインスタンスタイプを利用する場合は障害時の縮退運転も考慮して利用するのをオススメします。

ストレージ最適化インスタンス - Amazon Elastic Compute Cloud
ストレージバウンドアプリケーションの高パフォーマンスを実現するには、ストレージ最適化インスタンスを使用します。
Linux 高速コンピューティングインスタンス - Amazon Elastic Compute Cloud
高速コンピューティングインスタンスは、グラフィックスや汎用的な GPU コンピューティングアプリケーションを対象としています。

そもそもインスタンスタイプに依存させない

そもそも特定のインスタンスタイプでしか起動できない。といった成約はあまりないかとは思いますが、本番運用するようなサーバーでは複数のインスタンスタイプで動かしておく事をオススメします。

仮に本番系C6iを選定した場合、ステージングの一部でC5,C4など同じインスタンスファミリーで動かして検証しておく。と行った事ができていれば常に複数のインスタンスタイプで動く事が保証できます。
そうしておく事で、いざキャパシティ不足で起動しない場合にインスタンスタイプを変更して起動させる選択肢を持つ事ができ、起動できないリスクを減らすことが出来ます。

補足ですがAutoScalingを利用している場合は、起動テンプレートに複数のインスタンスタイプを設定する事ができます。参考リンクを張っているので検討して見てください。

インスタンスタイプに異なる起動テンプレートを指定する - Amazon EC2 Auto Scaling
このセクションでは、インスタンスタイプに別の起動テンプレートを指定する方法について説明します。

最後にaws SUMMITで Amazon EC2 インスタンスタイプの選び方ガイドというセッションがあったので参照頂ければと思います。
参考:
https://www.youtube.com/watch?v=Q1LUX8WMjHY
https://pages.awscloud.com/rs/112-TZM-766/images/C2-07.pdf

コメント

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