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 の使用を検討されてみてはいかがでしょうか。