はじめに
業務でAWS運用し始めて3年以上が経過しました。
その中で、実務を通すことで得られた経験がたくさんあります。
例えば課題のひとつにサーバー費用の見直しがありました。
システムの信頼性を維持しながらサーバー費用を抑えるためにはどうしたら良いか、今まで得られた知見を記事にできればと思います。
世代とアーキテクチャを見直す
AWSの中でも最も基本的な機能であるEC2について触れていきます。
EC2インスタンスには大きく分けて4つの契約形態があります。
・オンデマンド
・スポット
・リザーブド
・セービング
それぞれの特徴については既にご存知だと思いますので、特に説明はしません。
今回はその中でもオンデマンドインスタンスの料金特徴に触れていきます。
インスタンスタイプ | アーキテクチャ | vCPU | Memory | 月額費用 |
c3.xlarge | Intel | 4 | 7.5GB | 20,200円 |
c4.xlarge | Intel | 4 | 7.5GB | 19,960円 | c5.xlarge | Intel | 4 | 8GB | 16,950円 | c5a.xlarge | AMD | 4 | 8GB | 15,200円 | c6g.xlarge | ARM | 4 | 8GB | 13,560円 |
この表はコンピューティング最適化インスタンスであるc系を東京リージョンで1ヶ月間稼働させた時の料金比較表です。
同じインスタンスファミリーでも世代(横の数字)が異なると性能がアップし、価格も安くなります。
そのため、古い世代で稼働しているオンデマンドインスタンスがあったら、新世代へ移行すると良いです。
さて、EC2インスタンスにはCPUアーキテクチャが複数用意されています。
基本的なIntelのものよりもAMDの方がコストパフォーマンスが良いです。
また、どちらも実際のCPU処理能力には差異がありません。
ならば全部AMDでいいじゃんって思うかもしれませんが、AMDインスタンスは特定のアベイラビリティゾーンではサポートされていなかったり、インスタンスファミリーが揃っていなかったりします。
さらに安いARMがあります。
ARMはシングルスレッド処理に弱く、並列処理に関してはIntelやAMDよりもパフォーマンスが高い特徴があります。
ただしARMは本来はスマートデバイス向けのCPUですので、ソフトウェア側が非対応なケースが多々あります。
DockerなどはARMでもサポートされているので、コンテナ技術を活用する場合には性能を発揮しやすいですが、用途によってはソフトウェアが起動しないケースがあるのは覚えておくと良いかもしれません。
スポットインスタンスを活用する
先ほどオンデマンドインスタンスでは新しい世代のものほど価格が安くなると説明したのですが、需要に応じて価格が変動するスポットインスタンスでは逆のことが起こります。
インスタンスタイプ | アーキテクチャ | 月額費用 |
c3.xlarge | Intel | 4,780円 |
c4.xlarge | Intel | 5,020円 | c5.xlarge | Intel | 5,260円 | c5a.xlarge | AMD | 5,260円 | c6g.xlarge | ARM | 5,540円 |
先ほどと同じインスタンスタイプでの料金比較をしてみます。
古いインスタンスの方が価格が安いことがわかります。
オンデマンド価格では非常に安かったARMタイプのインスタンスでしたが、スポットインスタンスでは一番高くなっていますね。
スポットインスタンスで古いインスタンスタイプを使うことで安くインスタンスを利用することができます。
また、古いインスタンスタイプは人気が少ないため、スポットインスタンスがシャットダウンされてしまうリスクが最新のものよりも低くなる特徴があります。
AutoScalingグループで起動するときは、古いインスタンスタイプを含めた複数のインスタンスを指定して、複数アベイラビリティゾーンに展開することでより冗長的に利用できます。
ECSで利用する場合にはスポットインスタンスのドレイニングを有効にしておくことで、サービスコンテナの数を担保できるのでほぼノーリスクで利用することができます。
個人的な検証や捨て環境として立てる時もスポットインスタンスを活用することをおすすめします。
EBSはGP3を使う
EBSの汎用SSDでは未だにデフォルト設定がGP2になっています。
しかし最近登場したGP3はより高パフォーマンスでありながら、2割程度安く利用できる特徴があります。
GP2 | GP3 | |
容量 | 1GB~16TB | 1GB~16TB |
ストレージ価格 | $0.12/month | $0.096/month |
IOPS | 100~16,000 ※EBSストレージ1GBにつき3IOPS |
3000~16,000 ※3,000IOPSまで無料でそれ以上を利用する場合には$0.006 |
スループット | ストレージ容量に応じて変動 ※最大で250MB/s |
125MB/s~1,000MB/s ※125MB/sを超える場合には1MB/sにつき$0.048 |
値段とパフォーマンスの比較表がこちらになります。
多くのケースではGP3を利用するのが良さそうですね。
おわりに
本当はスポットインスタンスを活用するための設定やらノウハウなどを深ぼったり、リザーブドインスタンスやセービングプランについても触れていきたかったのですが記事の文字数が多くなりそうなので一旦区切ります。
EC2インスタンスについては適切なインスタンスタイプを選択したり、スポットインスタンスを活用することで大幅にコストを削減することができます。
新しい世代のインスタンスが登場した時には、きちんと検証しつつ乗り換えていくのが良いですね。
コメントを残す