こんにちは!SBクラウドSAのよしい(@yoshiichannel)です。
長かったゴールデンウィークが終わり、皆さんお仕事復帰されてお疲れかと思いますが、いかがお過ごしでしょうか。
今回は、先月新たにリリースされたApsaraDB for MongoDBを触ってみたので、簡単に使用方法と特徴をご紹介したいと思います。
はじめに MongoDBとは
MongoDBは、OracleやMySQLなどに続いて人気の、最有力なNoSQLのドキュメント指向型データベースです。RDBと比較して処理が速く、容易にスケールアウトができます。
また、データの読み書きの性能が高く、ソーシャルゲームなどで実際に使われたりしています。
そんなMongoDBがAlibaba Cloudで使えるサービスが、ApsaraDB for MongoDBです。
ApsaraDB for MongoDBの特徴(インスタンスタイプについて)
購入するときに、従量課金とサブスクリプションの課金体系で、それぞれ2種類のインスタンスタイプを選ぶことが出来ます。
以下、2つのインスタンスタイプについて説明します。
①レプリカセット
可用性を高めるために、自動的にPrimaryノード、Secondaryノード、Hiddenノードの3つが作られます。ミラーリングのようなイメージです。
それぞれのノードはデータが同期されます。
Hiddenノードはユーザーから直接アクセスすることは出来ないので、ご注意ください。
②シャーディング
データを分割し、複数に分散させて運用・管理できるインスタンスタイプです。①のレプリカセットを複数作成してデータの分散をするイメージです。自動的にMongosノードが作成され、書き込み/読み込みの操作をShardノード(データが保存されているノード)に振り分ける役割をしてくれます。
ApsaraDB for MongoDBの特徴(バックアップ、監視について)
コンソール上で以下の機能を簡単に設定することができます。
①曜日指定、時間指定でのバックアップ取得
※バックアップの保持期間は7日間です。この期間はデフォルトで決まっていて、変更はできません。
②取得したバックアップを元にインスタンスを作成(DBの選択が可能です)
③ログの取得(実行クエリの確認が可能です)
④CloudMonitor(AlibabaCloudの監視サービス)と連携してアラートメールを送信
ECSからログインしてみる
ECSにMongoDBクライアントをインストールして、実際にApsaraDB for MongoDBにアクセスしてみます。 MongoDBはバージョン3.0以上のものをインストールしてください。
まずはじめに、IPアドレスのホワイトリストを設定します。
設定は以下から実施できます。
次に、デフォルトではイントラネット接続アドレスしか発行されないので、
インターネット接続が必要な場合は別途発行する必要があります。
発行はコンソール上から簡単に行うことが出来ます。
mongo --host dds-xxxx.mongodb.rds.aliyuncs.com:3717 -u root -p 123456 --authenticationDatabase admin
でログインすることが出来ます。 (アドレス、パスワードはご自身のものに変更してください)
コマンドを実行し、以下のような表示が出たらログイン成功です!
データの挿入・検索
ログインしたのでデータを挿入したり検索したりしてみます!が、その前にドキュメント指向型であるMongoDBのデータ構造について簡単に触れたいと思います。
MongoDBはデータベース、コレクション、ドキュメントの3つの要素で構成されています。 SQLで言うとコレクション=テーブル、ドキュメント=レコードに該当します。
では、DBを検索してみます。「show dbs」で一覧を表示できます。ちなみに ; は必要ありません。
次に、「dbtest」DBの中身を見てみます。「db.”DB名”.find()」でデータを全件取得することができます。
まだ中身は空っぽなので、何も表示されませんでした。
では、ドキュメントを挿入してみましょう!「db.”DB名”.insert({XXX:’OOO’})」で挿入が出来ます。
再度全件取得してみると
挿入した内容が表示されました!
まとめ
このような形で、Alibaba Cloudでは簡単にバックアップ機能、監視機能を備えたMongoDBインスタンスを作成することができます。 Webサイトの操作ログなど、単純な構造のデータベースに向いているので、これを機会にお試し頂いてはいかがでしょうか!