💭

「サーバーレス VPC アクセス コネクタ」 から 「ダイレクト VPC」へ置き換えてみました

2023/10/02に公開

はじめに

GCP Cloud Run の新機能、ダイレクト VPC(Direct VPC egress for Cloud Run)が2023年8月にプレビューとなりました。
ダイレクト VPCは、Cloud Run サービスが VPC ネットワークに直接接続できるようにする機能です。これにより、Cloud Run サービスは、サーバーレス VPC アクセス コネクタを使用せずに、VPC ネットワーク内のリソースにアクセスできます。メリットとして費用の削減などが挙げられます。

今回は費用の削減を動機に、既存の「サーバーレス VPC アクセス コネクタ」 から 「ダイレクト VPC」へ置き換えを行い、機能や注意事項などを確認してみました。

「サーバーレス VPC アクセス コネクタ」 から 「ダイレクト VPC」への置き換え

ダイレクト VPC を使用するには、次の手順を実行します。非常にシンプルです。

  1. Cloud Run サービスで、ダイレクト VPC を有効にします。(VPCに直接トラフィックを送信にチェック)
  2. Cloud Run サービスが接続する VPC ネットワークを指定します。(今回は default を選択)
  3. Cloud Run サービスに割り当てる IP アドレス範囲を指定します。(今回はdefault のIPアドレス範囲)

サーバーレス VPC アクセス コネクタ変更前:サーバーレス VPC アクセス コネクタ

ダイレクト VPC変更後:ダイレクト VPC

サーバーレス VPC アクセス コネクタ と比べてみた所感

先ずは所感を述べます。
機能や注意事項などは後述しますが、きちんとした比較・検証は暫く使用した後、改めて行いたいと思います。

構成の違い

ダイレクト VPC とすることで以下の図のようにネットワークの構成が変更となりました。これにより、コネクタで利用していたVMインスタンスが無くなりました。
ネットワーク内のリソースへのアクセスは、VPCネットワークにあるダイレクト VPC 専用のサブネット領域を経由して行われるようになります。

サーバーレス VPC アクセス コネクタ変更前:サーバーレス VPC アクセス コネクタ

ダイレクト VPC変更後:ダイレクト VPC

パフォーマンスや柔軟性

サーバーレス VPC アクセス コネクタは以下のような設定としていました。ダイレクト VPC とすることでこのような設定を行うことなく、簡単にVPCネットワークへ繋ぐことができました。パフォーマンスも損なうことなく動作しており、素晴らしいと思います。

  • サーバーレス VPC アクセス コネクタ
    • 最小インスタンス数: 2
    • 最大インスタンス数: 3
    • マシンタイプ: e2-micro

費用

サーバーレス VPC アクセス コネクタは毎月20ドル程度の費用が発生していました。ダイレクト VPC とすることで費用が抑えられていることに期待したいと思います。

ダイレクト VPC のメリット

ダイレクト VPC の主なメリットは、次のとおりです。

パフォーマンスの向上

ダイレクト VPC は、サーバーレス VPC アクセス コネクタを使用するよりもパフォーマンスが向上します。これは、Cloud Run サービスが VPC ネットワークに直接接続するため、ネットワークを経由して接続する必要がなくなるためです。

費用の削減

ダイレクト VPC を使用すると、インスタンス費用を削減できます。これは、Cloud Run サービスが VPC ネットワークに直接接続するため、サーバーレス VPC アクセス コネクタを使用する場合に発生する追加のインスタンス費用が発生しなくなるためです。

柔軟性の向上

ダイレクト VPC を使用すると、Cloud Run サービスは VPC ネットワーク内の任意のリソースにアクセスできます。これにより、Cloud Run サービスをより柔軟に使用できます。

サーバーレス VPC アクセス コネクタ との違い

サーバーレス VPC アクセス コネクタとダイレクト VPC の主な違いは、次のとおりです。

機能 サーバーレス VPC アクセス コネクタ ダイレクト VPC
接続方法 プロキシ経由 直接接続
パフォーマンス 低い 高い
費用 追加のインスタンス費用が発生する インスタンス費用は発生しない
柔軟性 接続できる VPC ネットワークが 1 つに制限される 任意の VPC ネットワークに接続できる

サーバーレス VPC アクセス コネクタは、Cloud Run サービスが VPC ネットワークに接続するための従来の方法です。サーバーレス VPC アクセス コネクタは、VPC ネットワーク内に専用のコネクタインスタンスを作成し、Cloud Run サービスはコネクタインスタンスを介して VPC ネットワークに接続します。これにより、Cloud Run サービスは VPC ネットワーク内のリソースにアクセスできますが、プロキシ経由で接続するため、パフォーマンスが低下する可能性があります。また、追加のインスタンス費用が発生します。

ダイレクト VPC の注意事項

下記のような幾つかの制限があります。詳細は参考にあるリンクを確認ください。

IP アドレスの割り振り

Cloud Run は負荷状況によってインスタンスが増減しますが、追加の IP アドレスを割り振ることができない場合、新しい IP アドレスを使用できるようになるまでサービス インスタンスやジョブタスクを開始できません。

Cloud NAT が使用できない

Cloud NAT を経由して外部へアクセスはできません。

大阪リージョン非対応

現在時点では東京リージョンは対応していますが、大阪リージョンは対応していません。

一部サービス がサポート外

ファイアウォール ルールのロギング、VPC フローログ、Packet Mirroring などが現時点ではサポートされていません。

さいごに

今回は、GCP Cloud Run の新しい機能である「ダイレクト VPC」の概要と、既存の「サーバーレス VPC アクセス コネクタ」から「ダイレクト VPC」へ置き換えた場合のメリットや注意事項について記載しました。参考になれば幸いです。

参考

レスキューナウテックブログ

Discussion