このチュートリアルでは、OpenResty Edge におけるゲートウェイパーティションの使用方法を説明します。ゲートウェイパーティションとは、ゲートウェイクラスターの組み合わせを指し、異なるパーティションのクラスターは異なる設定を使用できます。パーティションを使用することで、特定のゲートウェイサーバーに更新をプッシュしたり、アプリケーションを以前のバージョンに簡単にロールバックしたりすることができます。

ゲートウェイパーティションは、企業が内部アプリケーションと外部アプリケーションを区別するための鍵であり、精密な A/B テストを行う際にサーバーを分離する効果的な方法でもあります。OpenResty Edge を通じて、設定のデプロイメントは単なる公開ではなく、戦略的に計画されたデプロイメントとなります。

新しいゲートウェイパーティションの作成

OpenResty Edge の Admin Web コンソールに入りましょう。これは私たちのコンソールのサンプルデプロイメントです。各ユーザーは自身のローカルデプロイメントを持っています。

Screenshot

まず、「Gateway Clusters」ページに移動します。ここでは、すでに設定されている複数のゲートウェイクラスターが表示されています。

Screenshot

例えば、ここにはアメリカに設置されたゲートウェイクラスターがあります。

Screenshot

その中には 1 台のゲートウェイサーバーがあります。

Screenshot

クラスター自体は「default」パーティションに属しています。

Screenshot

次に、新しいゲートウェイクラスターを作成します。「New Gateway Cluster」ボタンをクリックします。

Screenshot

このゲートウェイクラスターに「edge-test-cluster」という名前を付けます。

Screenshot

この画像から、OpenResty Edge では、1 つのゲートウェイパーティション内に複数のゲートウェイクラスターを持つことができることがわかります。

Embeded image

次に、この新しいクラスターをあるパーティションに追加します。

このドロップダウンボックスをクリックします。

Screenshot

既存のパーティションは使用せず、全く新しいパーティションを作成します。

「Add Gateway Partition」をクリックします。

Screenshot

このパーティションに「edge-test-partition」という名前を付けます。

Screenshot

そして「Create」ボタンをクリックします。

Screenshot

新しく作成されたパーティションがパーティション選択ドロップダウンリストの一番上に表示されます。

Screenshot

「Create」ボタンをクリックして、この新しいクラスターを作成します。

Screenshot

新しく作成されたゲートウェイクラスターがクラスターリストページに表示されています。

Screenshot

この画像からも、1 つのゲートウェイクラスターに複数のゲートウェイサーバーが含まれていることがわかります。

Embeded image

次に、新しく作成したゲートウェイクラスターにゲートウェイサーバーを追加する方法を見てみましょう。

ここでは、すでに 1 台のゲートウェイサーバーを準備しています。

Screenshot

「Approve」ボタンをクリックします。

Screenshot

まず、クラスターを選択する必要があります。

ドロップダウンメニューから、新しく作成したゲートウェイクラスターを選択します。

Screenshot

そのサーバーのパブリック IP アドレスを入力します。

Screenshot

クリックして、そのサーバーをクラスターに追加することを承認します。

Screenshot

サーバーがゲートウェイクラスターに正常に追加されたのが確認できます。

Screenshot

新しいゲートウェイパーティションで新しいアプリケーションを作成する

次に、新しく作成したパーティションでアプリケーションを作成します。

アプリケーションリストページに切り替えます。

Screenshot

新しいアプリケーションの作成をクリックします。

Screenshot

アプリケーションのドメイン名を入力します。

Screenshot

パーティション選択ドロップダウンメニューを開くためにクリックします。

Screenshot

「default」パーティションは選択しないでください。

Screenshot

新しく作成したパーティションを選択します。

Screenshot

作成ボタンをクリックします。

Screenshot

新しいページルールの作成

パーティションがどのように機能するかを示すために、ページルールを作成します。

ページルールリストページに移動します。

Screenshot

ページルールの追加をクリックします。

Screenshot

新しいアクションを追加します。

Screenshot

アクション選択のドロップダウンボックスを開くためにクリックします。

Screenshot

「output response body」のアクションを選択します。

Screenshot

新しいルールの作成をクリックします。

Screenshot

この新しい変更をプッシュするために公開する必要があります。

Screenshot

このボタンをクリックします。

Screenshot

公開します!

Screenshot

変更がすべてのゲートウェイサーバーに同期されました。

Screenshot

これで、新しいページルールがすべてのゲートウェイクラスターとサーバーにプッシュされました。

Embeded video

Embeded video

Embeded video

設定の変更にはサーバーのリロード、再起動、またはバイナリのアップグレードが必要ありません。そのため、非常に効率的でスケーラブルです。

Embeded image

新しく作成したパーティションのテスト

再度ゲートウェイクラスターリストページに移動します。

Screenshot

これが先ほど新しく作成したクラスターです。

Screenshot

ここで注目すべきは、先ほど追加したサーバーの IP アドレスが ‘67’ で終わっていることです。

Screenshot

ターミナルで curl コマンドを使用して、このゲートウェイサーバーにリクエストを送信します。

curl "http://13.229.144.67" -H "Host: edge-test-partition.com"

Screenshot

先ほど設定したレスポンスボディがサーバーから返されたのがわかります。

次に、このパーティションに属さない別のサーバーに対して同じ操作を行います。このサーバーの IP は「.84」で終わっていることに注意してください。

リクエストを送信します。

curl "http://3.131.85.84" -H "Host: edge-test-partition.com"

Screenshot

別のパーティションに属するゲートウェイサーバーが「Page Not Found」というレスポンスを返したのがわかります。

OpenResty Edge について

OpenResty Edge は、マイクロサービスと分散トラフィックアーキテクチャ向けに設計された多機能ゲートウェイソフトウェアで、当社が独自に開発しました。トラフィック管理、プライベート CDN 構築、API ゲートウェイ、セキュリティ保護などの機能を統合し、現代のアプリケーションの構築、管理、保護を容易にします。OpenResty Edge は業界をリードする性能と拡張性を持ち、高並発・高負荷シナリオの厳しい要求を満たすことができます。K8s などのコンテナアプリケーショントラフィックのスケジューリングをサポートし、大量のドメイン名を管理できるため、大規模ウェブサイトや複雑なアプリケーションのニーズを容易に満たすことができます。

著者について

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

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

翻訳

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