AWSを使うにあたって、避けて通れないのが転送量課金です。1GB単位の従量課金であるため、これが原因で大変なことになった人もいるのではないかと思います(実際には1バイト単位で計算されます)。
EC2も例外ではありません。米国リージョンで、現時点で0.09USD/GBの転送料金がかかります。1TBで90USDとなり、それなりに高価です。
Lightsailは転送料金が格安
VPSサービス的な位置づけでリリースされているLightsailというサービスがあります。これは、T2インスタンス、SSDブロックストレージおよび一定の転送量をパッケージにしたお得なサービスとなっています。
細かい制御は効かないのですが、なんとそれなりに多くの転送量が含まれているため、結果として安価に通信することができます。
これはLightsailおよびT2インスタンスの仕様であり、故障や不具合ではありません。詳細は割愛させていただきます。
最も小さなインスタンスである月額3.5USDのもので、月間1TBの転送量が含まれています。なお、Lightsailでは下り転送も転送量にカウントされることに注意してください。
EC2とLightsailの通信コストの価格差について
Lightsailでは、デフォルトVPCに限りVPCピアリングを接続することが可能です。VPCピアリングを接続した場合、プライベートIPアドレスによる通信が可能となります。
VPCピアリングを使用した場合の通信コストは、双方向で0.01USD/GBです。そのため、EC2から直接インターネットに出ていく(0.09USD/GB)よりも安価に通信ができます。
draw.ioを使用して簡易的に作成してみました。もし間違っていたら申し訳ありません。念のため、実際に運用する前にドキュメントや価格表を確認してください。
VPCピアリングを使用するため、同一のアベイラビリティゾーンにインスタンスがあっても双方向に0.01USD/GBの転送料金がかかります。
このような運用ができるため、EC2から直接出ていくよりもLightsailを経由させたほうが安くなる場合があります。
VPCピアリングを行うには
EC2をはじめとするAWS内の既存のリソースとVPCを接続したい場合、Lightsail管理画面→Account→Account→Advanced→VPC Peeringから、使用するリージョンのEnable VPC peeringにチェックを入れます。
チェックを入れると、Lightsailで使用されているVPCがそのリージョンのデフォルトVPCと接続されます。
損益分岐点について
双方向に等量のデータが転送されると仮定します。この場合、VPCピアリングを経由する通信コストは0.02USD/GBとなります。
EC2から直接通信する場合は、0.09USD/GBかかります。1TBの転送量が含まれるLightsailインスタンスは、月額3.5USDかかります。
この場合、損益分岐点に関しては次の方程式を解くことで求められます。
3.5+0.02x=0.09x
従って、月間50GBを超えるデータ転送が発生する場合はLightsailを経由させるとお得になります。
実際の運用について
Lightsailをリバースプロキシ的に使うという手段が考えられると思いますが、私は遅延や多段リバースプロキシによる想定外の不具合を避けるために採用しませんでした。
代わりに、オンプレミスのサーバーに直接送信していたバックアップファイルを、いったんLightsailインスタンスのブロックストレージに保存するように構成しました。こうすることで、AWSから取り出すときのデータ通信料にLightsailのバンドルを利用することができ、結果としてデータ転送料金を軽減できます。
オンプレミスに取り出すとき、およびバックアップを受け取るときに関してはSFTP/SCPを使用することとしました。
出典
この方法は、次のRedditに記載されています。
https://www.reddit.com/r/aws/comments/6y5q2e/using_aws_lightsail_bandwidth_with_ec2_instance/ – Using AWS Lightsail bandwidth with EC2 instance.