Heroku Postgres 本番プランの技術的特性
この記事の英語版に更新があります。ご覧の翻訳には含まれていない変更点があるかもしれません。
最終更新日 2024年04月24日(水)
Table of Contents
このドキュメント内の情報は、顧客データベースのワークロードをより適切に処理するように Heroku がサービスを適応させるに伴って変更される場合があります。
Heroku Postgres プランは、CPU、RAM、I/O アーキテクチャに基づいて、さまざまなパフォーマンス特性を提供します。この記事では、Standard 層以上のプランの実装についての技術的な説明と各プランの重要なパフォーマンス特性を示します。
パフォーマンス特性
次の表は、Heroku Postgres Standard 層以上のプランと、基礎となるハードウェアについての関連する仕様の概要を示しています。
プラン | vCPU | RAM | PIOPS | バースト可能な vCPU | 接続制限 | ディスクサイズ | バースト可能なディスク |
---|---|---|---|---|---|---|---|
Standard-0 Premium-0 Private-0 Shield-0 | 2 | 4 GB | 3000 | あり、制限付き | 120 | 64 GB | なし |
Standard-2 Premium-2 Private-2 Shield-2 | 2 | 8 GB | 3000 | なし | 400 | 256 GB | なし |
Standard-3 Premium-3 Private-3 Shield-3 | 2 | 15.25 GB | 3000 | なし | 500 | 512 GB | なし |
Standard-4 Premium-4 Private-4 Shield-4 | 4 | 30.5 GB | 3000 | なし | 500 | 768 GB | なし |
Standard-5 Premium-5 Private-5 Shield-5 | 8 | 61 GB | 4000 | なし | 500 | 1 TB | なし |
Standard-6 Premium-6 Private-6 Shield-6 | 16 | 122 GB | 6000 | なし | 500 | 1.5 TB | なし |
premium-l-6 private-l-6 shield-l-6 | 16 | 122 GB | 6000 | なし | 500 | 2 TB | なし |
premium-xl-6 private-xl-6 shield-xl-6 | 16 | 122 GB | 6000 | なし | 500 | 3 TB | なし |
Standard-7 Premium-7 Private-7 Shield-7 | 32 | 244 GB | 9000 | なし | 500 | 2 TB | なし |
Standard-8 Premium-8 Private-8 Shield-8 | 64 | 488 GB | 12000 | なし | 500 | 3 TB | なし |
Standard-9 Premium-9 Private-9 Shield-9 | 96 | 768 GB | 16000 | なし | 500 | 4 TB | なし |
premium-l-9 private-l-9 shield-l-9 | 96 | 768 GB | 16000 | なし | 500 | 5 TB | なし |
premium-xl-9 private-xl-9 shield-xl-9 | 96 | 768 GB | 16000 | なし | 500 | 6 TB | なし |
standard-10 premium-10 private-10 shield-10 | 128 | 1 TB | 32000 | なし | 500 | 8 TB | なし |
2023 年 6 月 29 日時点で、すべての Production 層データベース (Standard、Premium、Private、Shield) をバースト可能ディスクから移行しました。すべての Production 層データベースは、ベースラインパフォーマンスが 3000 PIOP 以上です。
Postgres データベースでアップグレードが可能かどうかを確認するには、pg:info
コマンドを実行します。
$ heroku pg:info
=== HEROKU_POSTGRESQL_RED
Plan Standard 4
Status available
Essential 層を除くすべての Heroku Postgres プランがシングルテナントプランです。インスタンス上のリソースとしては顧客のデータベースとそれに関連する管理ソフトウェアしか存在しないため、より予測可能なパフォーマンスが提供されます。ただし、仮想化されたインフラストラクチャではある程度のリソース競合が発生するため、わずかなパフォーマンスの変動が予測されます。
バースト可能な vCPU パフォーマンス
すべての Heroku Postgres プランにベースラインレベルのパフォーマンスが付属しますが、Standard-0、Premium-0、Private-0、Shield-0 プランにはそのベースラインを超えてバーストできます。バースト可能なパフォーマンスのプランでは、各データベースをシングルテナントインスタンスとして分離して実行できます。つまり、データベースがプロビジョニングされたとき、同じサーバー上では他のどの顧客も実行していません。データベースが長時間バーストすると、そのデータベースは元のベースラインレベルのパフォーマンスに戻されます。一貫したレベルのパフォーマンスが必要な場合は、バースト不可能な Heroku Postgres プランによって固定されたレベルのパフォーマンスが提供されます。
プランタイプによって、パフォーマンスのベースラインレベルが決まります。
プラン | 負荷平均 |
---|---|
Standard-0 Premium-0 Private-0 Shield-0 | 0.2 |
これらの各プランは、短時間だけその負荷平均を超えてバーストできます。ただし、データベースの負荷がこれらの量を超えて持続している場合、そのデータベースはベースラインに戻されます。負荷平均については、アプリケーションのログの一部である Heroku Postgres Server のメトリクスを参照してください。
アーキテクチャ、vCPU、RAM、I/O
すべての Heroku Postgres プランは 64 ビットアーキテクチャ上で実行されます。Postgres の高性能な内部操作と、フォークやフォロワーなどの他の機能との相互運用性の両方が、すべての Standard 層以上のプランにわたって保証されます。
vCPU は、基礎となるインスタンス上の仮想プロセッサーの数を示します。vCPU の数が多いほど、仮想サーバーまたはインスタンス上のパフォーマンスは向上します。
RAM は、データキャッシングに使用される概略のメモリ量です。Postgres のキャッシングについての詳細は、「Heroku Postgres のデータキャッシングの概要」を参照してください。
インスタンスはすべて、IOPS がプロビジョニングされた EBS ディスクがアタッチされている EBS で最適化されたインスタンスによってバックアップされます。PIOPS は、基礎となるディスクが実行できる I/O 操作数/秒の尺度です。各プランでプロビジョニングされた IOPS の数によって、その I/O スループットが決定されます。書き込みの多いアプリケーションでは I/O が重大なボトルネックになることがありますが、読み込みの多いアプリケーションでは、ホットデータセットが RAM に収まるため、小さい IOPS 値でも性能は高くなる場合があります。
データ暗号化
すべての Standard 層以上のプランは、AES-256 のブロックレベルのストレージ暗号化を使用して保存時に暗号化されます。キーは Amazon によって管理され、個々のボリュームキーはそのボリュームの有効期間中は安定しています。EBS 暗号化についての詳細は、こちらを参照してください。Heroku では、Postgres のレベルでは自動的に何も暗号化されないため、暗号化したい場合は、独自の暗号化として PGCrypto 拡張機能を使用できます。
Heroku PGBackups を使用して取得されたバックアップファイルはすべて、US リージョン内の暗号化された S3 バケットに保存されます。