F5とNGINXの組み合わせで、サービス公開をよりセキュアに。Kubernetes Ingress Controllerを活用してセキュリティ、可用性、パフォーマンスを実現

2019年8月19日(月)
高橋 正和

7月22日~23日、東京・虎ノ門ヒルズフォーラムにて、クラウド技術に関するイベント「CloudNative Days Tokyo 2019 / OpenStack Days Tokyo 2019」が開催された(共催)。

本イベントのF5ネットワークスジャパン合同会社による伊藤悠紀夫氏と鈴木孝彰氏のセッション「Kubernetes Ingress Controllerにセキュリティを実装してみた」では、BIG-IPとNGINXの組み合わせなど、NGINX Ingress Controllerについて解説した。

BIG-IPとNGINXを組み合わせ、BIG-IPをKubernetesから設定

F5は2019年3月にNGINXを買収することを発表。5月に買収手続きが完了した。その背景として、F5ネットワークスジャパン合同会社 ソリューションアーキテクトの伊藤悠紀雄氏は、アプリケーションを取り囲む環境の変化について言及。アプリケーションはクラウドへシフトし、CI/CDツールチェインによる自動化が進み、コンテナ化やAPI化などテクノロジが変化している。

それにより、アプリケーションのリリースのスピード・頻度の違いから、開発と運用の隔たりが発生しているという。開発は展開スピードを重視したいと思い、運用は安定性を重視したいと思うというわけだ。「この隔たりをなくすために、F5とNGINXが一緒になった」と伊藤氏。NGINXのアプリケーションと、F5のセキュリティを組み合わせ、インフラとアプリケーションの架け橋となると語った。

F5ネットワークスジャパン合同会社 ソリューションアーキテクトの伊藤悠紀夫氏

NGINXとF5を組み合わせ、インフラとアプリケーションの架け橋に

両者の組み合わせによりできることとして、伊藤氏は、既存のアプリケーション環境を強化する「ADC拡張」、さまざまなクラウドにまたがるスケーラブルな「マルチクラウドADC」、End-to-Endの「API管理」、柔軟性の高いスケーラブルな「Kubernetesインテグレーション」の4つを挙げた。

NGINXとF5の組み合わせでできること

このうち、伊藤氏は、4つめのKubernetesインテグレーションとして「Kubernetes Ingress Controller」での利用について解説した。

Kubernetes Ingress Controllerは、Kubernetes上のサービスを外部公開するためのエンドポイントとなるL7ロードバランサーだ。ここでNGINXなどが使われるが、例えばAWSで言うと外部から見てALBが最初のエンドポイントとなり、Kubernetes Ingress Controllerはその内側のものとなる。

外側のエンドポイントと内側のエンドポイント

サービスを外部公開するときに気をつけなければいけないのが、多要素認証やSSL、ユーザー環境に即した対応などが必要なセキュリティだ。そのために、伊藤氏は外側のエンドポイントにBIG-IP VE(仮想アプライアンス)を利用する構成例を紹介。この構成では、BIG-IP VEがセキュリティゲートウェイとしても働く。

外側のエンドポイントをBIG-IPに

そこからさらに進むと、BIG-IP VEの設定もKubernetes環境から行いたいということになる。これについて伊藤氏は、CI/CDツールを使ってkubectlから設定を実行する例をデモしてみせた。このデモは、JSON形式の設定をREST APIによりBIG-IPに与えるCI/CDパイプラインをkubectlから実行するものだ。伊藤氏は、BIG-IPなら外部のクライアントのIPアドレスをサービスに伝えることができることも付け加えた。

JSON形式の設定。これをBIG-IPに与える

kubectlから設定変更を実行

BIG-IPに設定が反映された

伊藤氏はまとめとして、モノリシックなアプリからマイクロサービスまで、さまざまな実行環境において一貫した「セキュリティ」「可用性」「パフォーマンス」をF5とNGINXで実現すると語った。

NGINX Ingress Controllerの最新情報

続いて、F5ネットワークスジャパン合同会社 テクニカルソリューションズアーキテクトの鈴木孝彰氏が、「NGINX Ingress Controller」の最新情報を紹介した。

F5ネットワークスジャパン合同会社 テクニカルソリューションズアーキテクトの鈴木孝彰氏

まず、鈴木氏はNGINX Ingress Controllerには、大きく分けてコミュニティバージョン、公式NGINX、公式NGINX Plusの3種類があると説明。この3種類のバージョンの機能と対応を比較したうえで、パブリッククラウド上で利用する場合の構成や設定変更の例を紹介した。

3種類のNGINX Ingress Controllerの比較

NGINX Ingress Controllerの設定変更

最新版のNGINX Ingress Controller v1.5では「-enable-custom-resources」の指定により、Custom Resource(プレビュー機能)による設定ができるようになったという。「例えばば、GETとPOSTで振り分けたり、ブルーグリーンデプロイメントをしたり、Cookieで振り分けたりといった、Ingressでサポートされていないことができる」と鈴木氏。

NGINX Ingress Controller v1.5ではCustom Resourceに対応

Cookieで振り分ける例

続いて紹介したのは監視機能だ。PrometheusやOpenTracingと連携できるようになったという。

Kubernetes環境での利用(Prometheus連携)

ここで鈴木氏はデモを実演。YAMLのIngress ControllerのオプションでPrometheus連携とカスタムリソースを有効にし、kubectl scaleでPodを増やすところやPrometheusでの表示などを見せた。

YAMLのIngress ControllerのオプションでPrometheus連携とカスタムリソースを有効に

kubectl scaleでPodを増やす

AMLのIngress ControllerオプションからPrometheusと連携

鈴木氏は最後に、改めてNGINXがF5からリリースされるようになったことに触れ、「NGINXをお使いの方や、BIG-IPをお使いの方は、今後ともぜひ注目していただければ」と語った。

* * *

F5によるNGINXの買収は、発表当時は驚きをもって受け取られた。そうした両者のソリューションを組み合わせたKubernetesインテグレーションというユースケースを含め、NGINXによるKubernetes Ingress Controllerの最新情報が解説されたセッションだった。

フリーランスのライター&編集者。IT系の書籍編集、雑誌編集、Web媒体記者などを経てフリーに。現在、「クラウドWatch」などのWeb媒体や雑誌などに幅広く執筆している。なお、同姓同名の方も多いのでご注意。

連載バックナンバー

Think ITメルマガ会員登録受付中

Think ITでは、技術情報が詰まったメールマガジン「Think IT Weekly」の配信サービスを提供しています。メルマガ会員登録を済ませれば、メルマガだけでなく、さまざまな限定特典を入手できるようになります。

Think ITメルマガ会員のサービス内容を見る

他にもこの記事が読まれています