Oracle Cloud で NoSQL を使用する選択肢の1つとして、Data Hub Cloud Service を使用する方法があります。
Data Hub Cloud Service では、簡単に Cassandra のクラスタ環境を作成する事ができますので、手順をご紹介したいと思います。
インスタンスの作成
- Data Hub Cloud Service
Data Hub Cloud Service 画面で [インスタンスの作成] を選択します。 - Instance
インスタンス名及び、Region、Availability Domain、Subnet 等を選択し、[次>] ボタンを押下します。
Software Release には、「Data Hub Cloud Service, Release 3.0.15」を選択しています。 - Service Details
[Cluster Configuration]
Cassandra ノードに設定するシェイプとノード数、各ノードのデータストレージのサイズを指定します。
ノード数は 3 としました。
[Backup and Recovery Configuration]
バックアップ保存に関する設定をします。今回は None =バックアップなしとしています。
[Credentials]
Cassandra ノードのSSH公開鍵及び、管理者ユーザの設定をします。
入力が完了すれば [次>] ボタンを押下します。
以上で 3ノード構成の Cassandra クラスタ環境が作成されます。
リファレンスに記載の通り、3ノードの場合は全てが seedノード となります。
About Oracle Data Hub Cloud Service Seed Node Management
In an Oracle Data Hub Cloud Service cluster, the first three nodes are always seed nodes. During scale-out, if the new node is a multiple of 21, then the node is designated as seed node.
Cassandra クラスタの確認
- クラスタの確認
プロビジョニング終了後にノードの1台にSSHログインし、「oracle」ユーザで「nodetool status」を実行します。
(ユーザ、パスワードには、インスタンス作成時に設定した管理者ユーザの情報を指定します。)
1 2 3 4 5 6 7 8 9 10 |
[opc@ssdhcs-cass-1 ~]$ sudo su - oracle [oracle@ssdhcs-cass-1 ~]$ nodetool -u admin -pw admin\!Password1 status Datacenter: datacenter1 ======================= Status=Up/Down |/ State=Normal/Leaving/Joining/Moving -- Address Load Tokens Owns (effective) Host ID Rack UN 10.0.0.24 300.9 KB 256 100.0% fecd213c-bbd7-430d-b165-c53c1baf36d8 rack1 UN 10.0.0.25 310.68 KB 256 100.0% 68804987-7ee3-4568-afee-109926e1a18d rack1 UN 10.0.0.26 312.24 KB 256 100.0% 55b908f8-b332-4a47-b1b5-d4b09ba6e43b rack1 |
3台のノード全てが正常起動しています。
- データの確認
「cqlsh」でキースペース、カラムファミリを作成し、データを登録します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
[oracle@ssdhcs-cass-1 ~]$ cqlsh 10.0.0.24 -u admin -p admin\!Password1 Connected to ssDhCs at 10.0.0.24:9042. [cqlsh 5.0.1 | Cassandra 3.0.15 | CQL spec 3.4.0 | Native protocol v4] Use HELP for help. admin@cqlsh> CREATE KEYSPACE db1 WITH replication = {'class': 'SimpleStrategy', 'replication_factor' : 3}; admin@cqlsh> use db1; admin@cqlsh:db1> CREATE TABLE t1 (pkey text, value map<text,text>, PRIMARY KEY (pkey)); admin@cqlsh:db1> INSERT INTO t1 (pkey, value) VALUES('test00001', {'hoge': 'fuga'}); admin@cqlsh:db1> SELECT pkey, value FROM t1; pkey | value -----------+------------------ test00001 | {'hoge': 'fuga'} (1 rows) admin@cqlsh:db1> |
他2ノードでも登録したデータが参照できるか確認します。
1 2 3 4 5 6 7 8 9 10 11 |
[oracle@ssdhcs-cass-2 ~]$ cqlsh 10.0.0.25 -u admin -p admin\!Password1 Connected to ssDhCs at 10.0.0.25:9042. [cqlsh 5.0.1 | Cassandra 3.0.15 | CQL spec 3.4.0 | Native protocol v4] Use HELP for help. admin@cqlsh> use db1; admin@cqlsh:db1> SELECT pkey, value FROM t1; pkey | value -----------+------------------ test00001 | {'hoge': 'fuga'} (1 rows) admin@cqlsh:db1> |
1 2 3 4 5 6 7 8 9 10 11 |
[oracle@ssdhcs-cass-3 ~]$ cqlsh 10.0.0.26 -u admin -p admin\!Password1 Connected to ssDhCs at 10.0.0.26:9042. [cqlsh 5.0.1 | Cassandra 3.0.15 | CQL spec 3.4.0 | Native protocol v4] Use HELP for help. admin@cqlsh> use db1; admin@cqlsh:db1> SELECT pkey, value FROM t1; pkey | value -----------+------------------ test00001 | {'hoge': 'fuga'} (1 rows) admin@cqlsh:db1> |
Cassandra クラスタにノードを追加 (スケールアウト)
ノードの追加もWebコンソール画面から以下の手順で簡単に追加できます。
- ノードの追加
Data Hub Cloud Service 画面のインスタンス詳細画面右上のを押下して表示されたメニューから [Scale Out] を選択します。
追加ノード数を1としています。 - クラスタの確認
1 2 3 4 5 6 7 8 9 10 |
[oracle@ssdhcs-cass-1 ~]$ nodetool -u admin -pw admin\!Password1 status Datacenter: datacenter1 ======================= Status=Up/Down |/ State=Normal/Leaving/Joining/Moving -- Address Load Tokens Owns (effective) Host ID Rack UN 10.0.0.24 374.05 KB 256 79.0% fecd213c-bbd7-430d-b165-c53c1baf36d8 rack1 UN 10.0.0.25 360.62 KB 256 74.7% 68804987-7ee3-4568-afee-109926e1a18d rack1 UN 10.0.0.26 360.11 KB 256 71.6% 55b908f8-b332-4a47-b1b5-d4b09ba6e43b rack1 UN 10.0.0.27 279.45 KB 256 74.7% 1a633d62-9f93-488e-8a0e-94fa0d1467ea rack1 |
クラスタにノードが1台追加されている事が確認できます。
- 追加ノードでデータの確認
追加されたノードからもデータが参照できるか確認します。
1 2 3 4 5 6 7 8 9 10 11 |
[oracle@ssdhcs-cass-4 ~]$ cqlsh 10.0.0.27 -u admin -p admin\!Password1 Connected to ssDhCs at 10.0.0.27:9042. [cqlsh 5.0.1 | Cassandra 3.0.15 | CQL spec 3.4.0 | Native protocol v4] Use HELP for help. admin@cqlsh> use db1; admin@cqlsh:db1> SELECT pkey, value FROM t1; pkey | value -----------+------------------ test00001 | {'hoge': 'fuga'} (1 rows) admin@cqlsh:db1> |
サービスコンソール
Oracle Data Hub Cloud Service には クラスタのステータス、使用状況、パフォーマンス、およびアクティビティが確認できるコンソール画面が用意されています。
- サービスコンソール画面の表示
Data Hub Cloud Service 画面の該当のインスタンスの右にあるから [Service Console] を選択します。
-
サービスコンソール画面のログイン
ユーザ、パスワードを設定して [Submit] を押下します。
(ユーザ、パスワードは、インスタンス作成時に設定した管理者ユーザの情報を指定します。)
まとめ
Oracle Data Hub Cloud Service は、Cassandra のクラスタ環境が簡単に構築でき、ノードの追加、削除もWebコンソール画面の操作だけで行えます。
また、専用のコンソール画面でクラスタの状況等も確認する事ができます。
Oracle Cloud で NoSQL の使用を検討されている方は、Data Hub Cloud Service の使用を検討されてみてはいかがでしょうか。