BLOGAzureブログ

マイクロサービスとは?
代表的事例・メリット/デメリット・活用できるAzureサービスを一挙解説!

2022.07.05

クラウドサーバーご検討中の方必見 お役立ち資料一覧

現在、マイクロサービスは、開発側にとって開発速度や柔軟なスケーラビリティなどの観点から注目を集めています。そのマイクロサービスには、どのようなメリット・デメリットがあるのでしょうか。また、構築、導入する場合には、便利なサービスを利用することができます。最後には、そのサービスの一例として、Microsoft Azureのサービスをご紹介します。

1.マイクロサービスとは?

マイクロサービスとは、簡単に言えば、複数の小さなサービスを独立して開発し、APIを通じて各サービスを呼び出して連携させることによってアプリケーション全体を構築する仕組みです。

複数の小さなサービスとは、例えば、ECサイトであれば、IDとパスワードを利用ユーザーに入力させて認証する「認証サービス」、商品情報がまとまっている「商品データベース」、商品を検索する「検索機能」、商品を購入する「決済サービス」などのことを指します。それらの一つ一つのサービスを呼び出し、連携させて一つのアプリケーションを完成させます。

このマイクロサービス・アーキテクチャを用いて開発されているわかりやすい例で言えば、AmazonやLINE、クックパッドなどが挙げられます。

例えばLINEには、「友だち」というメッセージのやりとりを行うユーザーのリストや、チャット機能、プロフィールやアイコン設定機能などがあります。チャット機能は、LINEの主要機能でアップデートが多くなるところであると思われるため、マイクロサービス化されている可能性が高いと考えられます。

マイクロサービスのように分割されているのではなく、一つのモジュールで構成されたものを「モノリシック」と呼びます。

2.マイクロサービス設計の課題・設計前に考えたいこと

マイクロサービスを提供する場合、その設計の課題にはどのようなことがあるのでしょうか。ここでは設計前に考えるべきことをご紹介します。

●マイクロサービスとAPI

先ほど、マイクロサービスは複数の小さなサービスを、APIを通じて呼び出すとご説明しました。APIとは、API(Application Programming Interface)のことで、プログラムとプログラムの呼出仕様のことです。例えば、先ほどのLINEの例であれば、チャットサービスから、アイコンなどの画像を別のサービスにリクエストして、APIを通じて読み込みます。
APIにはいくつか種類がありますが、クラウド環境におけるマイクロサービスに適しているといわれるのが「REST API」です。物理的に離れた場所であっても、連携させて大規模なサービスを作ることができます。

●マイクロサービスのメリット

マイクロサービス形式でアプリケーションを開発するメリットを確認しておきましょう。

・小規模な開発チームでスピードUP・生産性向上

用意する複数のサービスは、それぞれに開発チームが分かれていても問題ありません。よって大規模な一つのアプリケーションを開発するときと比べて、マイクロサービスでは小規模チームを複数存在させるということができます。一つのサービスの開発チームは小規模で構成できるというメリットがあります。
これにより、機敏性が上がり、コミュニケーションも取りやすいため迅速に開発や対応が可能になります。結果的に生産性向上につながります。

・バグ修正に対応しやすい・顧客の要望に応えやすい

アプリケーションを運用していく中で、随時、バグや顧客の要望が発生します。マイクロサービスであれば、その顧客の要望に各サービスの開発チームが個々に対応すれば良いため、要望に応えやすいといえます。またバグ修正や機能リリースが管理しやすくなります。

・スケーラビリティが高まる

マイクロサービスにおいては、複数のサービスは独立していることから、それぞれが拡大・縮小できます。もしスケールアウトしたい場合は、アプリケーション全体をスケールアウトせずに、サービスごとに個別に実施できます。

・障害の分離が可能

複数のサービスのうち、一つに障害が起きて使用できなくなっても、上流のサービスが障害に対して正しい処理を行える仕組みにしておけば、アプリケーション全体が中断されるのを避けることができます。

●マイクロサービスのデメリット

一方で、マイクロサービスには次のようなデメリットがあります。

・複雑でアプリケーション全体の開発とテストがしづらい

マイクロサービスのアプリケーションは、モノリシックアプリケーションよりも多くの動的パーツで構成されていることから、システム全体としては複雑となります。そのため、小さいサービス間の境界を越えた開発・テストは、むずかしい場合があります。

・ガバナンス欠如の恐れ

マイクロサービスのアプリケーションを構築する際に、分散アプローチをとることにはメリットがありますが、問題が発生しやすくもなります。例えば、多くの異なる言語やフレームワークを使用するために、ガバナンスの統一がむずかしくなります。

・ネットワークの待機時間が発生

小さく細分化されたサービスを多く使用すると、各ネットワークのやりとりに時間がかかることがあります。例えば、AというサービスがBというサービスを呼び出すだけなら早いところ、AがBを呼び出し、BがCを呼び出してAに返すといった仕組みもあり得ます。そのように呼び出しのチェーンが長くなるほど、ユーザーに待機時間が発生してしまうリスクが生まれます。

・バージョン管理が困難

サービスの更新時には、依存している複数サービスを中断しなければならないため、慎重に設計する必要があります。

・高度なスキルセットを要する

マイクロサービスは高度なスキルと経験が求められるため、マイクロサービス・アーキテクチャを設計する際には、それらを持つ人材確保が求められます。

3.マイクロサービス・アーキテクチャ設計に活用できるAzureサービス

マイクロサービス・アーキテクチャを設計するには、Microsoftの「Azure」の一つサービス「Azure Function」が活用できます。これにより、マイクロサービスを安価かつ手軽に設計できます。

●特徴

Azure Functionsは、アプリケーション開発に関連するサービスの一つで、「サーバーレスアーキテクチャ」によってマイクロサービスの実装が可能です。
サーバーレスアーキテクチャとは、サーバーを意識することなく、アプリケーションの開発に集中することができます。サーバーなどの開発環境はすべてAzureが提供するため、拡張するなどの必要性が生じても、万が一ハード面での障害が生じても、自動的に対応してくれます。

●料金プラン

Azure Functionsには、次の2つ料金プランがあり、最適なプランを選択することができます。

・従量課金プラン

コードを実行した時間に応じて料金を支払う従量課金制です。アイドル状態では料金は発生しません。

・Premiumプラン

実行によって料金が発生するのではなく、インスタンスを自ら指定し、そのインスタンス全体にわたって割り当てられた仮想CPUのコア秒数とメモリに基づいて料金が発生します。

4.まとめ

マイクロサービスは、顧客対応が迅速に行えるほか、少人数で開発を行えるという点から、顧客ニーズへの臨機応変な対応や人材不足などの時代背景にマッチしたアプリケーション構築手法です。多数のメリットから現在、多くのアプリケーションに活用されています。
Azure Functionsは手軽にマイクロサービス・アーキテクチャを設計できるツールです。
SB C&Sは、Azure及び、Azure Functionsをご提供しております。ぜひお気軽にお問い合わせください。

Azureの導入や運用に関するお悩みは SoftBankグループのSB C&Sにご相談ください

SoftBankグループのSB C&Sは、さまざまな分野のエキスパート企業との協力なパートナーシップによって、多岐にわたるAzure関連ソリューションをご提供しています。

「Azureのサービスを提供している企業が多すぎて、どの企業が自社にベストか分からない」
「Azure導入のメリット・デメリットを知りたい」
「Azureがどういう課題を解決してくれるのか知りたい」
など、Azureに関するお悩みならお気軽にお問い合わせください。
中立的な立場で、貴社に最適なソリューションをご提案いたします。

クラウドサーバーご検討中の方必見
お役立ち資料一覧

クラウドサーバーご検討中の方必見 お役立ち資料一覧
  • クラウドサーバーの導入を検討しているがオンプレミスとどう違うのか
  • AWSとAzureの違いについて知りたい
  • そもそもAzureについて基礎から知りたい
  • 今、話題の「WVD」って何?

そのようなお悩みはありませんか?
Azure相談センターでは、上記のようなお悩みを解決する
ダウンロード資料を豊富にご用意しています。
是非、ご覧ください。

Azureの導入・運用に役立つ資料を
無料でダウンロードしていただけますDOWNLOAD

オンプレミスからクラウドへの移行を検討している方のために、安心・スムーズな移行を実現する方法を解説し、
運用コストの削減に有効な「リザーブドインスタンス」もご紹介するホワイトペーパーです。

Azureのことなら、
SB C&Sにご相談を!

導入から活用まで専門スタッフが回答いたします。
お気軽にお問い合わせください。