最近発表されて話題になっていたAWS DocumentDB(以下DocumentDB)を使ってみた。
##DocumentDBとは?
AWSが最近発表したMongoDBと互換性のあるデータベース。
MongoDBでのスプリットブレイン問題などが解消されている。
MongoDBとの互換はversion: 3.6(最新は4)
実態はMongoDBをエミュレートしているだけ。
##想定されるユースケース
現在多くのサービスでNoSQLとしてDynamoDBが用いられているが、これがDocumentDBに置き換わっていくかもしれない。
SQLで手軽に検索できるのはやはり大きい。
##セットアップ
公式トラブルシューティングによるとパブリックエンドポイントがサポートされておらず、同一VSN内、同一リージョン内でないと接続できないとのこと。
sshトンネルなどもできるらしいが、今回は普通にec2のLinaxからアクセスして試してみることにした。
画面からまずはクラスターなるものを作成する必要がある。
作成すると、指定したインスタンス数に応じてインスタンスが立ち上がる。
ここに書かれている情報を用いて接続する。
##接続
ec2インスタンスを作成する。
ssh接続してMongo3.6.9をインストールする
sudo vim /etc/yum.repos.d/mongodb-org-3.6.repo
を実行して以下のコードを書き込む
[mongodb-org-3.6]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/amazon/2013.03/mongodb-org/3.6/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-3.6.asc
書き込んだらインストールののちにdocumentDBに接続!
sudo yum install -y mongodb-org-shell
mongo --ssl --host [DocumentDBのClusterのドメイン]:27017 --sslCAFile rds-combined-ca-bundle.pem --username [ユーザ名] --password [パスワード]
##結果
パブリックエンドポイントが使えないのはちょっと悲しい。 次回はLambdaからアクセスして使ってみたい。
前にどこかの記事でこういう優良なオープンソースをクラウドサービスが全て持って行って利益を総取りしてしまうためにコミュニティが育たないという批判記事を見かけた気がするが、やっぱりAWSとなると信頼性がすごい。安心できる。
東京リージョンもまだサポートされていないし、これからが楽しみなサービス。
どうでもいいけど、1日動かしっぱなしにしておいたら$13も取られた… 高い…
##参考
https://dev.classmethod.jp/cloud/docdb-via-nlb/
https://docs.aws.amazon.com/ja_jp/documentdb/latest/developerguide/troubleshooting.html#troubleshooting.cannot-connect