モダンアプリケーション開発に使える新サービス
Amazon Web Services(AWS)の年次イベント「AWS re:Invent 2019」が12月2日からスタートした(関連記事はこちら、こちら、こちら)。その開催期間はAWSから毎日のように大量のアナウンスが行われる。他のITベンダーも年次イベントを開催しているが、短期間にこれだけ多くのアナウンスが行われることは例を見ない。AWS re:Inventに独特のスタイルだが、この方式にはいくつか問題がある。一気に大量のリリースが放出されるため、どのリリースがどの程度重要なのか、その判断が難しいということだ。
AWSが提供するサービスは多種多様であるため、一概にどれが重要かは言えないのだが、対象を絞り込むことで注目すべきリリースをある程度絞り込める。Product Marketing Sr. ManagerであるAaron Kao氏によれば、モダンアプリケーション開発に注目しているのであれば、特に次のアナウンスに目を通すとよいだろうとのことだ。
- Amazon EKS on AWS Fargate Now Generally Available|AWS News Blog
- New – Provisioned Concurrency for Lambda Functions
- Using Amazon RDS Proxy with AWS Lambda
- Introducing Amazon EventBridge schema registry and discovery – In preview
コンテナ技術やサーバレス技術は比較的モダンなアプリケーションで使われることが多い。AWSは数年前から、コンテナやサーバレス系のサービスの提供および強化に取り組んでいる。AWS re:Invent 2019で発表されたサービスは、既に公開されているコンテナまたはサーバレス系の技術に新しい機能を追加するタイプのものだった。Amazon EKS、Amazon Forgate、Lambdaといったサービスを使っているなら、上記のアナウンスをチェックしてみるとよいだろう。
Amazon EKS on AWS Fargate
「Amazon EKS on AWS Fargate」はAmazon Elastic Kubernetes Serviceを使ってAWS Fargate上でKubernetesポッドを実行できるようにするというサービスだ。2019年11月3日(米国時間)より利用できるようになっている。
Kubetenesはコンテナを管理する技術として広く使われているが、それでもなおコンテナは管理が煩雑と言える。AWS Fargateを利用することで、コンテナにまつわる管理の手間を省くことができる。AWS re:Invent 2019で発表された「Amazon EKS on AWS Fargate」はさらに利便性を広げるだろう。
Provisioned Concurrency for Lambda Functions
サーバレスサービスの代表格の1つとなったAWS Lambdaは、サービス開始から5年が経過している。この5年間でさまざまなサービスがAWS Lambdaを利用するようになったが、ミッションクリティカルなアプリケーションがサーバレスに移行するには、アプリケーションパフォーマンスをより細かく制御できる必要がある。この問題を解決するのが、今回発表された「Provisioned Concurrency for Lambda Functions」ということになる。
Lambdaにおける処理は基本的にコールドスタートだ。状況にはよるが、しばらく使われていないLambda関数の場合、呼び出しに合わせて実行環境の構築が行われる。Lambdaを利用するほとんどのアプリケーションはこれで問題ないが、一部のアプリケーションではこの遅延が許容できないことがあるという。Provisioned Concurrency for Lambda Functionsはこれに応えるサービスとなる。同サービスは、事前に実行環境の構築を終わらせておき、即座に呼び出しに対して応答できるようにするものだ。
Amazon RDS Proxy with AWS Lambda
AWS Lambdaには、必要に応じて自動的にスケールするという特徴がある。ただし、スケールが自動的に行われる場合、Lambdaからリレーショナルデータベースに接続するところで問題が発生する。Lambda関数からのアクセスは、多くの場合、リレーショナル・データベースに対するものだ。Lambdaそのものは数万といった数でもスケールして処理できるが、バックエンドで同時にリレーショナルデータベースに接続するとなると、ここがボトルネックとなってしまう。これを解消するサービスが「Amazon RDS Proxy」だ。
Amazon RDS ProxyはLambda関数とリレーショナルデータベースの間に入って接続プールの処理を行ってくれる。これによって、Lambda関数の呼び出しごとに接続を作成するのではなく、既存の接続を再利用することができ、メモリやCPUリソースといったコンピュータリソースの消費を抑えることが可能とされている。
Amazon EventBridge schema registry and discovery
「Amazon EventBridge schema registry and discovery」は開発者向けの新しいツールで、イベント駆動型アプリケーションの開発に利用できるとされている。
Amazon EventBridge schema registry and discoveryによって、イベントやその構造、スキーマを検索したり、1カ所に保存したりすることが可能になる。その結果、イベント駆動型アプリケーションの開発がこれまでよりも簡単になるという。
Kao氏が取り上げた新機能は、どれも既存のサービスが適用範囲を広げる中で出てきた要望に応えるものになっている。該当するサービスを使っている場合は、これら新機能を調べてみるとよいだろう。