AWS公式で「形で始めるサーバーレス設計」が紹介されています!

555件のシェア(そこそこ話題の記事)

はじめに

サーバーレス開発部の藤井元貴です。

サーバーレスな設計や開発は意外と難しいものです。特に「やりたいこと」が「サーバーレス」で実現できるのか? を常に意識し続け、トライ・アンド・エラーを繰り返すことが重要です。

そこで、先日みつけた形で始めるサーバーレス設計をご紹介します。簡単ですが、ひとことコメントもあります。

上記の内容を知らなくとも、結果的に「あ、同じ構成(考え方)だ!」となる場合が多いです。 そのため、事前に知っておくことで手札を増やすことができ、より効率よくサーバーレスな設計を実現できると思います。

おすすめの方

  • サーバーレスに興味がある
  • サーバーレスな設計を知りたい

形で始めるサーバーレス設計

下記となります!

動的 Web / モバイルバックエンド

API Gatewayを用いる王道パターンです。業務でもプライベートでも、よく使う構成ではないでしょうか。

インタラクティブモバイル

モバイルアプリなどのバックエンドにGraphQLを用いたリアルタイムデータ同期サービスです。

業務 API / グループ企業間 API

VPCを用いて、プライベートな空間に構築しています。Lambdaの特性(VPCだと起動が遅い)などに注意です。

配信系・インタラクティブ API

配信系はさっぱりです……。API GatewayがWebSocketをサポートしたので、チャットアプリとかは作りやすくなりましたね!

画像処理 / シンプルなデータ加工

S3バケットに何らかのファイルをアップロードし、それを検知してLambdaが起動して処理する構成ですね。まさにイベントドリブン!

分散並列処理

大量データをLambdaで処理するときに、効率よく処理するための分散処理ですね。1つのLambdaで数時間かかる処理でも、分散並列に処理することで数分になったりします!

イベント駆動の業務処理連携

SNSやSQSを使うことで、何らかのポーリング処理が不要になります。これもイベントドリブンですね!

アプリフロー処理 / ワークフロー

Step Functionを使ってイイカンジにできます。コレ使えるとかなり便利みたいです。(勉強せねば)

ストリーミング処理

たくさんのデータをKinesis DataStreamで扱って、順番に処理するのも王道パターンです。お世話になってます。

IoT バックエンド

IoTに特化したサービスですね。自宅でIoT CoreとRaspberry Piを使って遊んでます。証明証などセキュリティも考慮されており安心です。

チャットボット / Alexa スキル

これは未知の領域です……(個人的に)。

データ変更トリガー処理

DynamoDB Streamを用いる構成ですね。DynamoDBのデータが更新されたらLambdaを起動して、、、といった形です。

ログデータ収集処理

Kinesisシリーズのひとつ、Firehoseを用いる構成です。ログをイイカンジにS3バケットに保存するときなどに役立ちます。

データレイクからのデータ加工

大量データをGlueで処理し、データレイクに入れる構成ですね。例えば、毎日S3バケットに格納されるログを整理・整形し、データレイクに格納する処理をサーバーレスで実現できます。

機械学習パイプライン

これも未知の領域です……(個人的に)。(大量データによる機械学習を効率よく行う仕組み?)

スケジュール・ジョブ/CRON

「毎日朝8時に実行」などの事がお手軽にできます。

パターンの組み合わせ

上記のパターンが単体で完結することは少ないです。

実際にサーバーレスな設計を実現する場合は、下記のように、組み合わせることが多くなります。

これらの組み合わせを考えるのも、サーバーレス設計の面白いところです!

さいごに

今回ご紹介したサイトに

開発担当・エンジニアの方に ≫ 実例の話を聞きたい方へ 「Serverless Tech/事例セミナー(3/27)」

とあります。

AWS Serverless Tech/事例セミナー - サーバーレスで Ruby 他、いろんな言語が使えるよ」にクラスメソッドの和田(サーバーレス開発部!!)も登壇します。

16:00-16:40 Webアプリエンジニアに贈る アプリケーション開発におけるサーバーレス流の考え方 昨今、アプリケーションをつくるのに、様々な手段があります。「フルサーバーレス」はその一つで、マネージドサービスを駆使し効率的にアプリケーション開発を行うことができます。とはいえ、「アプリ開発」とひとことでいっても、必要な作業は多岐に渡ります。本セッションでは、Amazon EC2 に Play Framework + Scala で Webアプリ を構築する流れを比較対象の例にとり、サーバーレスで開発する場合の「考え方」を話します。言語や実装パターンの話よりも、典型的なWebアプリの開発手法がサーバーレスにおいても適用できるのか、またはまったく考え方を変えなければいけないのか、という議論が焦点です。以下のトピックに言及します: ・Webアプリ開発(API・UI)、IDE、構成管理・ビルド・デプロイ、テスト、ロギング、プロジェクトの進め方とアプリケーション設計 クラスメソッド株式会社 和田祐介氏

ほかにも魅力的な内容がありますので、興味がある方はぜひご参加ください!

クラスメソッドのサーバーレス開発部に興味がある方は、こちらなどいかがでしょうか!