テストでは、PostgreSQLと古き良きpgbenchを使用しました。 仮想マシンだけでなく、管理されたデータベースサービスのパフォーマンスをテストおよび比較することは興味深いため、DBMSの選択が決まりました。
免責事項:著者は、プロの管理者でも、DBAでも、クラウドソリューションのカスタマイズの専門家でもありません。 テストは純粋に個人的な目的のために実施されたものであり、客観的なふりをするものではありません。したがって、「現状のまま」の記事をご覧ください。 内部の詳細な分析はありませんが、ソリューションのパフォーマンスとコストの観点から、Selectel VPC(異なるドライブ上)およびさまざまなAWS EC2 / RDS構成との明示的な比較が行われます。 おそらくこれは誰かの時間を少し節約するでしょう。
詳細は、Yandex.Cloud対Selectel VPC対AWSをご覧ください。
Yandex.Cloudサービスの構造
Yandex.Cloudリソースの構造は、このようなサービスに共通です:
リソースクォータ(グローバル)
カタログ(プロジェクト)
-Compute Cloud(仮想マシンおよびドライブ)
-管理されたデータベース(データベースクラスター、Clickhouse、MongoDB、PostgreSQLデータベースを実行できます)
-オブジェクトストレージ(クラウドストレージ)
-仮想プライベートクラウド(クラウドネットワーク)
-API
特にドキュメントはパブリックドメインであり、そこから多くのことが明らかであるため、インターフェイスを詳細に説明することには意味がありません。
構成を比較する
次のリソースは、テストのすべての仮想インスタンスに割り当てられました。
vCPU :8コア
RAM :32 Gb
ディスク :SSD(特定のクラス-テストインスタンスを参照)。
OS :CentOS 7最小
マネージドデータベースサービスの場合、最も近い可能な構成が要求されました(YandexとAWSには8CPU / 32RAMの構成があります)。
テスト済みのPostgresのバージョンは10.5です。
postgresql10-server
パッケージから仮想マシンに
postgresql10-server
れ、管理対象クラスターではこのバージョンがリストから選択されました。
テスト方法
-
postgresql10-server
およびpostgresql10
パッケージがクリーンなOSにインストールされた - ベンチマークのデータベースは、パラメーターで初期化されました:
pgbench -i -s 100
- 次のパラメーターを使用して、ベンチマークを3回実行しました
pgbench -c 10 -T 60
-
pgbench
ユーティリティは、DBMSがインストールされたのと同じ仮想マシンで実行され、管理対象クラスターの場合は同じクラウド内の仮想マシンで実行されました。 - 3つの中で最高の結果が結果テーブルに入力されました。
試験結果
エクスプレステストのすべての結果を1つの表(下のグラフ)に示します。
資源 | Tps | 価格 |
---|---|---|
AWS EC2 m5.2xlarge | 2822 | 343 |
AWS EC2 m5d.2xlarge | 2752 | 403 |
AWS EC2 t3.2xlarge | 2636 | 290 |
AWS EC2 t2.2xlarge | 2259 | 320 |
AWS EC2 m4.2xlarge | 2187 | 358 |
Selectel VPC (高速SSD) | 1524 | 186 |
Yandexクラウドコンピューティングインスタンス | 1309 | 155 |
Yandex Cloud Managed Database | 1226 | 234 |
AWS RDS db.m4.2xlarge(3000 IOPS) | 1200 | 1007 |
AWS RDS db.t2.2xlarge(3000 IOPS) | 1127 | 862 |
AWS RDS db.t2.2xlarge(1000 IOPS) | 970 | 625 |
AWS RDS db.m4.2xlarge(1000 IOPS) | 885 | 769 |
Selectel VPC(ユニバーサルSSD) | 247 | 164 |
[ 価格 ]列には、100 GBのストレージを含む、テストされたソリューションの1か月あたりの推定価格がUSDで表示されます。 時間単位で課金されるAmazon RDSの場合、1時間のコストに720を掛けました。計算の価格は次のソースから取得されました。
-Yandex Cloud Managed Database用
-Yandex Cloud Computeインスタンス用
-Selectel VPCインスタンスの場合
グラフ形式のテスト結果:

結論
一般に、結論は非常に明白です。DBMSをホストする目的でSelectelからユニバーサルSSDを取得しない方が良いです:)
しかし、真剣に、主にSelectelとYandexを比較することは私にとって興味深いことでした。 結局のところ、両方のソリューションは、パフォーマンスとコストの両方の点でほぼ真っ先に行きます。 さらに、驚きのコスト:テストされた構成の価格は非常に手頃でした。
AWSクラウドで同様の構成を使用する方が高いと予想されます(ただし、価格の差が大きいと予想していました)が、ロシアのプロバイダーはどれもパフォーマンスの点でAWS EC2に追いつくことができませんでした。 例外は私が理解していないRDSであり、プロビジョニングされたIOPSを追加しても役に立たない-それでも動作は遅いが、非常に高価である。
Yandexについてのほんの一言:一般に、私は彼らから長い間このようなサービスが登場することを期待していましたが、これは時間の問題であることは明らかでした。 まだ湿気があることは明らかです(これはWebの銃口のみに適用され、インフラストラクチャ全体には適用されません)。これは、内部に多くのバグとグリッチがあるためです。 私はそれらと密接に話さなければなりませんでした。 これがバグなのか、私が理解できないものなのかを理解するためのサポート。 しかし、これらはすべてすぐにデバッグされ、別の価値ある代替案がロシアのIaaS市場に登場すると確信しています。