オンプレミスからDirect Connect経由でWinSCPを利用しS3に接続したかったから検証した

オンプレミスからDirect Connect経由でWinSCPを利用しS3に接続したかったから検証した

2026.03.05

はーいこんにちは。
オガワです
詰まったことをちょくちょく記録していこうと思ってるんですけど大体DevelopersIO見たら解決することが多いです。
最近飲み会とサウナ以外の趣味がなくなってきたのが悩みです。
趣味、募集中です。

やりたかったこと

オンプレミスサーバーからDirect Connect経由でS3インターフェースエンドポイントを使い、WinSCPでS3にファイル転送したい。

参考URL

AWS PrivateLink for Amazon S3
VPC ピアリング接続の DNS 解決を有効にする


検証構成

本来やりたい構成図
shapes-1772688686241

個人の検証環境ではDirectConnectもオンプレミス環境も使えないため、以下の代替構成で検証
shapes-1772688742780

前提条件

  • IGWをアタッチしていないVPCを用意し、WindowsEC2を起動していること
  • EC2にSSMフリートマネージャーを利用し、RDP接続できること
  • EC2にWinSCPをインストールしていること

結論&まとめ

できます。
詰まりポイントは個人的に2点です。
エンドポイントのDNSの指定とピアリングのDNS設定。

忘れてしまうのでブログ書きました。
以下2点しっかり確認する!

DNS名を使用してリソースにアクセスする場合は、*適切な値に置き換えてください。

DNS 解決が無効 (デフォルト)


作成するAWSリソース一覧

リソース 用途 備考
VPC-A EC2配置(オンプレ想定) IGWなし
VPC-B S3エンドポイント配置 IGWなし
サブネット(VPC-A) EC2配置用 -
サブネット(VPC-B) エンドポイント配置用 -
Windows EC2 WinSCP接続元(オンプレ想定) VPC-Aに配置
VPCピアリング接続 VPC-A/VPC-B間の接続 DXの代替
ルートテーブル(VPC-A) VPC-B向きのルート追加 -
ルートテーブル(VPC-B) VPC-A向きのルート追加 -
セキュリティグループ エンドポイント用 HTTPS:443許可
S3インターフェースエンドポイント PrivateLink経由でS3接続 VPC-Bに配置

AWS側の構築ポイント

ルートテーブルの設定

VPC-A(EC2側)

送信先 ターゲット
VPC-BのCIDR(例:192.168.0.0/16) pcx-xxxxxxxx(ピアリング)

VPC-B(エンドポイント側)

送信先 ターゲット
VPC-AのCIDR(例:10.0.0.0/16) pcx-xxxxxxxx(ピアリング)

S3インターフェースエンドポイントのセキュリティグループ

タイプ プロトコル ポート ソース
HTTPS TCP 443 VPC-AのCIDR(例:10.0.0.0/16)

VPCピアリングのDNS設定

まず1つ目の躓き
ここの設定漏れで「なんか繋がらへん。」っていう状況になりました。

VPC → ピアリング接続 → 対象ピアリング → アクション → DNS設定を編集

設定項目
リクエスターDNS解決 有効
アクセプターDNS解決 有効

スクリーンショット 2026-03-05 14.39.24

デフォルトOFF。。ONにしないとVPC-AのEC2からエンドポイントのDNS名が解決できず接続できない。Oh
参考URLにも記載していますが一次情報はこちら。
VPC ピアリング接続の DNS 解決を有効にする


WinSCPの設定

項目
転送プロトコル Amazon S3
ホスト名 bucket.vpce-xxxxxxxxxxxxxxxxx-xxxxxxxx.s3.ap-northeast-1.vpce.amazonaws.com
アクセスキー/シークレットキー IAMユーザーの認証情報

ホスト名の確認方法

VPC → エンドポイント → 対象エンドポイント → 詳細タブ → DNS名

コンソールには以下のような形式でDNS名が表示される。

*.vpce-0f278e982db09126f-97v3x47e.s3.ap-northeast-1.vpce.amazonaws.com

この * の部分は**用途に応じて置き換える必要がある。
ここでも躓いた。
「エンドポイントのDNSを指定すればいける」と思ってたんですよね。
それだけではダメでしたね。Oh
僕はコンソールで表示されているDNSをコピペしてました。
参考URLにも記載していますが、公式URLはこちらです。

WinSCPでバケットにファイル転送したい場合は bucket を使う。
スクリーンショット 2026-03-05 14.50.00

# WinSCPのホスト名に指定する実際のDNS名
bucket.vpce-0f278e982db09126f-97v3x47e.s3.ap-northeast-1.vpce.amazonaws.com

2度目ですけど* の部分をそのままにしたり、bucket. なしで指定すると接続できないので注意


ブログ書く習慣がないので最後の締めくくり方がわからないんですけどこんな感じで。足りてないことあったら追記します。
ではまた。

この記事をシェアする

FacebookHatena blogX

関連記事