ネットワーク コスト最適化のベスト プラクティス
Google Cloud Japan Team
※この投稿は米国時間 2019 年 12 月 6 日に、Google Cloud blog に投稿されたものの抄訳です。
すべてのクラウドのデプロイメント環境には、データを転送するネットワークが必要です。ネットワークがなければ、猫の動画を視聴したり、自撮りをアップロードしたりすることはできません。マイクロサービス間のやり取りも不可能です。
Google Cloud には、クラウドベースのワークロードとサービスのためにスケーラブルで柔軟なグローバル ネットワークが用意されています。そのネットワークの利用方法が、デプロイの 4 つの重要な側面、つまり、費用、セキュリティ、パフォーマンス、可用性に影響を及ぼします。
信頼性と安全を備えた費用対効果の高いネットワーク アーキテクチャを設計するには、社内に複数のチームを用意して、こうした 4 つの要素に重点を置きながら、優先順位を決める必要があります。今回ご紹介するヒントでは、ネットワーク ソリューションの設計時に考慮すべきいくつかの検討事項を取り上げます。 (ここでは、ネットワーク費用の最適化に的を絞って説明します。Cloud Storage と BigQuery での費用の最適化についてのブログをご覧ください。)
フローの確認
全体的なネットワーク費用戦略の確認でまず行うのは、使用している対象、つまり、Google Cloud Platform(GCP)環境を出入りするトラフィックを把握することです。これは、VPC フローログを利用すると簡単に行えます。VM インスタンスで送受信されたネットワーク フローの記録が保持されます。 各フローログ エントリはネットワーク接続ごとに送受信された送信元 IP、送信先 IP、バイト数などの詳細を記録します。これは、ネットワーク トラフィックの把握に必要な情報です。こうしたログは Stackdriver Logging で収集されます。ログを BigQuery にエクスポートすると、傾向を可視化できます。VPC フローログのユースケースとしては、ネットワークのモニタリング、フォレンジック、リアルタイム セキュリティ分析、そして今回の目的である費用の最適化などがあります。
ネットワーク費用の最適化について言えば、VPC フローログで最も関連性の高い情報は次のとおりです。
リージョンとゾーンの間のトラフィック
インターネットにおける特定の国へのトラフィック
トラフィック使用量が特に多いプロセス
VPC フローログを有効にする方法について、こちらで詳細な手順をご紹介します。
リージョンによる費用の違い
VPC フローログから得られた情報は、既存のネットワーク費用について削減できる額を判断するのに役立ちます。たとえば、地理位置情報は、費用を最適化して設計する際に考慮すべき重要な要素です。すべてのネットワーク料金が均等に発生するわけではありません。リージョンが異なるとネットワーク費用も変わります。VPC フローログだけでなく、最近リリースされた Network Intelligence Center を利用することもできます。これはネットワークのモニタリング、検証、最適化のプラットフォームであり、リージョンと地理位置の間で使用されているネットワーク帯域幅を確認できます。お客様や GCP 環境の他の内部サービスに世界中でデータを転送する場合、リージョン全体のトラフィック パターンをドリルダウンして把握できることが重要です。
インターネットにコンテンツを提供するウェブサーバーのグループなど、一般的なインターネットの下り料金の場合、サーバーが配置されているリージョンによって料金が異なることがあります。たとえば GB あたりの料金を比較すると、us-central1 は asia-southeast1 よりも低価格です。別の例として、GCP リージョン間で流れるトラフィックが挙げられます。GCP リージョンはインターネットの下りではない場合でも、リージョンの場所によって大きく異なることがあります。たとえば、asia-south1(インド)と asia-east1(台湾)の間でデータを同期する費用は、us-east1(サウスカロライナ)と us-west1(オレゴン)の間でトラフィックを同期する費用の 5 倍です。
リージョンに関する検討事項に加えて、ワークロードが属するゾーンも考慮してください。可用性の要件に応じて、ゾーン内のネットワーク トラフィックを無料で使用するように設計できる可能性があります。この無料利用のメリットが大きいことは、誰の目にも明らかです。同じリージョンまたはゾーンに配置されているものの、パブリック外部 IP アドレスを使って通信している VM について考えてみてください。内部 IP アドレスを使用して通信するように構成することで、外部 IP アドレスを使用して通信するトラフィックに対する費用を削減できます。
実現できる可能性のあるネットワーク費用の削減と、シングルゾーン アーキテクチャの可用性への影響を比較検討する必要があります。シングルゾーンのみへのデプロイは、高可用性を必要とするワークロードにはおすすめしませんが、特定のサービスで同じゾーン内の VPC ネットワークを使用することが適切な場合もあります。例としては、費用が高いリージョン(アジア)ではシングルゾーン アプローチを使用し、費用が低い北米ではマルチゾーンやマルチリージョン アーキテクチャを使用することが挙げられます。
標準的な月のネットワーク費用が決まったら、費用を適切に割り当てるための各種のアプローチをいくつか検討してみましょう。アプリケーションをユーザーのニーズに合わせるためにソリューションを再設計するお客様もいれば、トラフィック量とレイテンシを削減するために Cloud CDN を使用するお客様もいます。CDN は低コストなため、コンテンツ提供時においてそのメリットを実感されている方もおられるでしょう。どちらの方法も、費用削減とパフォーマンス向上を両立できる実用的な選択肢です。
VPN を使用するべきか
全体的なネットワーク費用の確認で次に検討するのは、転送バイト数の合計です。VPC フローログを使用すると、環境内で「トラフィック使用量が特に多いプロセス」を確認できます。大量のデータを push する場合は、利用できる割引を活用するようにします。 多くのお客様は日頃から、大量のデータをオンプレミス環境から GCP に push しています。そうしたアップロードの手段として、VPN の使用や、(SSL で暗号化されたトラフィックの)インターネットを介した直接接続が利用されています。また、データベースを専用のオンプレミス ハードウェア上で実行し、フロントエンド アプリケーションでのリクエスト処理は GCP で行われている場合もあり、お客様ごとに実装方法は異なります。お客様の環境が上記の事例と同様な場合は、Dedicated Interconnect か Partner Interconnect の利用をご検討ください。大量のデータ(テラバイトやペタバイトを想定)を常に push する場合、パブリック インターネットを通過するトラフィックや VPN を使用するトラフィックにかかわる費用と比べて、専用接続コストのほうが安くなる可能性があります。
Interconnect を選択する際に確認すべきアーキテクチャ上の検討事項がいくつかあります。詳しくは、こちらをご覧ください。
ネットワーク階層を利用したネットワークの最適化
Google Cloud の大きな特長の 1 つは、Google のプレミアム ネットワーク バックボーンにアクセスできることです。これはすべてのサービスにおいてデフォルトで使用されます。ただし、このようなパフォーマンスと低レイテンシはすべてのサービスに必要なわけではありません。たとえば、日次販売レポートの配信は世界中で即時入手できなくても構いません。パフォーマンスと費用のトレードオフが必要なサービスの場合は、Network Service Tiers のご利用をおすすめします。
スタンダード階層かプレミアム階層を選択すると、サービス間で適切な接続を割り当て、アプリケーションのニーズに合わせてネットワークを細かく調整できるほか、レイテンシの要件が厳しくないサービス(SLA が設定されていないサービスなど)において、コスト削減を図れる場合があります。
料金面でのメリットのためにスタンダード階層を利用する場合、いくつかの制約があります。おおまかに言うと、これらの制約にはパブリック インターネットを通過するトラフィックだけでなく、HTTP(S)、SSL プロキシ、TCP プロキシ負荷分散、Cloud CDN の使用に関するコンプライアンス ニーズが含まれます。詳細については、こちらをご覧ください。いくつかの推奨事項を確認したら、チームと協力してサービスを見直し、低価格なスタンダード階層を利用して料金面でのメリットを活かしながらも外部向けサービスのパフォーマンスへの影響を抑えられるか判断できます。
無駄がなければ不足もない
上記のトピックは、ネットワーク費用を見直す際に活用できる大きな特長の一部です。ただし、基本的には、クラウドの大きなメリットの 1 つである従量制をご利用ください。この点を考慮し、GCP への投資を最大限にご活用いただけるように、以下を確認することをおすすめします。
ログ生成 - 各種サービス向け。VPC フローログ、ファイアウォール ルール ロギング、NAT ロギングなど。可能な場合、各ログを有効にしてカスタマイズし、費用を削減します。
エンタープライズ向け、または大容量をご使用のお客様向けのプライベート アクセス - 可能な場合、限定公開の Google アクセスを利用して費用を削減し、セキュリティ体制を改善します。
外部 IP アドレス - 2020 年以降、無料枠にあてはまらない外部 IP アドレスには若干費用が発生するようになります。ただし、一般的なセキュリティのベスト プラクティスとして、適切な場合は内部 IP アドレスを使用することをおすすめします。内部 IP に移行する方法については、プライベート VM のインターネット接続の構築や Google Kubernetes Engine での限定公開クラスタの設定に関するガイドをご覧ください。
上記を確認すると、設計における無駄な出費をなくし、クラウドベースのソリューションを十分に活用することができます。
地道にパケットの費用を節約することによる大きな効果
パフォーマンス、可用性、セキュリティと費用との間でバランスを取ることは簡単なことではなく、多くの場合、複数のチームによるコラボレーションが必要です。Google は、検討すべき多くのアプローチがあると考えています。通常、費用の最適化は 1 回限りの確認というより、アプリケーション チームの原則とすべきものです。この投稿がネットワーク設計を見直す際の参考になることを願っています。Google Cloud のネットワーキング ポートフォリオについて詳しくは、こちらをクリックしてください。費用の最適化の詳細については、Cloud Storage や BigQuery の費用の最適化に関するブログをご覧ください。
- by Andrew Sallawaym, Google プロフェッショナル サービス担当戦略的クラウド エンジニア