PostgreSQL 互換 Amazon Auroraが正式リリースされました
ウィスキー、シガー、パイプをこよなく愛する大栗です。
かねてからパブリックプレビューになっていたPostgreSQL 互換 Amazon Auroraが正式リリースされましたので、試してみます。
PostgreSQL 互換 Amazon Aurora
概要
PostgreSQL 互換 Amazon Auroraはre:Invent 2016で発表されたRDSの新しいDBエンジンです。今までのMySQL互換Auroraと同様に3つのAZに2個のデータを配置して6重化したストレージを持ち、従来のPostgreSQLの2倍以上のパフォーマンスが出ると謳っているサービスです。
提供リージョン
提供するリージョンは以下の4箇所となっています。初期リリース時では東京に来ていないようです。東京に来るのが待ち遠しいですね。
- 北部バージニア
- オレゴン
- オハイオ
- アイルランド
インスタンスクラス
PostgreSQL 互換 Amazon AuroraではR4系のインスタンスクラスが提供されています。
| インスタンスクラス | vCPU | ECU | メモリ | EBS最適化 | ネットワークパフォーマンス |
|---|---|---|---|---|---|
| db.r4.large | 2 | 7 | 15.25 GB | 425 Mbps | 最大 10 Gbps |
| db.r4.xlarge | 4 | 13.5 | 30.5GB | 850 Mbps | 最大 10 Gbps |
| db.r4.2xlarge | 8 | 27 | 61 GB | 1700 Mbps | 最大 10 Gbps |
| db.r4.4xlarge | 16 | 53 | 122 GB | 3500 Mbps | 最大 10 Gbps |
| db.r4.8xlarge | 32 | 99 | 244 GB | 7000 Mbps | 10 Gbps |
| db.r4.16xlarge | 64 | 195 | 488 GB | 14000 Mbps | 25 Gbps |
料金
オンデマンドの料金は、1時間あたりで以下のようになっています。
| インスタンスクラス | 北部バージニア、オレゴン、オハイオ | アイルランド |
|---|---|---|
| db.r4.large | $0.29 | $0.32 |
| db.r4.xlarge | $0.58 | $0.64 |
| db.r4.2xlarge | $1.16 | $1.28 |
| db.r4.4xlarge | $2.32 | $2.56 |
| db.r4.8xlarge | $4.64 | $5.12 |
| db.r4.16xlarge | $9.28 | $10.24 |
その他
詳細については、re:Invent 2016のスライドを御覧ください。
PostgreSQL 互換 Amazon AuroraではPerformance Insightsにより、詳細な性能情報を確認することができます。DB性能のボトルネックの調査は難しいものですが、Performance Insightsにより調査が楽になると思います。
試してみる
起動する
基本的な流れはプレビューのときと同じです。コンソールの画面が変わっていますが。。。
前提として、ここではオレゴンリージョンで実施します。
RDSのコンソールを開き、インスタンスのメニューを開きます。
DB インスタンスの起動をクリックします。
エンジンのオプションでAuroraを選択するとエディションにPostgreSQL 対応が表示されるので選択します。
次にDB詳細の指定を設定していきます。
| 項目 | 設定値 |
|---|---|
| DB インスタンスのクラス | db.r4.large — 2 vCPU, 15.25 GiB RAM |
| マルチ AZ 配置 | Create Replica in Different Zone |
| DB インスタンス識別子 | <任意> |
| マスターユーザーの名前 | <任意> |
| マスターパスワード | <任意> |
[詳細設定]の設定を行っていきます。
ここでは簡単にするためにほぼデフォルト設定にしています。
ネットワーク & セキュリティ
| 項目 | 設定値 |
|---|---|
| Virtual Private Cloud(VPC) | デフォルト VPC |
| サブネットグループ | default |
| パブリックアクセシビリティ | いいえ |
| アベイラビリティゾーン | us-west-2a |
| VPC セキュリティグループ | 既存 VPC セキュリティグループの選択 deafult(VPC) |
データベースの設定
| 項目 | 設定値 |
|---|---|
| DB クラスター識別子 | <任意> |
| データベースの名前 | <任意> |
| データベースのポート | 5432 |
| DB パラメータグループ | default.aurora-postgresql9.6 |
| DB クラスターのパラメータグループ | default.aurora-postgresql9.6 |
| オプショングループ | default:aurora-postgresql-9-6 |
| タグをスナップショットへコピー | チェックなし |
Encryption
| 項目 | 設定値 |
|---|---|
| Encryption | 暗号を有効化 |
| マスターキー | (default)aws/rds |
フェイルオーバー
| 項目 | 設定値 |
|---|---|
| 優先度 | 指定なし |
バックアップ
| 項目 | 設定値 |
|---|---|
| バックアップの保存期間 | 7 日間 |
モニタリング
| 項目 | 設定値 |
|---|---|
| 拡張モニタリング | 拡張モニタリングを無効にする |
パフォーマンスインサイト
| 項目 | 設定値 |
|---|---|
| パフォーマンスインサイト | パフォーマンスインサイトの無効化 |
| マスターキー | (default)aws/rds |
メンテナンス
| 項目 | 設定値 |
|---|---|
| マイナーバージョン自動アップグレード | マイナーバージョン自動アップグレードの有効化 |
| メンテナンスウィンドウ | 指定なし |
Auroraが起動するまでしばらく待ちます。
このように2台のインスタンスが起動します。
接続してみる
psqlでログインしてみます。普通にpsqlでログインできます。バージョンは9.6.3として認識されています。
1 2 3 4 5 6 7 | # psql -h pgaurora.example.us-west-2.rds.amazonaws.com -U awsuser -d mydbPassword for user awsuser:psql (9.6.4, server 9.6.3)SSL connection (protocol: TLSv1.2, cipher: DHE-RSA-AES256-GCM-SHA384, bits: 256, compression: off)Type "help" for help.mydb=> |
普通にログインできることは確認できたので、少し負荷をかけてみます。
ここではpgbenchでデータを作成してみます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | # pgbench -i -s 100 -U awsuser -h pgaurora.example.us-west-2.rds.amazonaws.com mydbPassword:NOTICE: table "pgbench_history" does not exist, skippingNOTICE: table "pgbench_tellers" does not exist, skippingNOTICE: table "pgbench_accounts" does not exist, skippingNOTICE: table "pgbench_branches" does not exist, skippingcreating tables...100000 of 10000000 tuples (1%) done (elapsed 0.02 s, remaining 2.09 s)200000 of 10000000 tuples (2%) done (elapsed 0.11 s, remaining 5.56 s)300000 of 10000000 tuples (3%) done (elapsed 0.20 s, remaining 6.53 s)400000 of 10000000 tuples (4%) done (elapsed 0.55 s, remaining 13.22 s)500000 of 10000000 tuples (5%) done (elapsed 0.64 s, remaining 12.10 s)・・・9600000 of 10000000 tuples (96%) done (elapsed 18.29 s, remaining 0.76 s)9700000 of 10000000 tuples (97%) done (elapsed 18.37 s, remaining 0.57 s)9800000 of 10000000 tuples (98%) done (elapsed 18.75 s, remaining 0.38 s)9900000 of 10000000 tuples (99%) done (elapsed 18.84 s, remaining 0.19 s)10000000 of 10000000 tuples (100%) done (elapsed 19.18 s, remaining 0.00 s)vacuum...set primary keys...done. |
テーブル一覧を見るとこんな感じです。
1 2 3 4 5 6 7 8 9 | mydb=> \dt List of relations Schema | Name | Type | Owner--------+------------------+-------+--------- public | pgbench_accounts | table | awsuser public | pgbench_branches | table | awsuser public | pgbench_history | table | awsuser public | pgbench_tellers | table | awsuser(4 rows) |
各テーブルの件数を見るとこんな感じです。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | mydb=> select count(*) from pgbench_accounts ; count---------- 10000000(1 row)mydb=> select count(*) from pgbench_branches ; count------- 100(1 row)mydb=> select count(*) from pgbench_history ; count------- 0(1 row)mydb=> select count(*) from pgbench_tellers ; count------- 1000(1 row) |
ここで、プレビューになっているパフォーマンスインサイトを見てみましょう。
このように実行したクエリが表示されています。各クエリでの待ち時間が何によるものなのかを表示してくれます。
このように簡単にですが触ってみました。
さいごに
PostgreSQL 互換 Amazon Auroraの正式リリースということで、手始めに起動してみました。Aurora特有の高性能や高速フェイルオーバーなど試したいことが色々とあるため、検証してブログ化していきたいと思います。