サーバレス HTTP イベントトリガー の各クラウド比較

2022年12月24日掲載

キービジュアル

本記事は、ソフトバンクアドベントカレンダー 2022   24日目の記事です。

本記事では、Alibaba Cloud、Amazon Web Services、 Microsoft Azure と Google Cloud の4つのクラウドにおけるサーバレスの設定、その中でも HTTP イベントの設定について、紹介します。

目次

  • サーバレスのファンクションのHTTPトリガーを紹介します
  • 初心者向けに、各クラウドサービスでの操作方法を紹介します
  • HTTPトリガーを手軽に利用できるようにしておくと、サービス間連携の接続性確認時にさっと使えるので便利です

サーバレスとは

サーバレスは、プログラミングされたアプリケーションの処理を実行することを主な目的としていて、サーバを意識せずにシステムを構築することができるサービスで、各クラウドで導入されています。

サーバレスとは言え、実体としては、OS、ミドルウエアなどはありますが、これらのメンテナンス等、サーバの管理は各クラウド事業者側が行うことになりますので、システムの運用コストを抑えられる特徴があります。

サーバレスのファンクションは、さまざまなトリガーで起動されますが、今回はHTTPトリガーを紹介します。HTTPトリガーを手軽に利用できるようにしておくと、サービス間連携の接続性確認時にさっと使えるので便利です。

サーバレスの概要の詳細説明などは、以前公開された記事「サーバレスってなに?Alibaba Cloud, AWS, Azure, Google Cloud のサーバレスサービスを比べてみました」をご参照ください。

 

Alibaba Cloud のサーバレス設定

Alibaba Cloud では、Alibaba Function Compute を使用して設定を確認します。

Alibaba Cloud のコンソールにログインし、「 Function Compute 」を選択します。

「サービスの作成」を選択します。

「名前」欄を記入します。(他はデフォルト)

「関数を作成」を選択します。

「組み込みランタイムを使い作成する」を選択し、「関数名」欄を記入、「リクエストタイプ」欄は「 HTTP リクエスト」を選択、「ランタイム環境」欄は「Node.js 14」を選択、「コードのアップロード方法」欄は、「 Hello, World の例」を選択し、「作成」ボタンを押します。

コードはそのままで、「テスト関数」タブを選択し、「関数のテスト」ボタンを押すと、実行結果が表示されます。

また、「トリガー関数(URL)」タブから、「インターネットエンドポイント」欄の URL をコピーします。

ブラウザからこの URL にアクセスすると、同じ内容のファイルがダウンロードされます。

AWSのサーバレス設定

AWSでは、AWS Lambda 関数を使用して設定を確認します。

AWS マネジメントコンソールにログインします。

「 Lamdba 」を選択します。

「関数を作成」を選択します。

「一から作成」を選択し、「関数名」欄を入力、「ランタイム」欄を選択、「詳細設定」を開きます。

「関数 URL を有効化」にチェックをし、「認証タイプ」欄は「 NONE 」を選択し、「関数を作成」ボタンを押します。

「テスト」タブを選択します。

そのままで「保存」ボタンを押します。

「関数の URL 」欄の URL をコピーし、ブラウザからアクセスすると、以下の結果が表示されます。

操作画面

Azureのサーバレス設定

Azure では、Azure Functions を使用して設定を確認します。

Azure portal にサインインします。

「 Function App 」を選択します。

「リソースグループ」欄を選択し、「関数アプリ名」欄を入力、「公開」欄で「コード」を選択、「ランタイムスタック」欄で「 Node.js 」を選択、「バージョン」欄で「 16 LTS 」を選択、「地域」欄は「Japan East」を選択、「オペレーティング システム」欄は「 Windows 」を選択、「プランの種類」欄は「消費量(サーバレス)」を選択し、「作成および確認」ボタンを押します。

「作成」ボタンを押します。

「リソースに移動」を選択します。

「作成」をクリックして、「開発環境」欄で「ポータルで開発」を選択、「テンプレート」欄で、「 HTTP trigger 」を選択し、「作成」ボタンを押します。

左メニュー欄の「コードとテスト」を選択します。

Google Cloud のサーバレス設定

Google Cloud では、Cloud Functions を使用して設定を確認します。

Google Cloud の管理コンソールにログインします。

「 Cloud Functions 」を選択します。

「関数を作成」ボタンを押します。

「環境」欄から「第 1 世代」を選択し、「関数名」欄を入力、「リージョン」欄で「 asia-northeast1 」を選択、「トリガーのタイプ」欄で「 HTTP 」を選択、「 HTTPS 」欄で「必須」を選択して、「保存」ボタンを押します。

(「認証」欄は、変更する権限がないので、デフォルトのまま)

そのまま、「次へ」ボタンを押します。

そのまま「デプロイ」ボタンを押します。

デプロイが完了した画面で、「テスト中」タブを選択します。

各クラウドにおける他サービスとの連携

今回は HTTP イベント トリガーについて設定確認をしました。

各クラウドは HTTP イベント トリガーだけではなく、以下のように各サービスとの連携ができるようになっています。

クラウド名

Alibaba Cloud

AWS

Azure

Google Cloud

サービス/トリガー

Manage triggers

Formats of event for different triggers

Time trigger

OSS triggers

SLS triggers

CDN event triggers

Tablestore trigger

HTTP triggers

MNS topic triggers

MNS queue triggers

Message Queue for Apache RocketMQ triggers

Message Queue for RabbitMQ triggers

Message Queue for Apache Kafka triggers

API Gateway trigger

EventBridge trigger

Amazon Alexa

Amazon Managed Streaming for Apache Kafka

セルフマネージド Apache Kafka

Amazon API Gateway

AWS CloudFormation

Amazon CloudFront (Lambda@Edge)

Amazon EventBridge (CloudWatch Events)

Amazon CloudWatch Logs

AWS CodeCommit

AWS CodePipeline

Amazon Cognito

AWS Config

Amazon Connect

Amazon DynamoDB

Amazon Elastic File System

Elastic Load Balancing (Application Load Balancer)

AWS IoT

AWS IoT Events

Amazon Kinesis

Amazon Kinesis Data Firehose

Amazon Lex

Amazon MQ

Amazon Simple Email Service

Amazon Simple Notification Service

Amazon Simple Queue Service

Amazon Simple Storage Service (Amazon S3)

Amazon Simple Storage Service Batch

シークレットマネージャー

AWS X-Ray

Blob Storage

Azure Cosmos DB

Azure SQL (プレビュー)

Dapr3

Event Grid

Event Hubs

HTTP と Webhook

IoT Hub

Kafka2

Mobile Apps

Notification Hubs

Queue Storage

RabbitMQ2

SendGrid

Service Bus

SignalR

Table Storage

Timer

Twilio


(第 1 世代)

HTTP トリガー

イベント トリガー:

 Pub/Sub トリガー

 Cloud Storage トリガー

 Firestore トリガー

 Firebase 向け Google アナリティクス トリガー

 Firebase Realtime Database トリガー

 Firebase Authentication トリガー

 Firebase Remote Config トリガー



(第 2 世代)

HTTP トリガー

イベント トリガー:

 Pub/Sub トリガー

 Cloud Storage トリガー

 汎用の Eventarc トリガー

  ( Eventarc でサポートされている全てのイベントタイプをサポート)


まとめ

いずれも、最初の導入確認として、各クラウドのコンソール画面にあるエディタを使用して、動作確認できました。

初期設定では、AWS と Azure は、管理コンソールとは別のブラウザからアクセスすることができますが、Alibaba Cloud、Google Cloud は権限を設定していないときはクラウドの管理コンソール画面から実行確認することになります。

実際にシステム構築の際には各クラウドの他のサービスと繋げて使用することが多いと思います。そのときには、各クラウドとも、他のサービスとの連携確認を行うはじめの一歩として、簡易に利用できるように感じました。

関連サービス

Amazon Web Services (AWS)

ソフトバンクはAWS アドバンストティアサービスパートナーです。「はじめてのAWS導入」から大規模なサービス基盤や基幹システムの構築まで、お客さまのご要望にあわせて最適なAWS環境の導入を支援します。

Microsoft Azure

Microsoft Azureは、Microsoftが提供するパブリッククラウドプラットフォームです。コンピューティングからデータ保存、アプリケーションなどのリソースを、必要な時に必要な量だけ従量課金で利用することができます。

Google Cloud

Google サービスを支える、信頼性に富んだクラウドサービスです。お客さまのニーズにあわせて利用可能なコンピューティングサービスに始まり、データから価値を導き出す情報分析や、最先端の機械学習技術が搭載されています。

Alibaba Cloud

Alibaba Cloudは中国国内でのクラウド利用はもちろん、日本-中国間のネットワークの不安定さの解消、中国サイバーセキュリティ法への対策など、中国進出に際する課題を解消できるパブリッククラウドサービスです。

MSPサービス

MSP(Managed Service Provider)サービスは、お客さまのパブリッククラウドの導入から運用までをトータルでご提供するマネージドサービスです。

おすすめの記事

条件に該当するページがございません