Egress IP を固定する目的
Cato クラウド経由でインターネットにアクセスする際、そのアクセス元IPアドレス (Egress IP) は不定であり、PoP ごとに用意されたIPアドレス範囲の中のものが利用されます。Cato クラウドで利用されるIPアドレス範囲は Production PoP Guide のページで公表されており、PoP のロケーションごとにどのIPアドレス範囲が利用されるか細かく記載されています。
一般的なインターネットアクセスにおいては Egress IP が不定であっても困ることはほとんどありません。しかし、アクセス先のサービスやサーバでアクセス元IPアドレス制限を行おうとすると、次のような課題が出てきます。
- Cato クラウドで利用されるIPアドレス範囲は不定期に追加・変更されるため、その対応が必要となる
- 共有のIPアドレス範囲での許可設定は、アクセス先のサービスによっては受け入れてもらえない
Cato クラウドのユーザは世界中で増加していますので、その増加に対応するために Cato クラウドのIPアドレスは不定期に追加・変更されており、日本の東京や大阪にある PoP のIPアドレスも年に何度か追加されています。新しくIPアドレスが追加されるとIPアドレス制限に引っ掛かってアクセスできないという問題が発生してしまいますので、Cato クラウドのアップデート情報を随時ウォッチし、IPアドレスの追加・変更のアナウンスがあればIPアドレス制限の設定も変更するといった運用上の対応が必要となってきます。これが1つ目の課題です。
また、2つ目の課題のように、アクセス先のサービスによっては Cato クラウドで用意されたIPアドレス範囲を指定した許可設定を受け入れてもらえないということもあります。特に、サービス事業者がマルチテナントの SaaS を提供し、かつIPアドレス制限をネットワークレベルで実現している場合、Cato クラウドのIPアドレス範囲は複数の利用者で共有利用されるものであるため、その範囲を許可するとサービス事業者の顧客以外からのアクセスも許可することになってしまいます。そのため、そのような許可設定を認めてもらえない可能性があります。
こういった課題を解決するために、Egress IP を固定する機能が用意されています。Egress IP を固定にする目的は「アクセス元のIPアドレス制限を行っているインターネット上のサービスにアクセスできるようにする」ということに尽きます。
Egress IP を固定にする方法は以前のブログ記事でも解説しており、CMA 上で比較的簡単に設定できます。
Egress IP を固定することで生じる課題
Egress IP を固定にすることで新たな課題も生じてきます。その中でも実際によく発生しうる課題を2つ挙げてみます。
通信が遅くなることがある
Egress IP を固定するには IP Allocation 機能を用いて自組織専有のIPアドレスを確保する必要がありますが、このIPアドレスは必ず特定の PoP に紐づけられます。そのため、Egress IP を固定した通信は、そのIPアドレスが紐づけられた PoP からインターネットにアクセスすることになり、その結果として通信が遅くなってしまうことがあります。
例として、ここでは東京にある PoP でIPアドレスを確保したとします。西日本に位置する拠点やリモートアクセスユーザはおそらく大阪にある PoP に接続されているかと思いますが、拠点やユーザの通信は大阪の PoP に送信されたあと、Cato クラウドのバックボーンネットワークを通じて東京の PoP に転送され、インターネット上の Web サービスに向けて送信されていきます。インターネットからの戻りの通信は、まず東京の PoP に戻ってきて、そこから大阪の PoP に転送された後、拠点やユーザの場所に戻っていくことになります。
これにより、インターネット上のサービスまでの物理的・論理的な距離が長くなって通信が遅くなってしまうことがあります。東京と大阪の間の通信は高速なので多少遅くなっても気付かないかもしれませんが、これが日本と海外との間で行われると通信の遅さが顕著に表れてきます。
例えば、アメリカに出張した社員がアメリカの Web サービスにアクセスするケースを考えてみます。社員の PC はアメリカのいずれかの PoP に接続されているはずです。Egress IP を固定しない場合、社員の PC が接続されたアメリカの PoP から Web サービスにアクセスし、アメリカ国内に閉じた通信なので比較的高速に行えます。一方、東京の PoP で確保したIPアドレスで Egress IP を固定した場合、通信は Cato クラウドのバックボーンネットワークでアメリカから東京に送られた後、またインターネットで東京からアメリカに送られることになり、通信ごとに日米間を2往復するため体感的にも非常に遅く感じることになります。
海外にオフィスを構えているお客様や、頻繁に海外出張を行う社員がいるお客様の場合、海外のその地域にある PoP でもIPアドレスを確保して利用することを推奨します。複数のIPアドレスを利用するようにしていると、拠点やユーザが接続された PoP に最も近い PoP にあるIPアドレスが Egress IP として利用されますので、通信が遅くなる課題を緩和できます。
PoP 障害時にインターネットにアクセスできなくなる
Egress IP を固定していしていると、Cato クラウドの PoP で障害が発生したときに問題が生じることもあります。
PoP で障害が発生すると、その PoP に接続されていた Socket や Cato Client は別の正常な PoP に自動で再接続してくれますので、基本的には Cato クラウドが利用できなくなってしまうということはありません。しかし、Egress IP を固定にするためのIPアドレスは PoP に紐づくものであるため、その PoP で障害が発生すると単に Egress IP を固定にできなくなるというだけでなく、そのIPアドレスを利用するように設定したインターネットアクセスそのものが行えなくなってしまいます。もちろん、Egress IP を固定にしていなければ、障害が発生していない PoP 経由でインターネットにアクセスできます。
この課題は、複数の異なる地域にある PoP でIPアドレスを確保し、複数のIPアドレスで Egress IP を固定にすることでほぼ解決できます。複数の PoP で同時に障害が発生する可能性は低く、単一の PoP で障害が発生したとしても正常に動作している PoP にあるIPアドレスが利用されてインターネットにアクセスできるようになります。
日本国内のお客様の場合、東京と大阪の両方の PoP でIPアドレスを確保して用いるようにしておけば、大規模な障害への備えにもなるかと思います。
Egress IP 固定のあるべき設定
前述の課題をまとめると、Egress IP を固定にする場合は次の2つを意識して設定することを推奨します。
- 複数の異なる地域にある PoP でIPアドレスを確保して利用する
- 海外からも頻繁に利用する場合、その地域にある PoP でもIPアドレスを確保して利用する
ただし、そもそも前述の課題は Egress IP を固定した場合に発生するものであり、固定していない場合は基本的には発生しません。(正確には、Egress IP を固定していなくてもインターネットに出ていく際の PoP を固定している場合にも発生しますが、これは本記事の趣旨とズレるため説明を割愛します。)
Egress IP を固定にする目的は初めに述べたように「アクセス元のIPアドレス制限を行っているインターネット上のサービスにアクセスできるようにする」ことです。IPアドレス制限が行われていないサービスやサイトへのアクセスでは Egress IP を固定にする必要がなく、固定しなければ通信が遅くなったり障害によって利用できなくなったりする課題に巻き込まれることなく、安心して Cato クラウドを利用できます。そのため、
- [Network Rule] の設定にて対象のアプリケーションやカテゴリを Any にせず、アクセス先のアプリケーションやFQDNなどを必要な分だけ指定する
ということも強く推奨します。
少し違った見方をすると、本来 Egress IP を固定にする必要がない通信も固定にしていると、その分だけ無駄な通信が生まれてエネルギー資源を消費してしまうという考え方もできます。また、Cato クラウドとしても、バックボーンネットワークを流れるトラフィックが増加するとそれに対応するためにネットワークを増強する必要があり、その結果として利用料金の上昇に繋がる可能性もあります。そういった観点からも、必要な通信だけ Egress IP を固定にするようにしたほうが良いですね。