サーバーレスとは、AWS側が運用も含めて管理する(マネージド)サービスだけで構築したシステムを指します。
①②③の組み合わせが、サーバーレスの典型的な組み合わせになります。RESTful APIを提供する① API Gatewayにアクセスして、コンテナベースの② Lambda関数を実行して、NoSQL型データベースの③ DynamoDBにデータを格納したり、データを取得する仕組みを実装することができます。①にアクセスしないときは、基本的に料金は発生しません。だからサーバーレス。注)③に対するストレージ料金(無料枠25GB超えた場合)は発生します。
本デザインパターンは、①②③の基本形をよりセキュアに運用するための仕組みになります。
④ RDS Proxyとは、② Lambda関数からデータベース⑤ RDSに効率よく接続できるマネージドサービスです。メリットは大きく2つ。
- RDSへの接続にコネクションプールを利用できる
- TLS/SSLでDB接続ができて、RDS Proxy のユーザーに⑦ AWS Identity and Access Management (IAM) 認証を適用し、かつ⑥ 認証情報は暗号化してSecrets Manager から取得できる
よりセキュアにという点は2つ目です。アプリケーションコードにデータベース認証情報を埋め込む代わりに、⑥ Secrets Managerに暗号化して保存されたパスワードを使用し、さらにRDS Proxy のユーザーに対して ⑦ IAM 認証を設定することができます。これにより、⑤ RDSへの接続がよりセキュアに行うことができます。