専有エンドポイント:専有エンドポイント接続
専有エンドポイントの作成が完了すれば、クライアントから専有エンドポイントへ接続することができます。
接続先サービスが「ニフクラ オブジェクトストレージ(旧)」(Amazon S3互換のAPIを提供)の場合を例にとって接続方法をご紹介いたします。
ここでは、例として下記プライベートIPアドレスの専有エンドポイントを作成したものとします。
専有エンドポイントのプライベートIPアドレス | 192.168.12.123 |
クライアントから専有エンドポイントへの接続は、主に下記の2通りになります。
- プライベートIPアドレス指定による接続
- 名前解決による接続(/etc/hosts や内部DNS等)
下記では、それぞれの場合について、S3ツールとして awscli を利用した際の接続例を紹介します。
なお、 awscli につきましては、サポート範囲外となりますのでご了承ください。
S3ツールの利用例については下記ブログ記事もご覧ください。
オブジェクトストレージ(旧)をS3ツールで利用する【設定編】
※専有エンドポイントへの通信プロトコルは http となります。
※専有エンドポイントはシグネチャーバージョン2のみ対応しているため、awscliでは .aws/config 内に下記のような設定が必要になります。
[default]
s3 =
signature_version = s3
プライベートIPアドレス指定による接続例
awscli を利用する場合、 –endpoint-url に専有エンドポイントのプライベートIPアドレスを直接指定することで接続が可能です。
下記でバケット一覧やバケット内のファイル一覧を取得することができます。
$ aws --endpoint-url http://192.168.12.123 s3 ls
$ aws --endpoint-url http://192.168.12.123 s3 ls s3://mybucket
他の操作もオブジェクトストレージ(旧)と同様に行うことができます。
名前解決による接続例
専有エンドポイントのプライベートIPアドレスを任意の名前で名前解決を行った際の例です。
下記では、専有エンドポイントを「mydepinstance-internal」という名前で名前解決を行えるようにします。
※S3ツールの仕様や設定によっては、バケットに対してサブドメイン形式で接続するため、各バケット名を付与したサブドメインに対する設定も必要になる場合があります。
※名前解決を行う場合、ホスト名に「.」を含むことはできません。これは、専有エンドポイント側が「.」以前をバケット名として取り扱うことによる制約です。
/etc/hosts設定例
/etc/hosts で専有エンドポイントのプライベートIPアドレスを名前解決できるようにします。
例として、 /etc/hosts を下記のように設定します。
192.168.12.123 mydepinstance-internal
192.168.12.123 mybucket.mydepinstance-internal
/etc/hosts の設定後、下記でバケット一覧やバケット内のファイル一覧を取得することができます。
$ aws --endpoint-url http://mydepinstance-internal s3 ls
$ aws --endpoint-url http://mydepinstance-internal s3 ls s3://mybucket
他の操作もオブジェクトストレージ(旧)と同様に行うことができます。
Unbound設定例
Unbound で専有エンドポイントのプライベートIPアドレスを名前解決できるようにします。
例として、 Unbound の設定ファイルに下記を追加します。
server:
local-zone: "mydepinstance-internal" redirect
local-data: "mydepinstance-internal. IN A 192.168.12.123"
設定ファイル変更後、 Unbound の設定の変更を反映します。
$ unbound-control reload
Unbound の設定反映後、下記でバケット一覧やバケット内のファイル一覧を取得することができます。
$ aws --endpoint-url http://mydepinstance-internal s3 ls
$ aws --endpoint-url http://mydepinstance-internal s3 ls s3://mybucket
他の操作もオブジェクトストレージ(旧)と同様に行うことができます。
/etc/hosts や Unbound 以外の方法でも、名前解決を行える環境であれば、同様に専有エンドポイントの接続を行うことができます。