31.2. S3_PING 設定オプション


Red Hat JBoss Data Grid は Amazon Web Services と 2 通りの方法で連動します。
  • ライブラリーモードでは、JGroups の default-configs/default-jgroups-ec2.xml ファイル (詳細については、「default-jgroups-ec2.xml」を参照) または S3_PING プロトコルを使用します。
  • リモートクライアントサーバーモードでは、JGroups の S3_PING プロトコルを使用します。
ライブラリーおよびリモートクライアントサーバーモードでは、Amazon AWS で機能するようにクラスター化するために S3_PING プロトコルを設定する方法として 3 つの方法があります。
  • プライベート S3 バケットを使用します。これらのバケットは Amazon AWS のクレデンシャルを使用します。
  • 事前署名付き URL を使用します。これらの事前に割り当てられる URL は、プライベートの書き込みアクセスとパブリックの読み取りアクセスを持つバケットに割り当てられます。
  • パブリック S3 バケットを使用します。これらのバケットにはクレデンシャルがありません。

31.2.1. プライベート S3 バケットの使用

この設定には、適切な AWS クレデンシャルによってのみアクセスできるプライベートバケットへのアクセスが必要です。適切な権限が利用できることを確認するには、ユーザーにバケットの以下の権限があることを確認してください。
  • List
  • Upload/Delete
  • View Permissions
  • Edit Permissions
S3_PING 設定には以下のプロパティーが含まれることを確認してください。
  • バケットのある location
  • AWS ユーザーには access_keysecret_access_key プロパティー。

注記

この設定の使用時に 403 エラーが表示される場合、プロパティーに正しい値があることを検証してください。問題が存続する場合、EC2 ノードのシステム時間が正しいことを確認してください。Amazon S3 は、セキュリティー上の理由により、サーバーの時間よりも 15 分を超える遅れがあるタイムスタンプを持つ要求を拒否します。

例31.1 プライベートバケットの使用による Red Hat JBoss Data Grid Server の起動

サーバーディレクトリーの上位レベルから次のコマンドを実行して、プライベート S3 バケットを使用して Red Hat JBoss Data Grid サーバーを起動します。
bin/standalone.sh 
  -c cloud.xml
  -Djboss.node.name={node_name} 
  -Djboss.socket.binding.port-offset={port_offset}
  -Djboss.default.jgroups.stack=s3-private
  -Djgroups.s3.bucket={s3_bucket_name}
  -Djgroups.s3.access_key={access_key}
  -Djgroups.s3.secret_access_key={secret_access_key}
Copy to Clipboard Toggle word wrap
  1. {node_name} をサーバーの必要なノード名に置き換えます。
  2. {port_offset} をポートオフセットに置き換えます。デフォルトのポートを使用するには、これを 0 に指定します。
  3. {s3_bucket_name} を適切なバケット名に置き換えます。
  4. {access_key} をユーザーのアクセスキーに置き換えます。
  5. {secret_access_key} をユーザーの秘密アクセスキーに置き換えます。

31.2.2. 事前署名付き URL の使用

この設定では、List 権限を Everyone に設定し、パブリックの読み取りアクセスを許可することにより、S3 の一般に読み取り可能なバケットを作成します。クラスター内の各ノードは、S3_PING プロトコルで要求される場合に、put および delete 操作用に事前署名付き URL を生成します。この URL は固有のファイルを参照し、バケット内のフォルダーパスを組み込むことができます。

注記

パスが長くなると、S3_PING にエラーが発生します。たとえば、my_bucket/DemoCluster/node1 のようなパスは機能しますが、my_bucket/Demo/Cluster/node1 のようにパスが長くなると機能しません。

31.2.2.1. 事前署名付き URL の生成

JGroups の S3_PING クラスには、事前署名付き URL を生成するためのユーティリティーメソッドが含まれます。このメソッドの最後の引数は、Unix epoch (1970 年 1 月 1 日) からの秒数で表される URL の有効期間です。
事前署名付き URL を生成する構文は次のようになります。
String Url = S3_PING.generatePreSignedUrl("{access_key}", "{secret_access_key}", "{operation}", "{bucket_name}", "{path}", {seconds});
Copy to Clipboard Toggle word wrap
  1. {operation}PUT または DELETE のいずれかに置き換えます。
  2. {access_key} をユーザーのアクセスキーに置き換えます。
  3. {secret_access_key} をユーザーの秘密アクセスキーに置き換えます。
  4. {bucket_name} をバケットの名前に置き換えます。
  5. {path} をバケット内のファイルへの必要なパスに置き換えます。
  6. {seconds} を、Unix epoch (1970 年 1 月 1 日) からのパスの有効期間を表す秒数に置き換えます。

例31.2 事前署名付き URL の生成

String putUrl = S3_PING.generatePreSignedUrl("access_key", "secret_access_key", "put", "my_bucket", "DemoCluster/jgroups.list", 1234567890);
Copy to Clipboard Toggle word wrap
S3_PING 設定に、S3_PING.generatePreSignedUrl() の呼び出しで生成された pre_signed_put_url および pre_signed_delete_url プロパティーが含まれていることを確認してください。この設定の場合、AWS クレデンシャルがクラスター内の各ノードに保存されないため、プライベート S3 バケットを使用する設定よりも安全度が高くなります。

注記

事前署名付き URL が XML ファイルに入力される場合、URL 内の & 文字をその XML エンティティー (&) に置き換える必要があります。

31.2.2.2. コマンドラインを使用した事前署名付き URL の設定

コマンドラインを使用して事前署名付き URL を設定するには、以下のガイドラインを使用します。
  • URL を二重引用符 ("") で囲みます。
  • URL では、アンパーサンド (&) 文字の各出現箇所はバックスラッシュ (\) でエスケープする必要があります。

例31.3 事前署名付き URL による JBoss Data Grid Server の起動

bin/standalone.sh
  -c cloud.xml
  -Djboss.node.name={node_name}
  -Djboss.socket.binding.port-offset={port_offset}
  -Djboss.default.jgroups.stack=s3-presigned
  -Djgroups.s3.pre_signed_delete_url="http://{s3_bucket_name}.s3.amazonaws.com/jgroups.list?AWSAccessKeyId={access_key}\&Expires={expiration_time}\&Signature={signature}"
  -Djgroups.s3.pre_signed_put_url="http://{s3_bucket_name}.s3.amazonaws.com/jgroups.list?AWSAccessKeyId={access_key}\&Expires={expiration_time}\&Signature={signature}"
Copy to Clipboard Toggle word wrap
  1. {node_name} をサーバーの必要なノード名に置き換えます。
  2. {port_offset} をポートオフセットに置き換えます。デフォルトのポートを使用するには、これを 0 に指定します。
  3. {s3_bucket_name} を適切なバケット名に置き換えます。
  4. {access_key} をユーザーのアクセスキーに置き換えます。
  5. {expiration_time} を、S3_PING.generatePreSignedUrl() メソッドに渡された URL の値に置き換えます。
  6. {signature} を、S3_PING.generatePreSignedUrl() メソッドで生成される値に置き換えます。

31.2.3. パブリック S3 バケットの使用

この設定には、パブリックの読み書き権限のある S3 バケットが関係します。つまり、Everyone には、バケットの ListUpload/Delete の権限、View Permissions、および Edit Permissions が設定されます。
location プロパティーは、この設定のバケット名で指定する必要があります。この設定メソッドは、バケットの名前を知っているいずれのユーザーもバケットにデータをアップロードしたり、保存したりでき、バケット作成者のアカウントはこのデータについてチャージされるため、安全度は最も低くなります。
Red Hat JBoss Data Grid サーバーを起動するには、以下のコマンドを使用します。
bin/standalone.sh
  -c cloud.xml
  -Djboss.node.name={node_name}
  -Djboss.socket.binding.port-offset={port_offset}
  -Djboss.default.jgroups.stack=s3-public
  -Djgroups.s3.bucket={s3_bucket_name}
Copy to Clipboard Toggle word wrap
  1. {node_name} をサーバーの必要なノード名に置き換えます。
  2. {port_offset} をポートオフセットに置き換えます。デフォルトのポートを使用するには、これを 0 に指定します。
  3. {s3_bucket_name} を適切なバケット名に置き換えます。
トップに戻る
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。 最新の更新を見る.

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

Theme

© 2026 Red Hat