オンプレ から S3 へのバックアップ
こんにちは、米須です。かなり久々の投稿です(^^;
さて、先日オンプレから S3 へのバックアップ構成を検討する機会があり、転送時間やコスト面の検証をしてみたので、今回はその話をしたいと思います。
構成
検討したのは下記3案です。

サイト間 VPN を経由するのでプライベートなネットワークで通信できます。Gateway 型の VPC エンドポイントの場合、VPC を 跨いで S3 にアクセスすることになるので、プロキシなどを配置する必要があります。

案1と同様、サイト間 VPN を経由するのでプライベートなネットワークで通信できます。案2では VPC エンドポイントが Interface 型なので、プロキシがなくても VPC を跨いで S3 にアクセスできます。

インターネットを経由する場合は直接 S3 へアクセスできるので、AWS に構築するリソースが少なくて済みます。
検証ポイント1)転送時間
今回検証したパターンと検証したかったことは下記の通りです。
【 検証したパターン 】
① 5GB のファイル 1個 を転送
② 5GB のファイル 2個 を並列で転送 (並列にした場合の検証)
③ 160MB のファイル 32個(合計で5GB) を直列で転送(ファイルサイズとファイル数が違う場合の検証)
④ 160MB のファイル 32個(合計で5GB) を4並列に分けて転送 (ファイルサイズ、個数が違う場合の検証)
【 検証したかったこと 】
① 案1や案2ではオンプレと S3 の間に VPC エンドポイントやプロキシがあるが、転送時間に影響がでないか
② ファイルのサイズや数によって転送時間が変わるか
案1:VPN+プロキシ+VPCエンドポイント(Gateway型)
案1の検証結果は下記のとおりとなりました。
パターン | プロキシのインスタンスタイプ | 転送時間 |
---|---|---|
① 5GB × 1 | t3.nano | 8 分 21 秒 |
t3.small | 8 分 16 秒 | |
② 5GB ×2(並列) | t3.nano | 16 分 24 秒 |
t3.small | 16 分 19 秒 | |
③ 160MB × 32(直列) | t3.nano | 11 分 33 秒 |
t3.small | 11 分 29 秒 | |
④ 160MB × 8 × 4並列 | t3.nano | 8 分 7 秒 |
t3.small | 8 分 14 秒 |
プロキシのインスタンスタイプによって転送時間が変わる場合があると AWS サポートから聞いたのでインスタンスタイプが異なるパターンの検証をしてみたのですが、結果としては大きな差は出ませんでした。今回検証した環境の場合、インスタンスタイプより帯域幅がネックだったようです。
一方、① と ③ の結果を比較すると ③ の方が転送時間が長くなっています。よく小さいファイルを大量に転送するとI/Oのオーバーヘッドが掛かって転送時間が長くなると言いますが、この程度のファイルサイズと数でも影響が出るのだろうか。。。
また、③ と ④ の結果を比較すると ④ の方が転送時間が短くなっているので、並列で転送できるなら並列にする方が良さそうです。ただ、① と ② の結果を比較すると ② は並列にしたにも関わらず ① のほぼ2倍の時間になっており、並列化しても転送時間の短縮化には繋がっていないようなので、並列化の効果はファイルサイズ次第かもしれません。
案2:VPN+プロキシ+VPCエンドポイント(Interface型)
案2の検証結果は下記のとおりです。
パターン | 転送時間 |
---|---|
① 5GB × 1 | 8 分 38 秒 |
② 5GB × 2(並列) | 16 分 26 秒 |
④ 160MB × 32(並列) | 8 分 30 秒 |
案1:VPN+プロキシ+VPCエンドポイント(Gateway型)と案2:VPN+プロキシ+VPCエンドポイント(Interface型)を比較しても転送時間に大きな違いはありませんでした。(こちらも帯域幅がネックだった可能性はありますが。。。)
案3:インターネット経由
案3の検証結果は下記の通りでした。
パターン | 転送時間 |
---|---|
① 5GB × 1 | 7 分 58 秒 |
② 5GB × 2(並列) | 15 分 31 秒 |
③ 160MB × 32(並列) | 7 分 51 秒 |
案1:VPN+プロキシ+VPCエンドポイント(Gateway型)並びに案2:VPN+プロキシ+VPCエンドポイント(Interface型)と比較すると、案3:インターネット経由の転送時間は少し短くなっています。転送時間が短くなったのは VPN の影響なのか、経路が変わったせいなのか。。。もう少し検証が必要そうです。
料金
今度は料金面を比較してみます。
東京リージョンで毎日5GBを転送した場合の1か月の利用料金で比較してみました。(転送先の S3 の料金は除いています)
案 | VPN | プロキシ(EC2) | VPCエンドポイント | 合計 |
---|---|---|---|---|
案1 |
35.04 USD ( 0.048 USD/時 x 730 時間/月 = 35.04 USD) |
5.92 USD ( t3.nano EBS:8GB オンデマンドインスタンス) |
0 USD | 40.96 USD |
案2 |
35.04 USD ( 0.048 USD/時 x 730 時間/月 = 35.04 USD) |
(なし) |
11.72 USD (エンドポイントコスト: 0.014 USD / 時 x 730 時間 /月 = 10.22 USD データ処理コスト: 5 GB x 0.0100000000 USD x 30日 = 1.50 USD) |
46.76 USD |
案3 | (なし) | (なし) | (なし) | 0 USD |
案3はリソースが少ないので一番安くなります。
案2 の VPC エンドポイント(Interface型)はデータ処理コストが発生するので、データ量が増えれば増えるほどが利用料金に跳ね返ってきます。プロキシサーバの管理の手間を省くために案2 にするか、コストを抑えることを優先して案1 にするかというところが構成を決めるポイントになりそうです。
さいごに
色々検証してみた割には、あまり参考になる結果は出てこなかったですね(^^;
機会があればもう少し帯域幅の広い環境で検証してみたいと思います。