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] を選択します。 を押下して表示されたメニューから [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] を選択します。 から [Service Console] を選択します。
- 
サービスコンソール画面のログイン 
  
 ユーザ、パスワードを設定して [Submit] を押下します。
 (ユーザ、パスワードは、インスタンス作成時に設定した管理者ユーザの情報を指定します。)
まとめ
Oracle Data Hub Cloud Service は、Cassandra のクラスタ環境が簡単に構築でき、ノードの追加、削除もWebコンソール画面の操作だけで行えます。
また、専用のコンソール画面でクラスタの状況等も確認する事ができます。
Oracle Cloud で NoSQL の使用を検討されている方は、Data Hub Cloud Service の使用を検討されてみてはいかがでしょうか。








 
		 
		 
			 
			 
			 
			 
			 
			 
			 
			