AWS re:Invent 2018の4日目に登壇したヴァーナー・ボーガスCTOの基調講演では、2時間のうちかなりを費やして、クラウドネイティブ時代のアプリケーション開発について説明された。後半に盛り込まれたのが、サーバーレスの選択肢を拡げる新サービスだ。
「AWSサービスの機能の95%のサービスが顧客からの声から生まれている」と語るボーガス氏。クラウドネイティブ時代のアプリケーション開発においては、統合開発環境、言語、プログラミングのスタイル、ワークフローなどさまざまな選択肢が必要だと説く。同日発表された11のサービスや機能強化は以下の通り。
- Amazon Redshift Concurrency Scaling
- Redshiftが苦手としていた何千もの同時クエリでも一貫したパフォーマンスを提供する。あらかじめバーストクラスターの数を指定しておけば、同時クエリが来た場合にはクラスターをスケールさせることができる。使用時は1秒ごとに課金され、不要になったら自動的に中断される。書き込みは通常通り行なえる。
- AWS Toolkits for Popular IDEs
- 開発者の使っているIDE(統合開発環境)に向けたToolkitsの提供を強化する。PyCharm用のToolkitsの一般公開を開始し、VSCode用、InlelliJ用のToolskitは現在開発中。Python、Java、node.js、.NETなどの言語を使い、IDEでコードを生成し、デバッグやデプロイまで行なえる。すべてOSSとして公開されている。
- AWS LamndaがRubyをサポート
- サーバーレスコンピューティングの代表格であるLambdaがRuby対応。
- AWS Lamnda Runtime API
- Ruby対応を実現したAWS Lamnda Runtime APIも開始され、独自言語を持ち込むことが可能になった。第一弾としてC++、Rustのオープンソースランタイムが提供され、今後サードパーティのラインタイムを用いることで、PHPやErlang、COBOL、Elixir、Swiftなどにも対応する予定。
- AWS Lamnda Layers
- ファンクションにまたがって共有されるコードとデータを集中管理できるサービス。複数のファンクションで利用するコードをLambda Layerとして定義し、各ファンクションから参照できる。ファンクションごとの依存関係などを都度パッケージ化してデプロイする必要がなくなり、コードの再利用も促進される。
- Nested Applications using Serverless Application Repository
- 複数のServerless Application Repository(SAR)を1つのアプリケーションとみなしてデプロイ可能になる。既存のSARを再利用でき、コードの一貫性を保つことが可能になる。
- ALBがLambdaをサポート
- ALBのターゲットとしてLambdaを登録できるようになった。ニーズに応じてAmazon EC2やAWS Fargate、AWS Lambdaを組み合わせることができ、既存のWebアーキテクチャにLambdaを組み込める。
- AWS StepFunctions API Connectors
- コードを記述することなく、AWSサービス同士のワークフローを設計できる。AWS Batch、Amazon ECS、AWS Fargate、AWS Glueのほか、Amazon DynamoDB、Amazon SNS、Amazon SQS、Amazon SageMakerなど8つのサービスと連携する。
- WebSocket Support for API Gateway
- LambdaファンクションとAPI Gatewayを組み合わせることで、リアルタイムな双方向通信を使ったアプリケーションを構築できる。WebSocket接続が確立されると、API Gatewayはコネクションの永続性を管理し、イベントに基づいてLambda関数をトリガーできる。接続されたクライアントにデータを送るためのコールバックエンドポイントも用意されているので、チャットなどのインタラクティブなアプリケーションを容易に構築できる。
- Amazon Management Streaming for Kafka
- 分散ストリーミングプラットフォームであるApache Kafkaのマネージドサービス。フルマネージドなので、可用性の高いKafkaクラスターを実行できる。
- Well-Architected Tools
- ソリューションアーキテクトが使うツールを用いることで、アーキテクチャの改善に役立てることが可能になる。現在のAWSのベストプラクティスとワークロードを照らし合わせたり、最新のベストプラクティスに基づくアドバイスを提供する。また、ワークロード特有のリスクも確認できる。