DBへのコネクションプーリングなどを実現する「Amazon RDS Proxy」が正式版に。サーバレスアプリからの頻繁な接続要求などを高速処理
Amazon Web Services(AWS)は、データベースサービス「Amazon RDS」に対応するプロキシサービス「Amazon RDS Proxy」が正式版になったことを発表しました。
Amazon RDS Proxy is now generally available. A fully-managed, highly available database proxy feature for Amazon RDS. With RDS Proxy, make your applications more scalable, resilient & secure. https://t.co/2MyaK3uCfh pic.twitter.com/OGFnqUMhb0
— Amazon Web Services (@awscloud) June 30, 2020
Amazon RDS Proxyは、文字通りAmazon RDSのフルマネージドなプロキシとして動作します。
具体的な機能は、データベースのコネクションの再利用や共有を行うコネクションプーリングの機能。そして、複数のデータベースをプロキシで抽象化する機能により、万が一データベースがダウンしたとしてもアプリケーションへの影響を最小限にしつつ速やかに別の(もしくは新たな)データベースへフェイルオーバーすることも可能となっています。
さらに、プロキシのレイヤでデータベースアクセスに対してIAM認証を適用することで、アプリケーションのレイヤではデータベースに対する認証情報をコーディングしなくて済むため、セキュリティの制御を容易に一元管理できるようになります。
こうした機能を利用するのにアプリケーションの変更は基本的に必要なく、接続先を従来のデータベースであるAmazon RDSからAmazon RDS Proxyに切り替えるだけで済みます。
Amazon RDS Proxyは、特にAWS LambdaのアプリケーションからAmazon RDSのデータベースを使う際に必要とされていたサービスでした。というのも、AWS Lambdaのサーバレスアプリケーションでは、AWS Lambdaから呼び出された関数が瞬時に起動し、処理を行い、終了する、という小さな処理が、アプリケーションの負荷に応じて多数並列的に実行されていく、という振る舞いをします。
これをデータベース側から見ると、多数並列的に実行される関数から次々にコネクションの開始と終了要求が投げつけられ、その処理に追われることになります。コネクションの開始と終了にかかる負荷は小さくないため、これは非常に効率の悪いデータベースの使い方になります。
ここにAmazon RDS Proxyを用いてコネクションプーリングによるコネクションの再利用や共有を行うことで、実質的なコネクションの開始と終了を大幅に減らすことができ、データベースにかかる負荷を大幅に減らすことができるようになるわけです。
Amazon RDS Proxyは、現時点でAmazon RDS ProxyはMySQL 5.6/5.7、PostgreSQL 10.11、11.5に対応しています。
あわせて読みたい
機械学習によりコードの問題部分や遅い部分を指摘してくれる「Amazon CodeGuru」が正式版に
≪前の記事
「AWS App2Container」リリース。Javaや.NETアプリを自動的にコンテナ化してくれるコマンドラインツール