re:Invent 2017 サーバーレス関連エントリーまとめ #reinvent

2017.11.30

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

2018年1月4日更新

本記事では re:Invent 2017 のサーバーレスに関するセッションをまとめています。今年もサーバーレス熱いです。すごく細かいところをチューニングできるようになったかと思えば、 Aurora ServerlessAmazon Neptune といったサービス単位での発表もあったり、目が離せません。

新サービス: Amazon Aurora Serverless

インスタンスのプロビジョニングが不要なタイプの Aurora が発表されました。 このサービスをすぐにサーバーレスアプリケーションに組み込めるか?については、検証が必要だと考えています。

新サービス: Amazon Neptune

フルマネージドのグラフデータベースサービス、 Amazon Neptune が発表されました。DynamoDB ではどうしても実現できなかった(または、どうしても大変になる)複雑な検索やリレーションシップの探索などを行えるため、サーバーレスに関する検索のソリューションが一気に進むかもしれないと思っています。

新サービス: AWS AppSync

クロスプラットフォームでデータのリアルタイム同期を行うために、GraphQL をベースとしたアプリケーションのバックエンドを提供してくれる新サービスが発表されました。 AppSync は、クライアントアプリケーションでリアルタイム処理やオフライン処理などの要件をシンプルに満たせるようになるため、モバイル界隈での盛り上がっていますが、GraphQL のバックエンドがマネージドサービスとして提供されたことを考えると、サーバーサイドにとっても大きな発表です。APIはサーバーレスなフルマネージドサービスとして提供されるため、運用面でのコスト削減を期待できます。GraphQL APIを提供するWebサービスはいくつかありますが、それを自分のサービスに組み込み提供することが簡単になったと思うと、興奮を抑えられません。

セッションの中には、早速コードを交えながら AppSync の動きを一緒に見るセッションもありました。

新サービス: AWS Cloud9

以前買収していたCloud9が、AWS公式サービスとなり新登場しました。ブラウザベースのIDEで開発したあと、AWSクラウドへデプロイできます。サーバーレスの要であるLambdaへの対応が嬉しいです。ブラウザベースを活かした。複数のユーザーで同時に編集する機能もあるようなので、サーバーレスアプリケーションのデファクトスタンダートとなることを期待しています。

新サービス: AWS Serverless Application Repository

ソースコードは GitHub、 Dockerイメージは DockerHub と同様、サーバーレスアプリケーションは Serverless Application Repository という時代が来るかもしれません。イメージとしては、Serverless Application Model (SAM) で作成したアプリケーションを登録しておけば、Lambda Function 作成時に Serverless Application Repository から選べるようになる、というもののようです。公開プレビューが待たれます。

新サービス: AWS Fargate

コンテナの管理に、EC2インスタンス管理が不要になりました。ECSから一歩進みました。Lambdaの使い勝手とECSの柔軟性を兼ね備えた、素晴らしいサービスだと思います。一回あたりの処理時間が長いバッチ処理などは、Lambda の設定を工夫して使うよりもシンプルになるかもしれません。Lambdaとの使い分けについては、実際に試してみてまた議論したいと思います。

新サービス: AWS Media Services

動画配信に必要な機能を提供するサービス群です。重いワークロードの代表格である動画配信も、このサービスを使えば多くの部分をサーバーレスにできそうです。

新サービス: Amazon Transcribe

音声データから文字起こしを行う、機械学習を応用したフルマネージドサービスです。プレビュー期間中は英語とスペイン語に対応しています。このような高度なサービスは、運用はもちろん、開発や構築も大変です。それを全てフルマネージドサービスとして提供されるので、開発者はより簡単に高度な音声関連機能を組み込めます。

新サービス: Amazon Comprehend – Continuously Trained Natural Language Processing

テキストデータを解析してくれる、機械学習を応用したフルマネージドサービスです。分析した結果は、感情抽出やポジティブ/ネガティブなど様々な側面から、APIとして取り出すことができます。Amazon Transcribe 同様、英語とスペイン語に対応しているとのことです。

新サービス: Amazon MQ

ActiveMQ 互換のメッセージブローカーサービスです。SQSとの使い分けが気になっていたのですが、弊社横田の記事でマイグレーションについての言及を読み、納得しました。

新サービス: Amazon Kinesis Video Streams

動画の分析や機械学習などを目的としてAWS上で簡単かつ安全にストリーミングできるようになるサービスです。他のサービスやアプリケーションと連携できます。例えば、Amazon Rekognition Video との統合、 Apache MxNet、TensorFlow、OpenCV といった ML フレームワーク向けライブラリとの統合などです。

AWS Lambda に関するエントリー

.NET core 2.0とGolang対応

ついに来ましたね。特に Golang は心待ちにしていた人も多いのではないでしょうか。

最大メモリサイズが 3GB に

もともと1.5GBが上限だったものが、3GBまで利用可能になりました。

ClodTrail での実行ログサポート

CloudTrailも収集できるログがどんどん増えています。セッションの中には、CloudTrail のログを ElasticSearch Service に流して Kibana でよく使われるAPIを分析する、をやっているものもありました。

CloudWatch Logs への導線が改善

たしか前はロググループへのジャンプだったと記憶しています。ログが出力されているストリームへ直接ジャンプできるようになったので、実行ログの確認作業が捗るようになりました。

Amazon API Gateway に関するエントリー

Canary Release Deployment をサポート

API Gateway に新しく追加された Canary Release Deployments を試しました。これまでは、本番ステージへ適用する前にテストステージなどで十分に確認したあと、100%置き換えることしかできませんでした。 Canary がサポートされたことによって一部のリクエストのみ振り分けられるようになった上、その結果を CloudWatch で確認することが可能になりました。A/B テストができるようになりましたので、素早いデプロイと効果測定が必要になるモバイル領域で活躍してくれそうですね。

API Gateway VPC Integration

PC内のリソースをバックエンドに指定することができるようになりました。ネットワークに関して、リージョン間ピアリングや PrivateLink エンドポイントなど、今回の re:Invent でさらに進化していますね。

サーバーレスアーキテクチャ に関するエントリー

【レポート】マイクロサービスをサーバーレスでデザインしよう #reinvent #SRV310

マイクロサービスアーキテクチャを構築する上で必要となる要件を整理しつつ、それに対してサーバーレスがどのように応えるのかを、AWSのサービス群を実装例として示していました。 Lambda Function のウォームスタートとコールドスタートそれぞれに対する性能向上の対策が面白かったです。

【レポート】RET304: Amazon Freshを強化するサーバーレスアーキテクチャを採用してリテール顧客へ迅速に対応 #reinvent #RET304

Amazon Fresh が採用しているサーバーレスアーキテクチャを紹介するセッションです。こうしてみると、AWSの各サービスの役割や得意なことを理解して適切に配置すれば、期待通りののパフォーマンスを発揮してくれるという、良い例ですね。

【レポート】Amazon CloudFrontとAWS Lambda@Edgeの紹介 #reinvent #CTD201

CloudFront は、ユーザーリクエストの窓口として、様々な体験を提供する窓口になります。このセッションでは Lambda@Edge を利用して、ユーザー体験をカスタマイズする例を紹介しています。また、コンテンツの配信および高速化のためのキャッシングについても解説があります。サーバーレスアプリケーションでは前面に CloudFront を置くことも多いため、どのようなことができるのか知っておくのは良いことです。

【レポート】サーバーレスアーキテクチャ:30分で30連発 #reinvent #SRV213

Lambda をベースとした、サーバーレスアーキテクチャの構成例が基本から30個紹介されました。知っているものもありましたが、私はストアドプロシージャから Lambda Function をコールできることは知りませんでした。「Lambda ってどういうふうに呼べたっけ?」という疑問が湧いたときに、思い出すきっかけとして本セッションの内容はうってつけだと思います。

【レポート】サーバーレスでの画像処理プラットフォーム構築ワークショップ #reinvent #ARC326

Rekognition + ElasticSearch Service + Kiabbana な画像検索処理を実装しました。楽しかったです。と同時に、ここまでのことがサーバーレスでできるのだな、とわかって驚きました。

まとめ

これだけのことが新しくサーバーレスアプリケーションでできるようになると思うと、とてもワクワクしますね。Developers.IO の記事は常に追加・更新されます。これからは、 re:Invent で発表された内容を試してみた、新サービスを使って作ってみた、といった記事が多数上がると思いますので、ぜひウォッチしてください。re:Invent2017については、以下ポータルに整理されています。こちらもご参照ください。