DocumentDB が東京リージョンで利用可能になりました!

2019.05.10

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

はじめに

こんにちは、岩城です。
作日、DocumentDB が東京リージョンとソウルリージョンで利用可能になりました。同時に、これまではフランクフルトリージョンのみだった R5 インスタンスの利用可能もなりました。早速、確認してみたいと思います。

なお、DocumentDB がどのようなサービスであるかについては割愛します。
以下のエントリで紹介されていますので、気になる方はご確認ください。

[速報] MongoDB 互換のマネージドデータベース!Amazon DocumentDB が登場しました

DocumentDB を利用可能なリージョン

東京リージョンとソウルリージョンが追加になりました。

  • 米国東部(バージニア北部)
  • 米国東部(オハイオ)
  • 米国西武(オレゴン)
  • EU(フランクフルト)
  • EU(アイルランド)
  • アジアパシフィック(ソウル)
  • アジアパシフィック(東京)

R5 インスタンスを利用可能なリージョン

これまではフランクフルトリージョンのみで利用可能でした。
米国リージョンがいち早く対応されるイメージだったのですが、調べて見てこれは意外でした。

  • EU(フランクフルト)
  • アジアパシフィック(ソウル)
  • アジアパシフィック(東京)

料金

2019年5月10日現在の料金について、確認していきます。

オンデマンドインスタンス

メモリ最適化インスタンス(現行世代) 料金
db.r5.large 0.334USD
db.r5.xlarge 0.668USD
db.r5.2xlarge 1.336USD
db.r5.4xlarge 2.672USD
db.r5.12xlarge 8.016USD
db.r5.24xlarge 16.032USD

DocumentDB は、可用性を最大化するために、少なくとも 1 つのレプリカをプライマリインスタンスとは異なるアベイラビリティーゾーンに配置することが推奨されています。このため、マルチ AZ 配置のコストは、プライマリインスタンスのコストに各レプリカのコストを加えたものになります。

データベースストレージおよび IO

項目 料金
ストレージ料金 1 か月あたり 0.12USD/GB
I/O 料金 100 万リクエストあたり 0.24USD

バックアップストレージ

項目 料金
バックアップストレージ 1 か月あたり 0.023USD/GB

データ転送

Data Transfer IN To Amazon DocumentDB From Internet

項目 料金
すべてのデータ転送受信 (イン) 0.00USD/GB

Data Transfer OUT From Amazon DocumentDB To Internet

項目 料金
1 GB まで/月 0.00USD/GB
次の 9.999 TB/月 0.114USD/GB
次の 40 TB/月 0.089USD/GB
次の 100 TB/月 0.086USD/GB
150 TB /月より大きい 0.084USD/GB

コンソールから確認

東京リージョンを選択したコンソールから DocumentDB を確認することができます。

はじめに、クラスターを作成する前にサブネットグループを作成しておきましょう。
DocumentDB は最低 2 つの AZ をカバーするサブネットが必要になります。
1 つだけではクラスターを作成することができません。

サブネット 1 つだけで作成しようとする以下のエラーが出力されます。

つぎに、クラスターを作成します。インスタンスタイプを選択する項目では R5 系のみ選択できます。詳細設定項目については、簡単な動作確認が目的なのでネットワーク設定以外をデフォルトのままとしました。

1 分位でクラスターが利用可能になりますが、クラスターを構成するインスタンスの作成に少々時間を要します。プライマリインスタンスから作成され、10 分位でレプリカインスタンスの作成が完了し利用可能になりました。あっという間ですね。

小ネタ

色々と触っている最中に、「そういえばサブネットグループをちゃんと割り当てていたっけ?」と確認したくなりました。 コンソールから確認しようとしましたが、現時点では確認することができないようです。CLI から確認することができました。

$ aws docdb describe-db-clusters
{
    "DBClusters": [
        {
            "AvailabilityZones": [
                "ap-northeast-1d",
                "ap-northeast-1a",
                "ap-northeast-1c"
            ],
            "BackupRetentionPeriod": 1,
            "DBClusterIdentifier": "docdb-2019-05-09-14-50-57",
            "DBClusterParameterGroup": "default.docdb3.6",
            "DBSubnetGroup": "docdb-subnetgrp",
            "Status": "available",
            "EarliestRestorableTime": "2019-05-09T14:52:32.533Z",
            "Endpoint": "docdb-2019-05-09-14-50-57.cluster-c4o0khmattoq.ap-northeast-1.docdb.amazonaws.com",
            "ReaderEndpoint": "docdb-2019-05-09-14-50-57.cluster-ro-c4o0khmattoq.ap-northeast-1.docdb.amazonaws.com",
            "MultiAZ": true,
            "Engine": "docdb",
            "EngineVersion": "3.6.0",
            "LatestRestorableTime": "2019-05-09T15:16:28.097Z",
            "Port": 27017,
            "MasterUsername": "master",
            "PreferredBackupWindow": "00:00-00:30",
            "PreferredMaintenanceWindow": "sun:15:52-sun:16:22",
            "DBClusterMembers": [
                {
                    "DBInstanceIdentifier": "docdb-2019-05-09-14-50-57",
                    "IsClusterWriter": false,
                    "DBClusterParameterGroupStatus": "in-sync",
                    "PromotionTier": 1
                },
                {
                    "DBInstanceIdentifier": "docdb-2019-05-09-14-50-572",
                    "IsClusterWriter": false,
                    "DBClusterParameterGroupStatus": "in-sync",
                    "PromotionTier": 1
                },
                {
                    "DBInstanceIdentifier": "docdb-2019-05-09-14-50-573",
                    "IsClusterWriter": true,
                    "DBClusterParameterGroupStatus": "in-sync",
                    "PromotionTier": 1
                }
            ],
            "VpcSecurityGroups": [
                {
                    "VpcSecurityGroupId": "sg-00c3a551b5f18d1e1",
                    "Status": "active"
                }
            ],
            "HostedZoneId": "Z153P62A5O49IU",
            "StorageEncrypted": true,
            "KmsKeyId": "arn:aws:kms:ap-northeast-1:XXXXXXXXXXXX:key/8cf48896-84a8-4b3f-915f-1b4a727b7abe",
            "DbClusterResourceId": "cluster-IENN4WRBPRW34PZEOBDSVZIB4Y",
            "DBClusterArn": "arn:aws:rds:ap-northeast-1:XXXXXXXXXXXX:cluster:docdb-2019-05-09-14-50-57",
            "AssociatedRoles": [],
            "ClusterCreateTime": "2019-05-09T14:51:40.972Z"
        }
    ]
}

情報量が多いのでサブネットグループだけを抽出したい場合は以下のとおりです。

$ aws docdb describe-db-clusters |jq '.DBClusters[].DBSubnetGroup'
"docdb-subnetgrp"

おわりに

EC2 上に MongoDB を構築しようとしていた矢先、DocumentDB が東京リージョンで利用できるようになりました。色々と捗りそうです!

本エントリがどなたかのお役に立てれば幸いです。