SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

【デブサミ2020】セッションレポート (AD)

マルチクラウド環境でNGINXの動作環境や外部通信の設定・運用を共通化するノウハウ【デブサミ2020】

【14-D-5】マルチクラウドに向けてNGINX活用促進する為に知っておいてほしいこと

  • X ポスト
  • このエントリーをはてなブックマークに追加

さまざまな条件による外部通信の制御にはNGINX Ingress Controllerを活用

 NGINX Ingress ControllerではHTTP、gRPC、WebSocketのリバースプロキシを同時に設定可能で、HTMLヘッダーやコンテンツの中身をチェックする「Active Health Checks」機構も利用できる。加えて、アプリケーションごとにJWT・OpenIDベースの認証機能を持たせることも可能だ。

 また、アプリケーションの新しいバージョンがKubernetes環境に、旧バージョンがAWS環境にあり、それぞれを区別して振り分けたい場合など、NGINX Ingress ControllerのExternalNameという設定を利用して実現できる。

 「組織によってGCPを使う部署、AWSを使う部署、Azure環境を使う部署がそれぞれ存在する場合もあるでしょう。ExternalNameを使えばうまくルーティングの制御ができます。コンピューターパワーが必要な場面など、データセンターの物理環境にも振り分けが可能です。新しいバージョンをリリースする際、まずは1割の人だけに新バージョンにアクセスさせてエラー率やバグを見るようなweightの設定もできます」と鈴木氏。

バージョンによって異なる環境に振り分けるExternalName設定例
バージョンによって異なる環境に振り分けるExternalName設定例

 さらに、マルチクラウドやオンプレミス環境に設置したAPIもNGINX Controller 3.0を活用することで管理ができる。各環境にエージェントを設置してControllerからURLリライトやレート制限、端末ごとの認証・制限などの設定、管理を可能にする仕組みだ。

 続いて鈴木氏は、監視運用という視点でのNGINX活用についての説明に移った。NGINXはインフラ・サービス監視ツールの「Prometheus」のインテグレーションもあるので、そこでログを取得・監視することもできる。「F5/NGINX Community!」のイベントでは、NGINXにて処理中コネクション数のメトリクスを利用してPrometheusで監視したログを、Kubernetes環境にあるPodのオートスケーリングの指標にした、ウォンテッドリーの事例が発表された。

 「アプリケーションがどのように使われているか、レスポンスタイムはどれくらいか、といった状態を把握する際にも使えます。Datadogなどのエージェントにも対応しているので、簡単に2~3行の設定をすると、グラフィカルなダッシュボードで監視可能です。複数台の合計値や平均値なども見ることができ、NGINX Controllerから好みのパラメーターを取り出してオリジナルのダッシュボードに展開することも可能です」と鈴木氏は話す。

ダッシュボードの例
ダッシュボードの例

 NGINXの導入、活用方法、監視運用まで説明した鈴木氏はこのあと、先ほど紹介したExternalNameによる振り分けのデモンストレーションを実施した。

 デモンストレーションは、GKE上に用意したKubernetesクラスターと、Amazon EC2インスタンスに置いたWebページを振り分けるもの。ExternalNameにはAWSのURLを指定する。「https://gke-v2.example.com/」はGKEへ、「https://aws-v2.example.com/」はAmazon EC2インスタンスに向ける設定で、5分ほどで設定が完了した。

GKEとAWSに振り分けるデモンストレーション
GKEとAWSに振り分けるデモンストレーション

 さらにAzureのKubernetes環境における同様のデモンストレーションも行われた。

AzureとAWSに振り分けるデモンストレーション
AzureとAWSに振り分けるデモンストレーション

 デモンストレーションについて鈴木氏は「サービスの実態はGKEに、ちょっと作って試したいものはAWSに置いておく場合にも使えます。AzureにもKubernetesサービスがあるので同じように設定できます。このようにKubernetesなら、NGINXの設定をうまく使うことで、マルチクラウド環境が手軽に利用可能です。振り分けたあとにBasic認証や、JWT認証の処理を入れることもできますよ」と解説を加え、セッションを締めくくった。

お問い合わせ

 NGINX (Part of F5)

この記事は参考になりましたか?

  • X ポスト
  • このエントリーをはてなブックマークに追加
【デブサミ2020】セッションレポート 連載記事一覧

もっと読む

この記事の著者

CodeZine編集部(コードジンヘンシュウブ)

CodeZineは、株式会社翔泳社が運営するソフトウェア開発者向けのWebメディアです。「デベロッパーの成長と課題解決に貢献するメディア」をコンセプトに、現場で役立つ最新情報を日々お届けします。

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

【AD】本記事の内容は記事掲載開始時点のものです 企画・制作 株式会社翔泳社

この記事は参考になりましたか?

この記事をシェア

  • X ポスト
  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/12046 2020/05/07 12:17

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング