全2452文字
PR

 小さなサービスを疎結合に連携する「マイクロサービス・アーキテクチャー」を取り入れるITシステムが増えてきた。システムの変更速度を上げ、ビジネスの変化を素早くキャッチアップする狙いがある。

 マイクロサービス化したシステムでは、複数のサービスをつないで一連の処理を実現する。どのような連携手法があるのか、どういった注意点があるのか、見ていこう。

API Gatewayで同期型連携

 サービス同士を連携するに当たり、グロース・アーキテクチャ&チームスの鈴木雄介社長は「まずは同期型と非同期型のどちらを選ぶかを考える必要がある」と話す。

 同期型の代表的な実装方法が、各サービスをAPI(アプリケーション・プログラミング・インターフェース)経由で呼び出すAPI連携である。管理機能を提供するソフトウエア「API Gateway」が手軽に利用できるようになり、API連携を実現しやすくなってきた。

モノリス型アーキテクチャーと、API Gatewayを使ったマイクロサービス・アーキテクチャーの比較例
モノリス型アーキテクチャーと、API Gatewayを使ったマイクロサービス・アーキテクチャーの比較例
[画像のクリックで拡大表示]

 API GatewayはクライアントとAPIベースのアプリケーションをつなぐ機能を持つ。認証やセキュリティー、トラフィック制御などを行うと同時に、ロギングやモニタリングといった運用に必要な機能を備える。主要なクラウドはAPI Gatewayをマネージドサービスとして提供している。API Gatewayを構築する手間が省けるうえに、運用負荷も軽減できる。

 例えばAWS(Amazon Web Services)の「Amazon API Gateway」は、HTTPベースの「RESTful API」、およびチャットやストリーミングなどに向けた「WebSocket API」をサポート。マルチAZ(アベイラビリティーゾーン)の構成で運用されており、耐障害性も高い。アマゾン ウェブ サービス ジャパンの塚田朗弘スタートアップ事業本部技術統括部長は「API Gatewayを自分で作るのは大変だ。費用対効果を考えるとクラウドのサービスを入れておいた方がよい」と話す。

 クラウドサービスを使わず、API Gatewayソフトを自分で導入する方法もある。アクセンチュアの福垣内孝造テクノロジーコンサルティング本部 テクノロジーアーキテクチャグループ クラウドソリューションアーキテクトは、顧客の利用状況はAPI Gatewayソフトとクラウドサービスが半々ぐらいと話す。「クラウドサービスでタイムアウトが短いような場合はソフト版が選択肢になる。その場合、まずはオープンソースのKongを使ってみる」(福垣内クラウドソリューションアーキテクト)。