EC2を立ち上げるときに、どのインスタンスタイプを利用しようか・・・と悩んだことはありませんか?
AWSはサービスの更新も頻繁で年々新しいインスタンスタイプが出てきて嬉しくもあり、また困るところでもあります。今回は今まで自分が経験した中で選ぶ時の考慮したことを3つに絞ってご紹介したいと思います。
バーストするインスタンスを使う
バーストするインスタンスは単価が安いので魅力的になりますが、このタイプはバーストするためにクレジットが必要になります。
具体的にはT4g、T3、T3a、T2などT系インスタンスタイプが該当します。
バーストが発生する量を予測して、溜まったクレジット内で処理をけるのか、完全にコントロールするのって難しいですよね。なので高負荷時にクレジットが切れてバーストできなくても問題ないワークロードで利用するのが良いと思います。
ただ、コストメリットは大きいので、多少止まってもスケールで対応できたり、開発環境向けや、踏み台などほぼ処理しないサーバーなどは利用できると思います。
特殊なインスタンスタイプを使う
ざっくり言うと汎用以外のインスタンスタイプでストレージ最適化、高速コンピューティングなどのインスタンスタイプは尖った用途で使うと思いますが、
AWSのリージョン・Az内でインスタンスのリソースがどのぐらいあるかは、サポートケースで問い合わせても答えてくれない所ではあるのですが、用途が限られてくるインスタンス用のハードウェアより利用しやすい汎用系リソースの方を多く提供できるようにしていると予想されます。
感覚値ですが特殊なインスタンスタイプ、かつ大きいサイズになるにつれて、キャパシティ不足で起動しなくなる頻度が増える印象です。
Az障害の発生時は特にリソースの取り合いになるので、より顕著に現れる懸念があります。
なので、こういったインスタンスタイプを利用する場合は障害時の縮退運転も考慮して利用するのをオススメします。
そもそもインスタンスタイプに依存させない
そもそも特定のインスタンスタイプでしか起動できない。といった成約はあまりないかとは思いますが、本番運用するようなサーバーでは複数のインスタンスタイプで動かしておく事をオススメします。
仮に本番系C6iを選定した場合、ステージングの一部でC5,C4など同じインスタンスファミリーで動かして検証しておく。と行った事ができていれば常に複数のインスタンスタイプで動く事が保証できます。
そうしておく事で、いざキャパシティ不足で起動しない場合にインスタンスタイプを変更して起動させる選択肢を持つ事ができ、起動できないリスクを減らすことが出来ます。
補足ですがAutoScalingを利用している場合は、起動テンプレートに複数のインスタンスタイプを設定する事ができます。参考リンクを張っているので検討して見てください。
最後にaws SUMMITで Amazon EC2 インスタンスタイプの選び方ガイドというセッションがあったので参照頂ければと思います。
参考:
https://www.youtube.com/watch?v=Q1LUX8WMjHY
https://pages.awscloud.com/rs/112-TZM-766/images/C2-07.pdf
コメント