マジセミドライブ

ウェビナー関連のニュースやITサービス&ツールの最新情報を随時配信します。

OSS情報

2020.01.01

【OSS情報アーカイブ】Kong

【OSS情報アーカイブ】Kong

※当記事に記載されている情報は、古くなっている場合があります。オフィシャルサイトで最新情報をご確認ください。

コンテンツ

「Kong」とは

概要

Kong(コング)とは、APIアグリゲータ(APIゲートウェイ)ソリューションです。統合的なAPI管理機能を提供します。

「APIアグリゲータ」とは

「APIアグリゲータ」とは、マイクロサービスとしてAPIサーバを実装する場合にサポートする仕組みです。

「認証機能」「ログ出力」「セキュリティ対策」などについて統合的にサポートします。

基本説明

Kongは、「クラウドネイティブ」「高速処理」「スケーラブル」「分散型」などの特徴を持つ人気の高いオープンソースのマイクロサービスAPIゲートウェイプラットフォームです。すべてのマイクロサービスとAPIを高性能で柔軟なAPIプラットフォームに接続します。

API実行サーバ(オンプレミス/クラウド)のゲートウェイとして、受け付けたWebアクセスを他ホストに転送する「高機能API用リバースプロキシ」のように動作し、複数のマイクロサービスを統合します。すべてのサービスをKongプラットフォームに接続することで、最新のマイクロサービスおよびコンテナ設計パターンを活用できるAPIの構築と最適化をサポートします。

KongはAPIゲートウェイに求められる機能として、「ロードバランシング機能」「ロギング機能」「認証機能」「トラフィック制御機能」「変換機能」「高度なセキュリティ機能」などを提供します。「クラスタリング機能」も標準搭載しており、必要に応じて処理能力と可用性を高めることができるため、高いサービスレベルのAPI実行環境を構築できます。

経緯

Kongは、2015年にオープンソースプロジェクトとしてスタートしました。

ユースケース

・CI/CD/DevOpsの自動化およびオーケストレーション—効率的なカスタムワークフロー生成
・新しいエコシステムを活用—Kubernetesやコンテナなどを追加したままでKongを展開 など

導入事例

Kongは、「IBM」「Intel」「OpenDNS」「The Guardian」「The New York Times」など、多くのグローバル企業で採用されています。

オフィシャルサイト情報

■オフィシャルサイト

→Kong(Next-Generation API platform for Microservices)

■ライセンス情報

Kongのライセンスは「Apache License Version 2.0」です。

詳細について、こちらを参照ください。
→Kong →License

■ダウンロード

Kongバイナリは「主要Linuxディストリビューション向けパッケージ(RPM/APT)」や「Dockerイメージ」で提供されています。

→Kong →Install Kong

同様製品

同様な機能を提供する製品として、次のようなものがあります。

オープンソース製品:「WSO2 API Manager」など。

Kong Microservice APIゲートウェイ

Kongはシステム運用において使いやすいRESTful APIを提供します。

あらゆるRESTful APIに対応し、コアプラットフォームを超えて追加機能を提供するプラグインを通して拡張されます。

→Kong →The Kong Microservice API Gateway

■APIリクエストのエントリポイント

Kongを組み込んだシステムでは、APIに対して行われるすべてのクライアント要求は最初にKongに到達し、次のAPIにプロキシされます。

Kongは、リクエストとレスポンスの間で、インストールされているプラ​​グインをすべて実行してAPI機能セットを拡張することで、事実上すべてのAPIリクエストのエントリポイントになります。

Kongによってすべてのサービスにわたって情報をインテリジェントに仲介することが可能となり、集中型または分散型のマイクロサービスのサービスアーキテクチャ全体を制御できます。

オープンソーステクノロジー基盤

Kongは、以下の信頼性の高いオープンソーステクノロジの上に構築されています。
・Webサーバ「Nginx」
・分散データベース管理システム「Apache Cassandra」
・データベース管理システム「PostgreSQL」

Kongは、これらの信頼性の高い機能により「高パフォーマンス」「高スケーラビリティ」を実現しています。

高速処理

KongはAPIゲートウェイソフトウェアとして「1ノードで秒あたり数万のリクエストを処理できる高性能」と「ミリ秒レベルの低レイテンシ」を実現しています。

■ベンチマーク「Kong vs Apigee」

→Kong →WHITEPAPERS →API and Microservices Management Benchmark

ベンチマーク概要

実稼働環境におけるパフォーマンスを理解するために、「Kong」と同様なAPI管理プラットフォーム「Apigee」について、「各プラットフォームが大きなトランザクション負荷にどれだけ耐えられるか?」を確認するために比較されています。

結果

KongはApigeeと比較して「20倍以上少ない待ち時間」で処理できています。

スケーラブル(可用性)

Kongは、分散データベース管理システム「Apache Cassandra」の機能を利用して、複数ノード構成によるスケールアウトが可能です。すべてのKongノードはノード間で設定が更新された状態でクラスタに自動参加します。

需要に合わせてノードを追加することで水平方向に拡張できるため、ピークボリュームに対応できます。

また、スケールアウトで性能を高めるとともに可用性も高まることで、高いサービスレベルのAPI環境を実現できます。Kongノードの1つがダウンしてもKongは影響を受けずにサービスを継続できます。

→Kong →Docs →GUIDES & REFERENCES →Clustering reference

プラグイン

「認証」「セキュリティ」「ロギング」「トラフィック制御」などのさまざまなプラグインを必要に応じてKongに組み込むことで機能を柔軟に拡張できます。

■Kongプラグインリポジトリ「Kong Hub」

→Kong →Kong Hub(Extend Kong with Powerful Plugins and Easy Integrations)

■プラグイン開発

Kongは、プラグイン(Luaモジュール)をロードして実行するように設計されたLuaアプリケーションとして動作します。

あらかじめ提供されているプラグインで対応できない場合は、提供されているプラグイン開発キットを利用することで、プラグインをカスタム開発できます。

→Kong →Docs →GUIDES & REFERENCES →Plugin Development Guide

マルチプラットフォーム

Kongは、プラットフォームにとらわれずに、「オンプレミス」「クラウド」「ハイブリッド環境」「グローバルデータセンター」「Kubernetes」など、さまざまな環境で稼働できます。

「Kong」の主な機能

コマンドラインインターフェース

KongのCLI(コマンドラインインターフェース)から、Kongインスタンスの「起動」「停止」「各種管理」など、Kongクラスタを制御できます。

→Kong →Docs →GUIDES & REFERENCES →CLI reference

認証機能

Kongは、APIのセキュリティを高めるさまざまな認証方式に対応しています。
・標準的キー認証
・Basic認証
・LDAP認証
・カスタム開発による独自認証方式 など

セキュリティ機能

Kongは、各種セキュリティ制御によりサービスを保護します。
・ACLアクセス制御
・ロールベースアクセス制御
・SSL証明書—基盤となるサービスまたはAPIに対して特定のSSL証明書を設定
・IPアドレスによるアクセス制限—ホワイトリスト/ブラックリストIP
・エンドツーエンド暗号化 など

→Kong →Docs →GUIDES & REFERENCES →Securing the Admin API

変換機能

Kongは、HTTP要求と応答について変換操作できます。
・リクエスト変換
・レスポンス変換 など

プロキシ機能

・フォワードプロキシ機能—透過的HTTPプロキシ
・キャッシング機能—プロキシレイヤで応答をキャッシュして提供

負荷分散機能

・動的負荷分散機能—複数のアップストリームサービス間でトラフィックを負荷分散
・ハッシュベースのロードバランシング—一貫したハッシュ/スティッキーセッションによるロードバランシング

トラフィック制御機能

Kongは、すべてのAPIトラフィックについて管理調整できます。
・ネットワーク帯域制限
・レスポンスレート制限
・リクエストサイズ制限—設定に基づいてリクエストをブロック など

ロギング機能

リクエストデータおよびレスポンスデータについてロギングします。
・ログ送信—HTTP/TCP/UDP
・ファイルロギング

→Kong →Docs →GUIDES & REFERENCES →Logging reference

アナリティクス機能

APIとマイクロサービスのトラフィックについて「視覚化」「検査」「監視」できます。
・モニタリング機能—負荷およびパフォーマンスの測定基準を提供
・分析機能

ヘルスチェック機能

Kongは2種類のヘルスチェックをサポートしています。

これらは別々にまたは組み合わせて使用​​できます。

→Kong →Docs →GUIDES & REFERENCES →Health checks and circuit breakers reference

■アクティブチェック

ターゲット内の特定のHTTPまたはHTTPSエンドポイントが定期的に要求され、その応答に基づいてターゲットの状態を判断します。

■パッシブチェック(サーキットブレーカー)

Kongがプロキシしている進行中のトラフィックを分析し、リクエストに応じた動作に基づいてターゲットの状態を判断します。

サーキットブレイカーとして、問題のあるアップストリームサービスについてインテリジェントな追跡を実施します。

 

参考元サイト

※定期的にメンテナンスを実施しておりますが、一部情報が古い場合がございます。ご了承ください。

この記事のタグ一覧

おすすめの記事

【トレンド解説】超入門「 スマートファクトリー 」🏭

トレンド解説

2024.04.15

【トレンド解説】超入門「 スマートファクトリー 」🏭

「 スマートファクトリー 」への理解を深めるための解説として、初心者向けにわかりやすくまとめた記事です。「新しい工場の概念」「デジタルツインの活用」「IoT技術による最適化」など、現代の製造業に必要な知識を効果的に学べます。 スマートファクトリー の導入によるメリットを具体的に解説しています。

【IT用語解説】「 デジタルヒューマン 」とは😊

IT用語解説

2024.01.26

【IT用語解説】「 デジタルヒューマン 」とは😊

【IT用語解説】「 デジタルヒューマン 」として、「デジタルヒューマンとは何か?」「どのようにして作成できるのか?」「私たちの世界にどのような影響を与えているのか?」などについて、まとめています。