4
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

AWS〜さくらのクラウド オブジェクトストレージ間の接続(簡易検証版)

4
Posted at

内容

@takeda_h さんの閉域の AWS 環境からさくらのクラウドのオブジェクトストレージにアクセスするを参考に、AWS〜さくらのクラウドのオブジェクトストレージ間の接続を試してみました。今回の構成は、一旦インターネットを経由してから閉域へ接続する構成となるため、現実的な利用には適しませんが、中間の接続をVPNにしたりAWS接続サービスを利用したりするのは少し手間がかかるため、構成のイメージを掴むことを目的に、中間の接続をインターネットとしています。

  • 自宅にルータがないため、AWS〜さくらのクラウドのサーバ間の通信はインターネット通信としました。
  • さくらのクラウド検定ラボではオブジェクトストレージが使用できないため、エンドポイント URL へのアクセスまでを確認しました。

構成

通信経路は上記記事と同様に、仮想サーバに対するポートフォワードを設定します。EC2 のローカルホストにアクセスした際、仮想サーバ経由でプライベートリンク(オブジェクトストレージ)にアクセスします。

sk20.png

手順

AWS 側の手順は割愛します。

スイッチの作成

通常のスイッチを 1 つ作成します。

sk01.png

サーバの作成

最小構成でサーバを作成します。

sk02.png

NIC の設定では「インターネットに接続」を選択します。

sk03.png

サーバに NIC を追加

「サーバ」→「NIC」から「追加」を選択して NIC を追加します。未接続の NIC が作成されます。

sk07.png

追加された未接続の NIC を選択し、「接続の編集」をクリック後、先ほど作成したスイッチを選択して接続します。

sk06.png

なお、NIC の「IPv4 アドレスを編集」から IP アドレスの設定が可能ですが、こちらはコンソール上の表示のみで、ディスクへの反映は行われません。後ほどサーバ側で IP アドレスの設定を行います。

sk08.png

サービスエンドポイントの作成

スイッチの詳細から「サービスエンドポイントゲートウェイ」を選択します。

sk11.png

IPv4 アドレスを設定し、サービスエンドポイントゲートウェイを有効化します。

sk09.png

オブジェクトストレージの下記項目にチェックを入れ、有効化します。

sk10.png

さくらのクラウドサーバの IP アドレス設定

さくらのクラウドサーバ上で下記のネットワーク設定ファイルを作成します。

/etc/netplan/99_config.yaml
network:
  version: 2
  renderer: networkd
  ethernets:
    eth1:
      dhcp4: false
      dhcp6: false
      addresses: [192.168.10.10/24]
      nameservers:
        addresses: [192.168.10.20]

設定を反映します。

chmod 600 /etc/netplan/99_config.yaml
netplan apply

ループバック・グローバル側・ローカル側の IP アドレスが付与されていることを確認します。

ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    inet 127.0.0.1/8 scope host lo
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    inet 59.106.x.x/24 brd 59.106.x.255 scope global eth0
3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    inet 192.168.10.10/24 brd 192.168.10.255 scope global eth1

ポートフォワードの設定

さくらのクラウドサーバ上で秘密鍵・公開鍵を作成し、公開鍵を authorized_keys に保存します。

ssh ubuntu@59.106.x.x
ssh-keygen -t ed25519
echo "公開鍵の内容" >> ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys

AWS の EC2 サーバ上の hosts ファイルに下記レコードを追加します。

/etc/hosts
127.0.0.1 s3.isk01.sakurastorage.jp

AWS の EC2 サーバ上に秘密鍵を key.pem として保存後、下記コマンドを実行します。
ローカルホストの 443 番ポートにアクセスした際、59.106.x.x 経由で s3.isk01.sakurastorage.jp に接続します。

sudo ssh -fN -L 443:s3.isk01.sakurastorage.jp:443 ubuntu@59.106.x.x -i key.pem

接続確認

さくらのクラウドサーバ上で tcpdump コマンドを実行します。

tcpdump -i any host s3.isk01.sakurastorage.jp

AWS の EC2 サーバ上で下記コマンドを実行します。

aws s3 ls --endpoint-url https://s3.isk01.sakurastorage.jp

An error occurred (InvalidToken) when calling the ListBuckets operation: The provided token is malformed or otherwise invalid.

オブジェクトストレージのエンドポイントへの接続は試みられていますが、さくらのクラウドサーバ上の tcpdump の結果を見ると、インターネット側の NIC を経由した通信になっていました。通信経路は EC2 → さくらのクラウドサーバ → インターネット → オブジェクトストレージとなっています。

# tcpdump -i any host s3.isk01.sakurastorage.jp(一部抜粋・整形)

XX:XX:30.913 eth0  Out IP Test-sv.42624 > 153.120.xx.xx.443: [SYN]
XX:XX:30.931 eth0  In  IP 153.120.xx.xx.443 > Test-sv.42624: [SYN, ACK]
XX:XX:30.931 eth0  Out IP Test-sv.42624 > 153.120.xx.xx.443: [ACK]

XX:XX:30.934 eth0  Out IP Test-sv.42624 > 153.120.xx.xx.443: [PSH, ACK]
XX:XX:30.952 eth0  In  IP 153.120.xx.xx.443 > Test-sv.42624: [ACK]
XX:XX:30.954 eth0  In  IP 153.120.xx.xx.443 > Test-sv.42624: [PSH, ACK]

XX:XX:30.958 eth0  Out IP Test-sv.42624 > 153.120.xx.xx.443: [PSH, ACK]
XX:XX:30.976 eth0  In  IP 153.120.xx.xx.443 > Test-sv.42624: [PSH, ACK]

XX:XX:31.031 eth0  Out IP Test-sv.42624 > 153.120.xx.xx.443: [FIN, ACK]
XX:XX:31.049 eth0  In  IP 153.120.xx.xx.443 > Test-sv.42624: [FIN, ACK]
XX:XX:31.049 eth0  Out IP Test-sv.42624 > 153.120.xx.xx.443: [ACK]

さくらのクラウドサーバ上の hosts ファイルに下記を追加します。S3 のエンドポイント URL にアクセスした際、エンドポイントサービスへ接続されるようになります。

/etc/hosts
192.168.10.20 s3.isk01.sakurastorage.jp

再度、AWS の EC2 サーバから S3 のエンドポイントに接続します。

aws s3 ls --endpoint-url https://s3.isk01.sakurastorage.jp

An error occurred (InvalidToken) when calling the ListBuckets operation: The provided token is malformed or otherwise invalid.

今度はスイッチに接続したローカル側の NIC からの通信となり、エンドポイントサービス経由の接続になりました。

# tcpdump -i any -n host s3.isk01.sakurastorage.jp(一部抜粋・整形)

XX:XX:01.446 eth1  Out IP 192.168.10.10.50956 > 192.168.10.20.443: [SYN]
XX:XX:01.447 eth1  In  IP 192.168.10.20.443 > 192.168.10.10.50956: [SYN, ACK]
XX:XX:01.447 eth1  Out IP 192.168.10.10.50956 > 192.168.10.20.443: [ACK]

XX:XX:01.456 eth1  Out IP 192.168.10.10.50956 > 192.168.10.20.443: [PSH, ACK]
XX:XX:01.456 eth1  In  IP 192.168.10.20.443 > 192.168.10.10.50956: [ACK]
XX:XX:01.494 eth1  In  IP 192.168.10.20.443 > 192.168.10.10.50956: [PSH, ACK]

XX:XX:01.500 eth1  Out IP 192.168.10.10.50956 > 192.168.10.20.443: [PSH, ACK]
XX:XX:01.518 eth1  In  IP 192.168.10.20.443 > 192.168.10.10.50956: [PSH, ACK]

XX:XX:01.524 eth1  Out IP 192.168.10.10.50956 > 192.168.10.20.443: [PSH, ACK]
XX:XX:01.543 eth1  In  IP 192.168.10.20.443 > 192.168.10.10.50956: [PSH, ACK]

なお、認証エラーではなく、単純な IP アドレスの誤りなどで接続できない場合は下記のようなエラーになります。

aws s3 ls --endpoint-url https://s3.isk01.sakurastorage.jp

Could not connect to the endpoint URL: "https://s3.isk01.sakurastorage.jp/"
4
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?