OpenResty Edge は強力な Lua 拡張機能を提供しています。本文章では、ゲートウェイサーバーの異常オフライン状況を自動的に処理する例を用いて、Edge の Web コンソールで Lua 拡張機能を作成・設定し、ゲートウェイサーバーがオフラインになった際に自動的に GoDaddy から該当ノードを削除する方法を詳しく説明します。

新しい Lua 拡張機能の作成

OpenResty Edge は強力な Lua 拡張機能を提供しており、ゲートウェイサーバーのオフラインイベントに自動的に応答することができます。

スクリーンショット

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

スクリーンショット

「Global Config」ページに移動します。

スクリーンショット

「Global Lua Extensions」をクリックします。

スクリーンショット

新しい Lua 拡張機能を作成しましょう。

スクリーンショット

オフラインになったノードに GoDaddy がドメイン解決しないようにする拡張機能を作成します。

スクリーンショット

ここでは、名前を「remove_node_from_godaddy_if_node_is_offline」と入力します。

スクリーンショット

スクリーンショット

「By event」を選択します。

スクリーンショット

OpenResty Edge はいくつかの組み込みイベントをサポートしています。

スクリーンショット

ここでは、「Gateway Server Abnormal Offline」タイプを選択します。これは、サーバーがオフラインになった場合に Lua 拡張機能がトリガーされることを意味します。

スクリーンショット

Vim の使用に慣れている場合は、Vim モードを有効にしてコードを編集できます。

スクリーンショット

イベントが発生すると、trigger_event が Lua 拡張機能に渡されます。

スクリーンショット

管理サーバーにリクエストを送信し、ノードがオフラインになった時に GoDaddy からそのノードを削除できるようにします。

スクリーンショット

レスポンス内容が条件を満たす場合、Lua の Cjson モジュールを使用してデコードし、結果を body 変数に割り当てます。

スクリーンショット

body が存在し、body.status が 0 に等しい場合、成功メッセージを出力します。

スクリーンショット

作成をクリックします!

スクリーンショット

オフラインゲートウェイサーバーを使用した Lua 拡張機能のトリガー

作成後、この新しい Lua 拡張機能は自動的に実行されます。オフラインのゲートウェイサーバーを使用してテストしてみましょう。

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

スクリーンショット

これが使用するゲートウェイクラスターです。

スクリーンショット

現在オンラインです。

スクリーンショット

ターミナルで、systemctl コマンドを使用してサービスを停止します。

スクリーンショット

リストを更新します。

スクリーンショット

サーバーが現在オフラインになっています。

スクリーンショット

「Global Config」ページに戻ります。

スクリーンショット

「Global Lua Extensions」に移動します。

スクリーンショット

実行履歴を確認します。

スクリーンショット

図のように、拡張機能がトリガーされ実行されました。

スクリーンショット

ノードが GoDaddy から正常に削除されました。

スクリーンショット

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 以上のオープンソースソフトウェアライブラリを執筆しております。

翻訳

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