本日も乙スマートフォン用の表示で見る本日も乙ただの自己満足な備忘録。gateway先日、このようなツイートをしたところ想像以上の反響がありました。10いいねつけばいいかなって思っていたのですが、1,000いいね以上もついてかなり吃驚しています。AWSのネットワーク・データ転送料金がひと目で分かる図を作った。2020年1月30日twitter.comありがたいことにフィードバックをいただきましたし、この図だけでは説明できないことも多くあったので、図の修整と補足についてブログ記事にしました。技術書典8に頒布する「AWSコスト最適化入門」の一部を転載したものです。Privatelinkまとめおことわり2020年1月現在、東京リージョンの料金を載せています。今後料金が変更になる可能性がありますAWS料金表やドキュメント、Blackbeltシリーズの資料を読んで私なりに解釈した部分があります。そのため誤りが含まれるかもしれませんのでご容赦ください。データ転送料金AWSのデータ転送料金はEC2の料金ページに細かに書かれていますが、携帯料金プランのようにとても分かりづらいです。わかりやすく図にしたものが下図になります。Twitterに載せたものを改善しています。3つは最低限おさえてください。細かいことが分からなくても、これを知っておくだけでコストへの意識が変わります。知らないと請求書を見て吃驚することになります。データ転送料金がかからないのは次の場合です。2はPrivatelinkエンドポイント経由で通信した場合はPrivatelinkの料金が別途発生します。同じリージョン、AZにあるEC2、RDS、Redshift、ElastiCacheのインスタンス同士の通信(イン/アウト)同じリージョンにある、S3、DynamoDB、SES、SQS、Kinesis、SNSとEC2との通信(イン/アウト)同じリージョンにある、ロードバランサ(CLB/ALB)とプライベートIPアドレスを用いての通信(イン/アウト)EC2(オリジン)からCloudFrontへの送信(アウト)料金が発生するケースで見落としがちなのは次の場合です。AZが異なるEC2、RDS、Redshift、ElastiCacheのインスタンス同士の通信(イン/アウト)パブリックIPアドレスを付与しているEC2/ELBへの通信(イン/アウト)リージョンが異なるEC2、S3などへの送信(アウト)S3からインターネットへの送信(アウト)CloudFrontからインターネットへの送信(アウト)CloudFrontからオリジンサーバへのデータ転送(イン)可用性を向上させるために複数のAZにEC2を分散させるのがAWSのベストプラクティスですが、AZをまたぐ通信に対して1GBあたり$0.01かかります。同じAZ同士であってもパブリックIPアドレスが付与されているEC2に通信すると受信(イン)でも料金が発生します。4について画像やHTMLファイルなどをS3に配置して公開している場合は、ユーザーからアクセスされるたびにデータ転送料金が発生します。画像ファイルは圧縮や画質を落とすなどしてファイルサイズを減らすとよいです。Serviceを用いてS3からGCSにデータ転送するときも転送料金が発生するので注意が必要です。Socketの場合は、CloudFrontからオリジンサーバへのデータ転送となり、1GBあたり$0.06かかります。AWS(EC2)からAWS外(インターネット)への送信(アウト)の料金はデータ転送料金に応じて1GBあたりの料金がさがります。VPCVPC自体の料金はかかりませんが、VPCに関連するサービスを利用することで料金が発生します。VPCピアリングはトラフィックを暗号化してプライベートIPアドレスでVPC同士を通信できる機能です。VPCピアリング接続によって1GBあたり$0.01かかります。VPN)を「VPN」と表記しています。VPN接続ひとつにつき、1時間あたり$0.048の利用料金がかかります。さきほど説明したデータ転送料金がかかります。ちなみに利用料金が発生するのはVPN接続が「利用可能」状態になっている間で接続不可になっている間は料金が発生しません。Gateway)はVPC、オンプレミスとの接続を簡単にできるサービスです。VPC、AWSアカウント、オンプレミスの接続をひとつのゲートウェイですべてまとめることができます。Connect(専用線サービス)とアタッチすることができ、複数のAWSアカウント、VPCにまたがって通信することも可能です。Gatewayを通過し処理されたデータ量によって料金が決定されます。GatewayにVPCとVPNがアタッチされていて、1GB/月データ処理されたとします。アタッチメントおよびデータ処理量にかかる1ヶ月分の料金は次のとおりです。アタッチメント:$0.07×2×24時間×31日=$104.16データ処理量:$0.02/GB×1GB=$0.02さらにVPN接続ひとつにつき$0.048/時間がかかるため、総額$139.89かかります。Gateway)はフルマネージドのNATゲートウェイです。Gatewayが便利です。Gatewayの料金体系はゲートウェイ利用時間とデータ処理量の2つです。Gatewayを配置し、それぞれ10GBのデータを処理したとします。1ヶ月にかかる料金は次のとおりです。ゲートウェイ時間:$0.062×3×24時間×31日=$138.38データ処理量:$0.062×10GB×3=$1.86さらにインターネットへのデータ転送料金がかかります。$0.114/GB×(30GB-1GB)=$3.30総額$143.54かかります。Gateway料金に加えデータ転送料金が上乗せされます。ゲートウェイ時間料金も十分高いのですが、システム規模がある程度大きくなるとデータ処理料金の方が格段に大きくなっていきます。Gatewayをいかに経由させないか」を考える必要があります。Gatewayを経由した場合はデータ処理料金が発生します。「うちはインターネットへの通信をあまりしないから大丈夫」と思っていてもS3やDynamoDBにアクセスしていたら場合によっては多額の請求が発生する可能性があります。これを防ぐにはゲートウェイタイプのVPCエンドポイントを設定すればよいです。GatewayからVPCエンドポイント経由にすることで料金がかからなくなります。S3、DynamoDBはゲートウェイタイプのVPCエンドポイントなので設定してもデータ通過しても料金はかかりません。他のAWSサービスの場合はPrivatelinkによるインタフェースタイプのVPCエンドポイントを活用するとよいでしょう。Gatewayより安いです。トラフィック送信先がAWSネットワーク以外である場合は、インターネットゲートウェイ経由にできないかを検討してみてください。インターネットゲートウェイ経由だと料金はデータ転送料金のみです。Gatewayを配置せずひとつにするか、EC2インスタンスをNATインスタンスとして置き換えができないか検討してください。Gateway経由にしてしまうと痛い目にあうので、利便性とコストとのバランスをみて活用してください。Privatelink(以下、Privatelink)はAWSリソースへのトラフィックをプライベートで通信できるサービスです。インターネットへの通信が禁じられているサービス要件であってもAWSリソースへの通信をしたいときに有効です。Privatelinkによって作成されるVPCエンドポイントをインタフェースタイプVPCエンドポイントと呼ばれます。インタフェースタイプVPCエンドポイントはプライベートIPアドレスが付与されたENIがサブネットに作成され、ENI経由で通信します。Tableで送信先を指定するゲートウェイタイプとは同じVPCエンドポイントでもタイプが異なります。ゲートウェイタイプVPCエンドポイントは作成・利用は無料ですが、インタフェースタイプは時間料金と処理データ量による料金が発生します。APIを叩くケースではPrivatelinkした方がコストをおさえることができます。まとめ本章はAWSでもっとも分かりづらいと思われるネットワーク・データ転送の料金についてまとめました。図にするだけでも相当に複雑でAWS初心者は諦めてそのままにしてしまっている人もいるかもしれません。Plans、S3などのAWSサービスのコスト最適化ポイントを解説します。Well-Architectedフレームワークに則ったコスト最適化についても書く予定です。チェックしてみてください!宣伝です。「AWSコスト最適化入門」という本を出します。Well-Architectedフレームワークに則ったコスト最適化についても書く予定です。月別アーカイブはてなブログをはじめよう!ohsawa0515さんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。