AWS,Azure,GCPにイベントドリブンのサービスが揃ったのでこれらについてまとめてみました
クラウドサービスのおさらい
- とりあえずAWSとAzureとGCPを比較
AWS - Amazon Web Services
- Amazon社が運用しているクラウドサービス
- 2006年にローンチされ、業界シェアNo1
- ユーザが多いため、日本語のドキュメントやコミュニティが豊富
- 基本USドル支払いのため、為替レートに影響される
- 支払いを円払いにするとAWSレートで計算されるので、クレジットカードのレートより安いかも
Azure - Microsoft Azure
- Microsoft社が運用しているクラウドサービス
- 2010年にローンチされた
- リージョンが東日本と西日本にあるため、関西圏での速度が出やすい
- 円払い可能
- 日本語のドキュメントが少ない・・・
GCP - Google Cloud Platform
- Google社が運用しているサービス
- 2008年にローンチされた
- ロードバランサがリージョンを跨いで使える
- ライブマイグレーション機能あり
- 現状、日本にリージョンがない
- 2016年度内に日本リージョンが来るらしい
- 日本リージョンが来る前にGoogleCloudPlatformを使える状態にしてみた
- 日本語の情報がまだまだ少ない
比較
AWS | Azure | GCP | |
---|---|---|---|
サーバ | EC2 | Virtual Machine | Compute Engine |
ストレージ | S3 | Storage BLOB | Cloud Storage |
RDBMS | RDS | SQL Database | Cloud SQL |
Hadoop | EMR | HDInsignt | Cloud Dataflow |
データウェアハウス | Redshift | SQL Data Warehouse | BigQuery |
イベント駆動 | Lambda | Azure Functions | Cloud Functions |
サーバレスアーキテクチャとは
- 言葉の通り
- サーバをなくした構成
- マネージドサービスを利用することでサーバを利用せずに構成する
- サーバは極力最小限に利用する
- そして、本当に必要なとき、必要なだけマネージドサービスを利用する
- 管理・運用するサーバ/インフラがなければ、その分他のタスクに集中できる
- 管理・運用するサーバ/インフラがない
- インフラ構築
- 管理・運用するサーバがなければ構築する必要もない
- インフラ運用
- 必要に応じてマネージドサービスを利用
- 自分で構築不要
- スケール
- オートスケールの設定が不要
- 事前にサーバを準備する必要もない
- モニタリング
- CPU, メモリなどの監視をする必要がない
- セキュリティパッチの適用
- yum updateとかしなくていい
- 必要に応じてマネージドサービスを利用
- インフラ構築
- バックエンド側のコード記述が不要に
- 管理・運用するサーバ/インフラがない
- 2015年後半に登場
- 特にイベントドリブン型サービスLambdaが登場した2015年11月頃から言われ始めた
イベントドリブンとは
- 起こったイベントにしたがって、処理を実行する
- 例
- スケジュールに従って動作
- cronとか
- 時間というイベントに従って、処理を実行
- ユーザからの要求に従って動作
- 要求というイベントに従って、処理を実行
- スケジュールに従って動作
- イベントドリブンを使うとコストが下げられる
- イベントドリブンを使わないと
- スケジュールに従って動作
- 10分実行しても、1時間実行しても、1時間分の料金が必要
- ユーザからの要求に従って動作
- ユーザからの動作を受け付けるために常に稼働する必要がある
- スケジュールに従って動作
- イベントドリブンを使うと
- イベントが発火したときのみ課金
- イベントが発火したときのみ稼働
- イベントドリブンを使わないと
イベントドリブン型のサービス
- AWS, Azure, GCPにおけるイベントドリブンのサービスについて
Lambda
- インフラを一切気にせず、アプリケーションコードを実行できる
- OS, ミドルウェアなどはAWSが管理
- 実行するアプリケーションのみ集中
- 特徴
- AWSサービスと連携させることが容易
- オートスケール
- イベントの状況に応じて自動的にスケール
- 料金
- イベントの実行回数、実行時間に応じて課金
- 実行基盤
- Lambda Function
- Node.js、Java、Python2.7をサポート
- タイムアウト時間は5分
- 最小1分インターバルでcron処理も可能
- Lambda Function
Azure Functions
あとでかく
Cloud Functions
あとでかく
イベントドリブン型サービスの使いドコロ
- サーバレスにするために、すべてをイベントドリブンにする必要はない
- 動き方が異なるので、必ずしも代替にはならない
- 使いドコロを考えることが重要
- AWSで比較
- EC2
- スケールの単位はインスタンス
- OSやネットワークなどインフラ系の制御がしたい
- Lambda
- スケールの単位はFunction
- 必要なときのみ実行したい
- インフラ触りたくない
- EC2