
AWS入門 初心者が覚えておくべきAWSの基本
Azure Functionsとは、Microsoft Azure(以下、Azureといいます。)で提供されている、アプリケーション開発関連サービスの1つになります。サーバーレスアーキテクチャが採用されており、マイクロサービスを実装していくことができます。
「サーバーレスアーキテクチャってなんだろう?」「マイクロサービスってどういうこと?」と思われた方も多いと思います。これらは、クラウドサービスが発展してく上で今後主流になって行く重要な概念になります。
本コラムでは、これらの概要が理解できるように解説させていただきます。
Azure Functionsは、Azure上でコード(関数)をサーバーなしに(サーバーレスで)実行できるサービスです。
利用者は、サーバーを意識する必要がなく、アプリケーションロジックの開発に集中することができます。
Azure Functionsを利用することによって、WebAPIやWebサービスを効率的に作ることができます。一つのフレームワークと言い換えた方が分り易いかもしれません。
「サーバーレス」といっても実際にサーバーが存在しない、サーバーが要らない。というわけではありません。サーバーの存在を意識することなく利用することができる、ということです。サーバーレスアーキテクチャはクラウドサービスが目指している近い将来のあるべき姿の一部がいち早く具現化されているサービスと言えます。
Azure Functionsを利用すると、フルマネージドサービスとしてサーバーなどの開発環境が提供されますので、アプリケーションに大量のリクエストが来た場合への対応策の一つとしてサーバー台数を増やすことなどを気にする必要はありません。Azureが自動的に対応してくれます。また、サーバーのハード障害についても心配する必要がありません。自動的に切り替えてくれます。
ユーザーは、サーバー構築や障害への対応を気にすることなく、ただアプリケーションのロジックを書くことに集中できるようになります。
マイクロサービスとは、開発システムを、メンテナンス性を高めることを目的として、小さなモジュール群で構成されるサービス開発手法です。なお、マイクロサービスは開発手法の呼び名であり、どのようない技術を実装で利用するかについては問われません。
Azure Functionsを利用するにあたり、気にすべきことは作成したいアプリケーションロジックに対応しているかです。Azure Functionsでは、「トリガー」を使ってアプリケーションを起動することが出来ます。
また、アプリケーションによって導き出された結果を「バインド」を利用することで引数の受け渡しが可能になっています。
Azure Functionsでは開発言語は、C#, Java, JavaScript, Python, PowerShellのいずれかの言語を自由に選んで関数を記述できます
Azure Functionsには、次の3種類の価格プランがあり、利用するニーズに最適なプランを選択します。選択するプランにより、次のような動作に影響があります。
リソース(サーバー等)の管理について考慮する必要がなく、コードを実行した時間に応じた料金のみを支払います。仮想マシンを利用する時のようにアイドル状態の仮想マシンの料金や、予約容量の事前の料金を払う必要がありません。ただし、次のような制限があります。
常にオンラインの状態で即時に応答する準備が整った、事前にウォーミングされたインスタンスをいくつか自分で指定します。関数が実行されると、追加で必要となるコンピューティングリソースがAzureから提供されます。
Azureによってアプリケーションがスケールアウトまたはスケールインされたときに追加で使用されるインスタンスが、支払いの対象になります。
関数をWebアプリと同様に実行できます。Azure App Serviceを他のアプリケーションに使用している場合、追加コストを負担することなく、同じプランで関数を実行できます。
従量課金プランでのデメリットを解消するために、このプランを選択します。料金は少し上ってしまいますが。
稼働させたいアプリケーションの特徴によって、最適なプランを選択することにより、管理負荷とコストを最適化しましょう。
Azure Functionsの開発やテストは、Azure Portalからも行うことができますが、多くの開発者は、ローカルコンピューター上での開発を好むようです。Azure Functionsでは、ローカルコンピューター上でお気入りのコードエディターや開発ルーツを使用して、関数を作成し、テストすることができます。
ローカル関数はライブAzureサービスに接続できるため、完全なFunctionsランタイムを使用してローカルコンピューター上で関数をデバックすることができます。
ローカルでの環境は、使用する言語とツールによっても異なりますが、基本的には次のツールを利用することが可能です。
ローカルコンピューター上で開発するときの最大の注意事項は、ローカル開発とポータル開発を混在させてはいけない、ということです。ローカルプロジェクトから関数を発行するときは、ポータルではプロジェクトコードを管理して変更しないようにしないといけせん。
Azure Functionsは、ユーザーが開発環境としてのサーバー構築や運用のことを気にすることなくアプリケーション開発できるようにするための仕組みです。コード以外の部分がすべてフルマネージドサービスとして提供されるAzure Functions。サーバーレスアーキテクチャやマイクロサービスアーキテクチャはこれからの技術として注目されておりますが、その素晴らしさの片鱗を垣間見ることができるのではないでしょうか。まずは業務アプリケーションの一つの小さな機能からでも、サーバーレス化を進めてみて、感触をためされてはいかがでしょうか。
移行準備段階で知っておくべきMicrosoft Azureの
サービスを学び、具体的にクラウド検討を考える!
ネットワークからクラウドまでトータルサポート!!
NTT東日本のクラウド導入・運用サービスを確認してください!!