マジセミドライブ
ウェビナー関連のニュースやITサービス&ツールの最新情報を随時配信します。
OSS情報
2020.01.01
【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イメージ」で提供されています。
同様製品
同様な機能を提供する製品として、次のようなものがあります。
オープンソース製品:「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がプロキシしている進行中のトラフィックを分析し、リクエストに応じた動作に基づいてターゲットの状態を判断します。
サーキットブレイカーとして、問題のあるアップストリームサービスについてインテリジェントな追跡を実施します。
参考元サイト
- Kong
- GitHub →Kong/kong
- Qiita →Kongを使ってAPIへのアクセスを制御する ~① APIキー&ACL編~
- webapi.tokyo →Kong Community Edition
- @IT →CTOのパラディーノ氏に聞いた:「APIマネジメントは死んだ」。サービスメッシュ、IstioとKongの進む道
※定期的にメンテナンスを実施しておりますが、一部情報が古い場合がございます。ご了承ください。
この記事のタグ一覧
フリーワード検索
カテゴリー一覧
アクセスランキング
- 🏆ランク1位🏆
【無料で使える】「 OCR 」ツールまとめ - 🏆ランク2位🏆
【無料で使える】「 プロジェクト管理 」ツールまとめ - 🏆ランク3位🏆
【無料で使える】「 翻訳 」ツールまとめ - 🏆ランク4位🏆
【OSS情報アーカイブ】SonarQube - 🏆ランク5位🏆
【無料で使える】「 ドキュメント管理 」ツールまとめ - 🏆ランク6位🏆
【AIツール実験室】画像生成AIツール「 Emi 」(前編) - 🏆ランク7位🏆
【ツール紹介】無料オープンソース「 ビデオ監視 ツール 」まとめ3選 - 🏆ランク8位🏆
【無料で使える】「 バックアップ 」ツールまとめ - 🏆ランク9位🏆
【ChatGPT使ってみる実験室】 WordPress関数を作って記事リストを出力 - 🏆ランク10位🏆
【無料で使える】「 グループウェア 」まとめ