本日は、Microsoft Azure クラウド上に OpenResty XRay のオンプレミス版をデプロイする方法をご紹介いたします。ビデオデモンストレーションで使用するコマンドの詳細については、ドキュメントをご参照ください。

サブスクリプションとリソースグループの作成

第一ステップとして、サブスクリプションとリソースグループを作成します。Azure のホームページを開き、サブスクリプションアイコンをクリックします。

スクリーンショット

ここでは、すでに「Azure subscription 1」という名前のサブスクリプションを作成済みです。

スクリーンショット

Azure のホームページに戻ります。

スクリーンショット

リソースグループを作成する準備をします。リソースグループアイコンをクリックします。

Screenshot

ここでは、すでに「AKS」という名前のリソースグループを作成済みです。リソースグループ AKS は、先ほど作成した Azure subscription 1 に属しています。

スクリーンショット

Azure Kubernetes サービスの作成

第二ステップでは、Azure Kubernetes サービスを作成します。Azure のホームページに戻り、Kubernetes サービスアイコンをクリックします。

Screenshot

作成ボタンをクリックし、Kubernetes クラスターの作成を選択します。

スクリーンショット

先ほど作成したリソースグループ「AKS」を選択します。

スクリーンショット

ここでクラスターの設定を選択します。必要に応じて選択してください。

スクリーンショット

ここでは、必要に応じてノードのサイズを選択します。

スクリーンショット

その他の設定は必要に応じて調整し、「Review + Create」をクリックします。

スクリーンショット

スクリーンショット

デプロイが完了するまで待ちます。

Screenshot

Screenshot

環境変数の準備

第三ステップでは、後で使用する環境変数を準備します。

ターミナルを開き、Linux マシンにログインします。

デモンストレーションには .env.sample ファイルを使用します。

Screenshot

これらの環境変数の使用方法については、ドキュメントをご参照ください。

スクリーンショット

コマンドラインから Azure にログイン

第四ステップでは、コマンドラインから Azure にログインします。

注意:事前に Azure のコマンドラインツール az をインストールしておく必要があります。

具体的なインストール手順については、Azure 公式ドキュメントをご参照ください。

ここでは、az login コマンドを使用し、表示された URL を開きます。

スクリーンショット

ログインに成功すると、以下のような画面が表示されます:

Screenshot

az account コマンドを実行してサブスクリプションをバインドします。

スクリーンショット

スクリーンショット

次に、az aks コマンドを実行して Kubernetes のアクセス設定を取得します。

スクリーンショット

Kubernetes の namespace と secret の作成

第五ステップでは、Kubernetes の namespace と secret を作成します。

まず、Kubernetes namespace を作成します。

スクリーンショット

次に、Kubernetes Secret を作成します。

Screenshot

Azure ディスクの作成

第六ステップでは、Azure ディスクを作成します。

まず、ノードのリソースグループ名を取得します。

スクリーンショット

次に、コマンドを使用して Azure ディスクを作成します。

スクリーンショット

同じコマンドを使用して、使用する複数のディスクを作成します。これらのコマンドは、ドキュメントに記載されています。

スクリーンショット

永続ボリュームの設定ファイルの更新

第七ステップでは、永続ボリュームの設定ファイルを更新します。

このステップでは、提供された設定ファイルをそのまま使用できます。

スクリーンショット

ノードのリソースグループ名を取得します。

スクリーンショット

sed コマンドを使用して永続ボリュームの設定を置換します。

Screenshot

Kubernetes の設定ファイルの更新

第八ステップでは、Kubernetes の設定ファイルを更新します。

スクリーンショット

XRAY_CONSOLE_HOST 変数は、OpenResty XRay サービスをデプロイした後に使用するドメイン名です。

スクリーンショット

sed コマンドを使用して Kubernetes の設定を置換します。

スクリーンショット

永続ボリュームの作成

第九ステップでは、永続ボリュームを作成します。

kubectl apply コマンドを使用します。

スクリーンショット

永続ボリュームの作成が成功したら、kubectl get コマンドで確認できます。

スクリーンショット

Kubernetes サービスのデプロイ

第十ステップでは、Kubernetes サービスをデプロイします。

ここでも kubectl apply コマンドを使用して Kubernetes サービスをデプロイします。

スクリーンショット

kubectl get コマンドを使用してサービスのステータスが Running であることを確認し、デプロイが成功したことを確認します。

Screenshot

アプリケーションゲートウェイの設定

最後のステップは、アプリケーションゲートウェイの設定です。

Azure 管理画面のホームページを開きます。Kubernetes サービスを開きます。

スクリーンショット

スクリーンショット

Networking を選択してネットワークを設定します。

スクリーンショット

Enable ingress controller にチェックを入れます。

スクリーンショット

保存します。

スクリーンショット

保存後、ingress controller が作成されます。

スクリーンショット

作成された ingress controller を選択し、Backend pool の設定を選択します。

スクリーンショット

既存のバックエンドプールを編集します。

Screenshot

バックエンドの IP アドレスは、ドキュメントに記載されているコマンドで取得できます。

Screenshot

Screenshot

保存します。

スクリーンショット

次に、Health Probes を選択して設定します。このステップでは、バックエンドへのヘルスチェックを設定します。

スクリーンショット

図のように入力して保存します。

Screenshot

Screenshot

Screenshot

次に、Listeners の設定を開始します。これはゲートウェイのリスニングポートとサービスを設定します。

スクリーンショット

デフォルトで 80 ポートの http サービスが設定されていることがわかります。

スクリーンショット

443 ポートの https サービスを追加します。

スクリーンショット

スクリーンショット

ここで https サービスに必要な証明書をアップロードする必要があります。

Screenshot

Screenshot

ドキュメントに記載されているコマンドを使用して、通常の証明書を pfx 形式に変換できます。

スクリーンショット

Password には pfx 形式の証明書のパスワードを入力します。

スクリーンショット

Rules を選択して転送ルールを設定します。

スクリーンショット

デフォルトのルールを修正します。

スクリーンショット

Listener を先ほど作成した 443 ポートの https サービスに変更します。

スクリーンショット

Backend target サブタブを選択し、Backend target と Backend settings が正しく選択されていることを確認します。

スクリーンショット

保存をクリックします。

スクリーンショット

Health Probe を選択し、ヘルスチェックが通過しているかを確認します。

Screenshot

Screenshot

ここの Status が通過していることを示しています。

Screenshot

アクセスするドメインがゲートウェイのパブリック IP アドレスに解決されていることを確認します。

Screenshot

それでは、ドメインにアクセスして OpenResty XRay サービスが正常にデプロイされたかを確認しましょう。

以下のようなログイン画面が表示されれば、デプロイが成功したことになります。

Screenshot

OpenResty XRay について

OpenResty XRay動的トレーシング製品であり、実行中のアプリケーションを自動的に分析して、パフォーマンスの問題、動作の問題、セキュリティの脆弱性を解決し、実行可能な提案を提供いたします。基盤となる実装において、OpenResty XRay は弊社の Y 言語によって駆動され、Stap+、eBPF+、GDB、ODB など、様々な環境下で複数の異なるランタイムをサポートしております。

著者について

章亦春(Zhang Yichun)は、オープンソースの OpenResty® プロジェクトの創始者であり、OpenResty Inc. の CEO および創業者です。

章亦春(GitHub ID: agentzh)は中国江蘇省生まれで、現在は米国ベイエリアに在住しております。彼は中国における初期のオープンソース技術と文化の提唱者およびリーダーの一人であり、Cloudflare、Yahoo!、Alibaba など、国際的に有名なハイテク企業に勤務した経験があります。「エッジコンピューティング」、「動的トレーシング」、「機械プログラミング」 の先駆者であり、22 年以上のプログラミング経験と 16 年以上のオープンソース経験を持っております。世界中で 4000 万以上のドメイン名を持つユーザーを抱えるオープンソースプロジェクトのリーダーとして、彼は OpenResty® オープンソースプロジェクトをベースに、米国シリコンバレーの中心部にハイテク企業 OpenResty Inc. を設立いたしました。同社の主力製品である OpenResty XRay動的トレーシング技術を利用した非侵襲的な障害分析および排除ツール)と OpenResty XRay(マイクロサービスおよび分散トラフィックに最適化された多機能ゲートウェイソフトウェア)は、世界中の多くの上場企業および大企業から高い評価を得ております。OpenResty 以外にも、章亦春は Linux カーネル、Nginx、LuaJITGDBSystemTapLLVM、Perl など、複数のオープンソースプロジェクトに累計 100 万行以上のコードを寄与し、60 以上のオープンソースソフトウェアライブラリを執筆しております。

翻訳

英語版の原文と日本語訳版(本文)をご用意しております。読者の皆様による他の言語への翻訳版も歓迎いたします。全文翻訳で省略がなければ、採用を検討させていただきます。心より感謝申し上げます!