OpenResty Edge を使用した TCP アプリケーションのロードバランシング
本日は、OpenResty Edge で TCP 接続用のリバースプロキシを設定する方法をご紹介いたします。
TCP アプリケーションの作成
OpenResty Edge の Admin Web コンソールに移動しましょう。これは私たちのコンソールのサンプルデプロイメントです。各ユーザーには独自のローカルデプロイメントがあります。
今回は Stream タイプのアプリケーションを作成します。Stream アプリケーションリストページに移動します。
このボタンをクリックして新しいアプリケーションを作成します。
Stream アプリケーションには 2 種類あることがわかります:SNI Proxy アプリケーションと TCP アプリケーションです。
今日のテーマは TCP アプリケーションです。
SNI Proxy アプリケーションは別のチュートリアルで取り上げます。
TCP タイプを選択します。
このアプリケーション用のポートを指定する必要があります。
まず、このポートを default パーティションに追加する必要があります。
default パーティションの編集をクリックします。
このボタンをクリックしてポートを追加します。
リストに新しい行が表示されます。
ポート番号として 3307 を入力します。
TCP タイプを選択します。
「保存」ボタンをクリックして保存します。
新しいポートが default パーティションに正常に追加されたことが確認できます。
変更は保存と同時に自動的に公開されます。
ここで同期状態を確認できます。
この編集パネルを閉じます。
先ほど default パーティションに追加したポートを入力します。
そして、このアプリケーションを作成するためにクリックします。
TCP アプリケーション用のアップストリームとページルールの作成
Upstreams ページに移動します。
バックエンドサーバー用の新しいアップストリームを作成します。
このアップストリームに名前を付けます。例えば、tcp backend とします。
ここにバックエンドサーバーの IP アドレスを入力する必要があります。
この IP アドレスに MySQL サーバーを準備しています。
では、この MySQL サーバーに接続してみましょう。
パスワードを入力します。
サーバーにアクセスできることが確認できました。
これでバックエンドサーバーのホストフィールドを入力できます。
ポート番号 3307 を入力します。
将来的には、このアップストリームにさらに多くのサーバーを追加する可能性があります。
クリックしてこのアップストリームを保存します。
tcp backend
アップストリームが正常に作成されたことが確認できます。
次に、このアップストリームを使用する新しいページルールを作成します。
新しいページルールを作成します。
プロキシターゲットを追加します。
先ほど作成したアップストリームを選択します。
複数のバランシング戦略から選択できます。アップストリームにサーバーが 1 つしかないため、バランシング戦略はそれほど重要ではありません。
デフォルトの round-robin 戦略のままで構いません。
このページルールを作成します。
ページルールリストに新しく作成されたプロキシページルールが表示されます。
最後のステップは、新しい設定の公開です。先ほどの変更をすべてのゲートウェイサーバーにプッシュします。
このボタンをクリックして新しいリリースを行います。
リリースします!
変更がすべてのゲートウェイサーバーに同期されました。このサンプルデプロイメントでは、ゲートウェイネットワークに 14 台のサーバーがあることがわかります。
ネットワーク全体で増分の設定同期を行っています。
リクエストの粒度でリアルタイムに設定を更新しています。アプリケーションレベルの設定変更はすべて、サーバーのリロード、再起動、またはバイナリアップグレードを必要としません。そのため、多くの異なるユーザーが頻繁に公開を行っても、非常にスケーラブルです。
TCP アプリケーションのテスト
では、クラスター別にグループ化されたすべてのゲートウェイサーバーを見てみましょう。
アメリカにあるノードがあり、その IP アドレスは 226 で終わっています。このノードを使用して、先ほど追加したプロキシをテストします。
このサーバーの IP アドレスをコピーするためにクリックします。
3307 ポートを使用してアップストリームバックエンドの MySQL サーバーに接続します。
ホストは先ほど確認した Edge ノードサーバーで、IP アドレスは 226 で終わっています。
ユーザー名とデータベース名を指定し、SQL コマンドを実行します。
パスワードを入力します。
予想通り、プロキシが機能しています!サーバーにアクセスでき、バックエンドサーバーに直接アクセスしているかのようです。
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(マイクロサービスおよび分散トラフィックに最適化された多機能
翻訳
英文版の原文と日本語訳版(本文)をご用意しております。読者の皆様による他の言語への翻訳版も歓迎いたします。全文翻訳で省略がなければ、採用を検討させていただきます。心より感謝申し上げます!