Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationEventAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
6
Help us understand the problem. What is going on with this article?

More than 1 year has passed since last update.

@curanosuke

サーバレスアンチパターンが無くなった日

Amazon RDS ProxyがGAに!

Amazon RDS ProxyがGAされたことで、@Keisuke69 さんのツイートの最後のパーツが揃ったので、名実共に今年がサーバレス元年に。
これまでサーバレスアンチパターンと言われていた構成でも使えるようになり、サーバレスアンチパターンがほぼ無くなりました。

今月になってサーバレス関連のイベントや、Webinarが増えていて、いくつか参加して聴いた内容をまとめておこうと思います。

lambda × RDS

lambdaはイベントやリクエストのたびにコンテナが起動され、そのタイミングでDBへのコネクションが張られるため、同時に処理すべきリクエスト数分のコネクションが張られることになります。RDBMSは同時接続数に限界があるため、DBへの都度接続のオーバーヘッドを回避したいのですが、コンテナ間でコネクションプールを共有することは難しいため、スケールアップが前提のRDSにおいて、lambdaとRDSの組み合わせはアンチパターンと言われてきました。なので、lambdaはこれまで分散型データベースであるDynamoDBと組み合わせて使うことが前提になっていました。こちらから要約させてもらったので、詳しい内容は見てみてください。

RDS Proxy登場

RDS Proxyが登場したことで、lambdaとRDSのコネクションプールの役目をRDS Proxyが担うことができるようになり、コネクションを有効活用してLambdaからRDSにアクセスできるようになりました。ただ、RDS Proxyを使う場合にはコストが余計にかかることと、RDSがスケールアップが前提というのは変わらないので、RDS Proxy側でRDS側の最大接続数に対してコネクションを許可する割合を設定したりしながら、RDSのCPUやメモリなどのリソースが逼迫しないようにチューニングする必要性はありそうです。

lambda × EFSと新しいアンチパターン

lambdaからEFSをマウントできるようになったことで、lambda間でデータを保存、共有できるようになったのですが、その結果 lambdaでステートフルなアプリケーションを作ってしまう可能性が高まりそうです。これまでのサーバレスアンチパターンは解消されましたが、新しいアンチパターンが生まれることもありそうです。全てを無理にlambdaでやろうとすることが最大のアンチパターンという話もありました。

それでも制限や制約もある

lambdaは水平方向のスケーラビリティは確保されているものの、スパイクなどの急激なリクエスト数の変化や、リクエスト数が少なくてもUXのために遅延を回避したい場合、またはlambdaバースト制限の緩和に対しては、Provisioned Concurrencyを活用してチューニングする必要がありそうです。また、lambdaの実行時間15分を超えるような処理の場合は、Fargateの活用も考えるべきでしょう。

Provisioned Concurrencyのチューニングについては、ServerlessJPでのAWS下川さんのスライドを参考にさせてもらいました。

thumbnail

モノリスだっていいところもある

これだけサーバレスのアンチパターンが無くなると、モノリスは無くなっていく(無くしていきたい)と思ったりしたのですが、@tcshさんのツイートを読んでなるほどと。安定を求めるか変化を求めるか。やっぱりサーバレスを考える上では、ビジネスや文化や組織論的な話につながっていくんでしょうね。

モノリスからサーバレスへ

なんでもサーバレスはアンチパターンとはいえ、適切な手順を経てサーバレスに移行することで得られるビジネス上の価値も大きいとは思います。AWS Expert Onlineの下川さんのセッションに、ベストプラクティスがギュッと詰まってました。

6
Help us understand the problem. What is going on with this article?
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
6
Help us understand the problem. What is going on with this article?