5 インスタンスのプロビジョニング
Oracle Blockchain Platformインスタンスを作成する前に
Oracle Blockchain Platformをプロビジョニングする前に、開発者またはエンタープライズ・インスタンスがニーズを満たしているかどうかを判断します。
使用するプロビジョニング・シェイプの決定
インスタンスをプロビジョニングする際に、2つの構成から選択します。これらのオプション間の移行は現在サポートされていません。
構成 | 特徴 |
---|---|
開発者 このスタータ・シェイプは、開発および評価に使用することをお薦めします。 |
|
エンタープライズ 数十トランザクション/秒(TPS)の1桁のTPSレートというパフォーマンス要件を持つファウンダおよび参加者インスタンスの小規模から中規模の本番デプロイメントに適した高可用インスタンス構成。 |
|
Blockchain Platform Managerを使用したインスタンスのプロビジョニング
Blockchain Platform Managerでブロックチェーン・ファウンダまたは参加者インスタンスを作成するには、新規インスタンスの作成ウィザードを使用します。
-
ファウンダ組織: 参加者が後から参加できる新しいネットワークを含む、完全なブロックチェーン環境。
-
参加者インスタンス: 参加先のファウンダ組織がすでにある場合、資格証明によってネットワークへのアクセス権が付与される場合は参加者インスタンスを作成できます。
REST APIを使用したインスタンスのプロビジョニング
REST APIを使用してOracle Blockchain Platformインスタンスをプロビジョニングできます。
curl -X POST \
-u <username>:<password> \
http://localhost:7070/api/v1/blockchainPlatforms/instances \
-H "Content-Type: multipart/form-data; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW' \
-F 'payload={
"name": "obpinstance1",
"desc": "test instance",
"platformRole": "founder",
"configuration": "Developer",
"peer": 4,
"cluster": {
"platformHosts": [
"10.182.73.23",
"10.182.73.20"
],
"crcHosts": [
"10.182.73.23",
"10.182.73.20"
]
},
"additionalConfiguration": {
"instanceFQDN": "domain.host.com"
}
}'
name
- 1つ以上の文字が含まれている必要があります。
- 15文字以下である必要があります。
- ASCII文字(
a
からz
)で始まる必要があります。 - ASCII小文字または数字のみで構成する必要があります。
- ハイフンを含めることはできません。
- その他すべての特殊文字を含めることはできません。
- アイデンティティ・ドメイン内で一意である必要があります。
desc
- オプション: インスタンスの説明を入力します
platformRole
developer
またはfounder
に設定する必要があります
configuration
Developer
: 1 Kafkaオーダラと1VMに合計3 OCPUEnterprise
: 3ノードKafkaクラスタと3 X VM
peer
- このサービス・インスタンスに初期作成されるピア・ノードの数を指定します。
- 1から14のピア・ノードを作成できます。
cluster
- クラスタの情報を入力します:
platformHosts
: プラットフォーム・クラスタをホストするVMcrcHosts
: Kafka/ZookeeperクラスタをホストするVM
- クラスタの情報を入力します:
instanceFQDN
- 外部ロード・バランサの完全修飾ドメイン名。これは外部ロード・バランサのみに使用されます - 外部ロード・バランサを使用していない場合、このパラメータを指定する必要はありません。
外部ロード・バランサを使用する際の追加条件
インスタンスをプロビジョニングする際、外部ロード・バランサを使用している場合は、プロビジョニング・ステップでそれを選択し、「Blockchain Platform Managerを使用したインスタンスのプロビジョニング」または「REST APIを使用したインスタンスのプロビジョニング」の説明に従って、TLSルートCA証明書をアップロードしておく必要があります。
- インスタンスのマッピングが必要なポートの詳細リストを取得します。Blockchain Platform Managerでインスタンスのインスタンスの詳細ページを開き、LBRポート・マップをクリックします。
表示されたポートを記録します。
- ロード・バランサで、次のNginx構文の例に示すようにマッピングを実行します(
my.blockchain.example.com
はブロックチェーン・インスタンス(内側)のFQDNです):...stream { upstream port1 { server my.blockchain.example.com:10001; } server { listen *:10003 ssl; ssl_certificate /etc/nginx/server.pem; # use your own certificate/key ssl_certificate_key /etc/nginx/serverkey.pem; proxy_pass port1; } ...
- ポート・マップに示されているすべてのポートについて繰り返します。
ノート:
将来のある時点で、新しいピアを追加してインスタンスをスケール・アウトする場合は、前述のステップを使用してその新しいピアを忘れずにマップしてください。高可用性
エンタープライズ対応のインスタンスで、異なるVMを使用して高可用性を実現するには、外部ロード・バランサを構成してクラスタ内のすべてのプラットフォームVMのリストを追加します(KafkaとZooKeeper VMは、アップストリーム(バックエンド)リストとしてすでに可用性が高くなっています)。
a.example.com
b.example.com
c.example.com
...
stream {
upstream rest_proxy_backend_servers
{
server a.example.com:10001;
server b.example.com:10001;
server c.example.com:10001;
}
server
{
listen *:10003 ssl;
ssl_certificate /etc/nginx/server.pem; # use your own certificate/key
ssl_certificate_key /etc/nginx/serverkey.pem;
proxy_pass rest_proxy_backend_servers;
}
...
stream {
upstream peer0_backend_servers
{
server a.example.com:10036;
server b.example.com:10036;
server c.example.com:10036;
}
server {
listen *:10036 ssl;
ssl_certificate /etc/nginx/server.pem; # use your own certificate/key
ssl_certificate_key /etc/nginx/serverkey.pem;
proxy_pass peer0_backend_servers;
}
...
インスタンス・クラスタ内の外部で使用可能な各ポートが各VMで公開され、適切なサービスに自動的にルーティングされます(コンソール、メンバーシップ/CA、オーダラ、ピア、RESTプロキシ)。
LBRポート・マップ・ボタンを使用してリストされたすべてのポートが、この方法でルーティングされることを確認します。
$ docker node ls
これにより、クラスタ内のノードのリストが返されます。次に例を示します。 [oracle@dhcp-10-144-63-180 ~]$ docker node ls
ID HOSTNAME STATUS AVAILABILITY MANAGER STATUS ENGINE VERSION
fz1ksoxysyorz754x0hswnird dhcp-10-144-62-149.usdhcp.oraclecorp.com Ready Active 18.09.1-ol
rayhna7vdiup5p7tkmxxepyex * dhcp-10-144-63-180.usdhcp.oraclecorp.com Ready Active Leader 18.09.1-ol
マネージャ・ステータスを持たないノードごとに、次の例のようなコマンドを使用してノードをプロモートします。$ docker node promote dhcp-10-144-62-149.usdhcp.oraclecorp.com
少なくとも3つのノードがこの方法でプロモートされることを確認してください。