{"id":554,"date":"2021-11-10T13:43:31","date_gmt":"2021-11-10T13:43:31","guid":{"rendered":"http:\/\/18.141.20.153\/?p=554"},"modified":"2023-04-28T08:56:44","modified_gmt":"2023-04-28T08:56:44","slug":"how-to-improve-application-availability-with-amazon-rds-proxy","status":"publish","type":"post","link":"https:\/\/learning.workfall.com\/learning\/blog\/how-to-improve-application-availability-with-amazon-rds-proxy\/","title":{"rendered":"How to improve Application Availability with Amazon RDS Proxy?"},"content":{"rendered":"<span class=\"rt-reading-time\" style=\"display: block;\"><span class=\"rt-label rt-prefix\">Reading Time: <\/span> <span class=\"rt-time\">10<\/span> <span class=\"rt-label rt-postfix\">minutes<\/span><\/span>\n<figure class=\"wp-block-image\"><img src=\"https:\/\/lh4.googleusercontent.com\/B8sZke3rig0pslyeURV5e4VkvPl8RSv7Lnd4znUhdUpHvQiCaiXHtgzpDHQLVxo33SeiXTl3-0QtMTH9jWddoQOtFG0nYYubwKzHzDHNzoYOa6LZFlygLVFRO06HDM31d119KnMf\" alt=\"\"\/><\/figure>\n\n\n\n<p class=\"has-text-align-justify\">If you are running applications with unpredictable workloads which require frequent open and close database connections and you also want to maintain high availability during transient database failure, the Amazon RDS proxy is the solution!<\/p>\n\n\n\n<p class=\"has-text-align-justify\">It minimizes application disruption from outages affecting the availability of DB, by automatically connecting to a new DB instance while preserving application connections.<\/p>\n\n\n\n<p class=\"has-text-align-justify\">This reduces failover times for Aurora and <strong>RDS<\/strong> databases by up to 66%. This can help with database efficiency as well as application scalability. In this blog, we will explore Amazon RDS proxy, how it works, its use cases, etc.<\/p>\n\n\n\n<p class=\"has-text-align-justify\">We will also see how to create RDS Proxy, how to connect RDS instances using RDS Proxy, and how to monitor RDS Proxy Connections.\u00a0<\/p>\n\n\n\n<p><strong>In this blog, we will cover:<\/strong><\/p>\n\n\n\n<ul><li>Challenges in connecting to RDS<\/li><li>Amazon RDS Proxy solves these challenges<\/li><li>Prerequisites to implement Amazon RDS Proxy<\/li><li>What is Amazon RDS Proxy<\/li><li>How does it work?<\/li><li>Benefits of RDS proxy<\/li><li>Use Cases<\/li><li>Supported Databases<\/li><li>AWS Services Used<\/li><li>What is AWS Secrets Manager?<\/li><li>How Does the AWS Secrets Manager Work?<\/li><li>Create AWS Secrets for Database credentials<\/li><li>Hands-on<\/li><li>Conclusion<\/li><\/ul>\n\n\n\n<h2>Challenges in connecting to RDS<\/h2>\n\n\n\n<ul><li>For each database connection, the DB server consumes memory and compute resources.<\/li><li>AWS Lambda-based serverless applications make thousands of database connections in a short period of time<\/li><li>Database server client consumes a lot of resources for database connection and cannot allocate enough resources for query execution<\/li><\/ul>\n\n\n\n<figure class=\"wp-block-image\"><img src=\"https:\/\/lh4.googleusercontent.com\/mzYlc8FSTC0yEcy5Rk7M8IBRmgxzDpG9T1MgviIZm6hvfQrQO2k3aYTZMBXVTG0Z88sNH6hPVWdJbEcWlvbu6s-emEbpf70CGnRaCsNxL7skouPyfhyzcTWUpzFmw3ueNgcZ6nqJ\" alt=\"Amazon RDS Proxy\"\/><\/figure>\n\n\n\n<h2>Amazon RDS Proxy solves these challenges<\/h2>\n\n\n\n<p class=\"has-text-align-justify\">As it is a fully managed and highly available database proxy for Amazon RDS, <a href=\"https:\/\/aws.amazon.com\/rds\/proxy\/\" target=\"_blank\" rel=\"noreferrer noopener\">Amazon RDS Proxy<\/a> can solve database connection challenges.\u00a0<\/p>\n\n\n\n<ul><li>AWS Lambda-based modern applications can make thousands of database connections in seconds.<\/li><li>Database resources can be used efficiently by using the warm connection pool of RDS Proxy. It scales automatically according to the load<\/li><li>With the conventional connection method, the resources of the database server are easily exhausted.<\/li><li>It is compatible with various database engines like Aurora MySQL, RDS MySQL, Aurora DB Cluster, and PostgreSQL.<\/li><li>DB credentials are managed by AWS Secrets Manager and are not hard-coded into the application for improved security<\/li><\/ul>\n\n\n\n<figure class=\"wp-block-image\"><img src=\"https:\/\/lh5.googleusercontent.com\/_ORExrOkMdwSGkYe8r296nlDrRmYViaeHGk51x2rExucG8ciL9Q45kc0bU-WOtE494LnwmKJfiHApxGLjxy6GT1wSXXvAzw8JGGa3StUjkxgMxEgBf5IEs87DSpOJUyNN3Rfh_iR\" alt=\"Amazon RDS Proxy\"\/><\/figure>\n\n\n\n<h2>Prerequisites to implement Amazon RDS Proxy<\/h2>\n\n\n\n<p>We should have the following set of networking resources before implementing the Amazon RDS Proxy:<\/p>\n\n\n\n<ul><li>An Amazon Virtual Private Cloud (Amazon VPC)<\/li><li>Two or more subnets across different Availability Zones,<\/li><li>An Amazon RDS database and Amazon EC2 instances within the same VPC,&nbsp;<\/li><li>An Internet gateway.<\/li><\/ul>\n\n\n\n<h2>What is Amazon RDS Proxy?<\/h2>\n\n\n\n<p class=\"has-text-align-justify\">Amazon RDS proxy is a fully managed, highly available database proxy for RDS Instances that makes applications more secure, scalable, and resilient to database failures. Many applications can create more connections to the databases which will result in CPU and memory exhaustion.<\/p>\n\n\n\n<p class=\"has-text-align-justify\">With the help of RDS proxies, We can allow applications to pool and share the established database connections which will result in database efficiency and application Scalability.<\/p>\n\n\n\n<h2>Amazon RDS Proxy &#8211; How does it work?<\/h2>\n\n\n\n<figure class=\"wp-block-image\"><img src=\"https:\/\/lh3.googleusercontent.com\/dM4h5jV3bmFmVZgioqPtLzmztKlUpRva6oo95DU8zs3I52OSK4IHN9-Qgwt1Ll3JlVVW0NFHLxL9EWAUNuydJu2LYQQCJkJcO3jwt4gobvNoQuunt3wZ0qkdZDf1phlK9A4PWLVd\" alt=\"\"\/><\/figure>\n\n\n\n<h2>Benefits of RDS Proxy<\/h2>\n\n\n\n<ul><li>The RDS proxy reduces the time it takes for Aurora and RDS DB instances to failover by 66%.<\/li><li>AWS Secrets Manager and IAM Role integration can be used to control database access.<\/li><li>Improved application scale by pooling and sharing database connections<\/li><li>Increase the application&#8217;s accessibility.<\/li><\/ul>\n\n\n\n<h2>Use Cases of RDS Proxy<\/h2>\n\n\n\n<ul><li>For applications hosted on AWS Lambda, RDS proxy can be used (Serverless).<\/li><\/ul>\n\n\n\n<figure class=\"wp-block-image\"><img src=\"https:\/\/lh5.googleusercontent.com\/aWANyonKlbgG6hzZCn2ZT6C0-qEpAWhiJQycRoACTP8k0k-geykvPRfYOSvlVdo9ZVoODD4S1uR0e-Tk0hO-eP3F-8v8QxM4CEfQIDw2ZQqIFdGezG_Ympghg7_P9kCw3HswGp2y\" alt=\"Amazon RDS Proxy\"\/><\/figure>\n\n\n\n<ul><li>For apps hosted on EC2 Instances, RDS proxy can be used.<\/li><\/ul>\n\n\n\n<figure class=\"wp-block-image\"><img src=\"https:\/\/lh6.googleusercontent.com\/8RxaCAACmz1KhAxg-UT_SnF0x38iMzuhgi1V_g_c69aEJFcx0dhBxWTlXUQxD7-BQr3enPEz9ux-WexTRBE915Is4rWgRTaN0ly1trOmGJXXKo9ehat0uHzthpUg2O9BsZl-9ueC\" alt=\"\"\/><\/figure>\n\n\n\n<p>In modern applications, connecting from AWS Lambda to a relational database is the most powerful use case for RDS Proxy.<\/p>\n\n\n\n<h2>Supported Databases<\/h2>\n\n\n\n<p>The following databases are supported by Amazon RDS proxy:<\/p>\n\n\n\n<ul><li>Aurora MySQL.<\/li><li>RDS MySQL 5.6 and 5.7<\/li><li>Aurora DB Cluster<\/li><li>PostgreSQL DB instance<\/li><\/ul>\n\n\n\n<h2>Connection Management<\/h2>\n\n\n\n<p class=\"has-text-align-justify\">RDS Proxy allows you to reuse a connection after each transaction in your session by default. Multiplexing is the term for transaction-level reuse.<\/p>\n\n\n\n<p class=\"has-text-align-justify\">Borrowing a connection is when RDS Proxy momentarily pulls a connection from the connection pool in order to reuse it. RDS Proxy restores that connection to the connection pool when it is safe to do so.<\/p>\n\n\n\n<p class=\"has-text-align-justify\">RDS Proxy can&#8217;t always be sure that reusing a database connection outside of the current session is safe. It keeps the session on the same connection until the session expires in these instances. Pinning is the term for this fallback behavior.<\/p>\n\n\n\n<h2>AWS Services Used<\/h2>\n\n\n\n<ul><li>AWS Secrets Manager<\/li><li>IAM (Identify and Access Management)<\/li><li>RDS (Relational Database Services)<\/li><\/ul>\n\n\n\n<h2>What is AWS Secrets Manager?<\/h2>\n\n\n\n<p><strong>AWS Secrets Manager<\/strong> helps you protect <strong>secrets<\/strong> required to access your applications, services, and IT resources.&nbsp;<\/p>\n\n\n\n<p class=\"has-text-align-justify\">The service enables you to easily rotate, manage, and retrieve database credentials, API keys, and other <strong>secrets<\/strong> throughout their lifecycle.<\/p>\n\n\n\n<h2>How does AWS Secrets Manager work?<\/h2>\n\n\n\n<ul><li>Use Secrets Manager to store, rotate, monitor, and control access to secrets such as database credentials, API keys, and OAuth tokens.&nbsp;<\/li><\/ul>\n\n\n\n<ul><li>Enable secret rotation using built-in integration for MySQL, PostgreSQL, and Amazon Aurora on Amazon RDS. You can also enable rotation for arbitrary secrets using AWS Lambda functions.&nbsp;<\/li><\/ul>\n\n\n\n<ul><li>To retrieve secrets, you simply replace hard coded secrets in applications with a call to Secrets Manager APIs, eliminating the need to expose plaintext secrets.<\/li><\/ul>\n\n\n\n<figure class=\"wp-block-image\"><img src=\"https:\/\/lh6.googleusercontent.com\/bJm6YrV_Emv9FwwzpwCbGwHLTcBia4R_eaDiltlvUQDFHUpm3bmPZMOiWNqja-G2KknO9TTB4rQ7Umaljv1aFPqPF6fd2d-XmVIjk1zkKDmG4r9ylPirK5yhEktc5GzqiROcTOmh\" alt=\"\"\/><\/figure>\n\n\n\n<h2>Create Database Credentials in AWS Secrets Manager<\/h2>\n\n\n\n<p class=\"has-text-align-justify\">AWS Secrets Manager helps to protect access to applications and services, And also we can easily rotate , manage and retrieve DB credentials, API keys, and other secrets.<\/p>\n\n\n\n<p>To store the database credentials, we must first create AWS secrets.<\/p>\n\n\n\n<p>We should use the same login and password that we used while creating an RDS Instance.<\/p>\n\n\n\n<p class=\"has-text-align-justify\">We create secrets using the username and password fields in Secrets Manager. The RDS proxy will be able to connect to the appropriate use of the Database instance as a result of this.<\/p>\n\n\n\n<h2>Hands-On<\/h2>\n\n\n\n<p>To create Secrets for the Database connection, Login to AWS Secrets Manager Console.<\/p>\n\n\n\n<p>And then click <strong>Store a new secret<\/strong><\/p>\n\n\n\n<figure class=\"wp-block-image\"><img src=\"https:\/\/lh5.googleusercontent.com\/efurYMrjlL1J3EWq1qHHkxjrULkrjt5eWEu2geC_J9pFlYNwKmk9hiSEj014TOE9GOjEIhWKcd3S8lq3oCEXoUZCBVZ75tAOow2JavcALYxurVWLyBa3pCBEWqJSi1C7TLaKYOb8\" alt=\"\"\/><\/figure>\n\n\n\n<p>Here We are going to specify the Type of Secret we are going to use. We are going to store secrets for RDS, Choose Credentials for the <strong>RDS database<\/strong><\/p>\n\n\n\n<figure class=\"wp-block-image\"><img src=\"https:\/\/lh4.googleusercontent.com\/OSanIdDfm2WN6Aqi9U5jC5QSzNeYtT-MlO9nBgvfm54PXghDqM1aqTzcM6zry5b6asXAGkE_y6pc3bti0BugBbpY55tVRyZqMw-IQaqH-6t2eqzd_dNz5NeEsLb698du8Rl4Lwys\" alt=\"\"\/><\/figure>\n\n\n\n<p>And then provide the actual RDS database username and password.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img src=\"https:\/\/lh3.googleusercontent.com\/XJnDfJvYXiqB2xUEduGEfIsrrLHaqHN-02TzP4WvydS0VVXEernCNiCex9vcnXtFOiIeZO4rYU97_Aq1IdaR7ArF0eTp6Thj1OrbelPWqP8Uw9VjCEUGSVcLd0_6dHnrwehDh8P3\" alt=\"\"\/><\/figure>\n\n\n\n<p>We are using the default AWS KMS key to encrypt the secrets stored in the AWS Secrets Manager.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img src=\"https:\/\/lh4.googleusercontent.com\/qKQmPGRPD4v653rIQJ8_FyEouMKQsivGsRBUSfo-_iI9hVlPbRAJmeynBOK8R5PWdm3W0nAe-7WOCKsefm3_qkiIVJXHkr5G51M004XyGvQRyDlKOi4kA2pFH-ja7K5oOKcfsb_s\" alt=\"\"\/><\/figure>\n\n\n\n<p>And then choose the Database Instance from the list. Secrets Manager retrieves the connection strings about the Databases by querying the Chosen database.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img src=\"https:\/\/lh3.googleusercontent.com\/tRDJnQ6JtGdlzz5vVDUz1ZCAGt7e2otCn2vJ10Msjhp0X3jFNuWJxBKdiq6K2GH0zatdbaI8pPuwUuRfLUGGSG36wFSNCyWJjHYFxou9ygTHoXLi1rLsdSftxmZ3VD-DqyTNHleo\" alt=\"Amazon RDS Proxy\"\/><\/figure>\n\n\n\n<p>and then click <strong>Next<\/strong><\/p>\n\n\n\n<p>Provide a Name for the Secret and add a short description.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img src=\"https:\/\/lh4.googleusercontent.com\/rHf8e4i_MdZFzmWn5DgytTaQzYKUfcc-dHN82n2AZn1kDogx-lsbhAIDNda0UbRuBIYlLB19RjMIU-zgpUOfrDl-xjhAHv9QnEwu0atjn2Cy0PArKQzIvlV0AHjOFMNdsIhsiNQ4\" alt=\"\"\/><\/figure>\n\n\n\n<p>Optionally, add tags for the Secrets and then click <strong>Next<\/strong><\/p>\n\n\n\n<p>We can optionally configure automatic rotation of Secrets.<\/p>\n\n\n\n<p>We can set a rotation interval for each secret we create.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img src=\"https:\/\/lh5.googleusercontent.com\/cWSI-wdz7lFSPrz9Nv2ILd0F4zRSCtQK3wPa_Ro2q-JPG6dVDpbF3fvqKqJbEnSYsRFkB273129jwujdR5PjkCrqkxoeHhu8WuVmz-uq6SQdsKokEX__i2hE7t0chGxEg9Vv4LVA\" alt=\"\"\/><\/figure>\n\n\n\n<p>and then click <strong>Next<\/strong>, Under the review page, Based on the secrets configuration, We will be provided a code for various runtimes on how we can use those secrets in your applications.<\/p>\n\n\n\n<p>And Click <strong>Store<\/strong>.<\/p>\n\n\n\n<p>We have successfully added a database and its credentials in Secrets.<\/p>\n\n\n\n<h2><img loading=\"lazy\" src=\"https:\/\/lh6.googleusercontent.com\/kNVSCxCUYxmjOIeXRSvHKTf4Rx81u2-LSkmNJqmv0Mpv_6uCOzMAflUvWEIx0a0hgX7sR3_g7pbp1dXzEPLk2BqTbg5NcQXVPn1vDWyAhkhbr-cgdQ7jHtN8R_Dp_-Tr8_zJIiE_\" width=\"624\" height=\"125\"><\/h2>\n\n\n\n<h5><strong>Creating IAM Policy:<\/strong><\/h5>\n\n\n\n<p>Next, we need to create an IAM role with necessary permission for the RDS Proxy to access Database credentials from AWS Secrets Manager.<\/p>\n\n\n\n<p>For this, we need an ARN of the secret which we created earlier.<\/p>\n\n\n\n<p>Go to AWS Secrets manager console, select the Secret, There you can find the Secret ARN, Make a note of it.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img src=\"https:\/\/lh5.googleusercontent.com\/t4PnYuLoLy_YnXkPKrbUQtdIAjqJQ-FGCHW6vTNjD5Hr6eu-u-WCaHKrXDG6OkoZCLWd3Fp1NxUj0Qz71NFiXXDoDM9cXnuB2ukG-EU79c7KbkUJ383MByNfYadOubas5TfsuZRZ\" alt=\"Amazon RDS Proxy\"\/><\/figure>\n\n\n\n<p>To create an IAM role, Login to the IAM console, From the left navigation pane, choose <strong>Policies<\/strong>.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img src=\"https:\/\/lh6.googleusercontent.com\/VAilBcqNfMKKLF2IVjf6_SzpsrpoatjNL_qqAGY_Jpn0cJg7qcaY7xU0m6k_NlB0Aw4ua_ZFpSb4MsRMiBgY4nXBSaOblVVdlP6Hf8HQqlKOxb7LBlgeFJVl3UkqlCdWwwdUxnhy\" alt=\"\"\/><\/figure>\n\n\n\n<p>and click <strong>Create policy<\/strong>.<\/p>\n\n\n\n<p>Click JSON, replace the existing content with the below contents.<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: plain; title: ; notranslate\" title=\"\">\n{\n     &quot;Version&quot;: &quot;2012-10-17&quot;,\n     &quot;Statement&quot;: &#91;\n         {\n             &quot;Sid&quot;: &quot;VisualEditor0&quot;,\n             &quot;Effect&quot;: &quot;Allow&quot;,\n             &quot;Action&quot;: &#91;\n                 &quot;secretsmanager:GetRandomPassword&quot;,\n                 &quot;secretsmanager:CreateSecret&quot;,\n                 &quot;secretsmanager:ListSecrets&quot;\n             ],\n             &quot;Resource&quot;: &quot;*&quot; \n         },\n         { \n             &quot;Sid&quot;: &quot;VisualEditor1&quot;,\n            &quot;Effect&quot;: &quot;Allow&quot;,\n            &quot;Action&quot;: &quot;secretsmanager:*&quot;,\n             &quot;Resource&quot;: &#91;\n                   &quot;your_secret_ARN&quot;\n             ]\n         }\n     ]\n}\n\n\n<\/pre><\/div>\n\n\n<p><strong>your_secret_ARN<\/strong> = replace with the actual Secrets ARN.<\/p>\n\n\n\n<p>and click Review policy, and provide a name for the policy and then click <strong>Create policy<\/strong>.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img src=\"https:\/\/lh6.googleusercontent.com\/nTBNJDvULNMQPFusU7OdGrleFT2AHOK9plMh0gRLwaIVom3xJCyWglu0jneIFPcCk22BJ5eKIyd64mlj2ZhEEHwFJaxTxqtcvSWO9Y3Ba_Ku0cHBuo3EuzLmNJnOg8C8ctid5hZR\" alt=\"Amazon RDS Proxy\"\/><\/figure>\n\n\n\n<h5><strong>Creating IAM Role:<\/strong><\/h5>\n\n\n\n<p>Now we have to create a Role and then attach the policy with it.<\/p>\n\n\n\n<p>To create a Role, In the Navigation pane, Choose Roles.<\/p>\n\n\n\n<p>Click <strong>Create Role<\/strong>, Choose <strong>RDS<\/strong> as AWS Service and then click <strong>RDS &#8211; Add Role to Database<\/strong> and click <strong>Next:Permissions<\/strong><\/p>\n\n\n\n<figure class=\"wp-block-image\"><img src=\"https:\/\/lh3.googleusercontent.com\/oKfKDcZUL9M8YdfAhb4N34zPqS8nqnOzgDg32sWbLkNKiyd6W_f8Bb19R-eD0BeMchoCeARVnHskZGkQOKMOftEAO_hf5aEcO2NjBEJqwtjRmw9g2k97TUrkEgR-9Q1_H38q4kUd\" alt=\"\"\/><\/figure>\n\n\n\n<p>and then search for the policy we have created and select it ,&nbsp;<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img src=\"https:\/\/lh6.googleusercontent.com\/ulqHBtPwcwgrfYDl_KuAMGx76owDAYwvOfmwSAEdNHUWGjjJymmQXl5IINh1wcS6jplGvT_ddq7qaF3ItbmKRvjhPeVO6lBY1Eg_Ly76iJANH8i2RxbTIrdeulZWhrbg6yVoSCPf\" alt=\"\"\/><\/figure>\n\n\n\n<p>provide a name for the role&nbsp;<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img src=\"https:\/\/lh6.googleusercontent.com\/FPCdR34fTCfWqcHWvtBATG8UKOMV2igP836lk12As0A7Bux9Uv9gqhT5Rt3t63BVgJeMrIifsYyP9t0mL34mphcYkvFOI3VcX2wB8o-APt9X3yzght5yS0XV_bYSDqlC7Ndws_oa\" alt=\"\"\/><\/figure>\n\n\n\n<p>and click <strong>Create role<\/strong>.<\/p>\n\n\n\n<h5><strong>Creating RDS Proxy:<\/strong><\/h5>\n\n\n\n<p>We are ready with the Secrets and the required permissions for the RDS Proxy setup.<\/p>\n\n\n\n<p>To create an RDS proxy, Login to the RDS Console.<\/p>\n\n\n\n<p>In the left navigation pane, Choose <strong>Proxies<\/strong><\/p>\n\n\n\n<figure class=\"wp-block-image\"><img src=\"https:\/\/lh4.googleusercontent.com\/r_KlbsbcKmgnC0rDFidCL4Zz3rZhiIJNlYRJTbMOnYdUgbjhEDv7XHYEGYTsZ_3RZbPnkfXyQVRm5jx0AqCIx-ThEd4nVIC_lEf_UYcRZxhKl3zF0P_DoMEGdTrN8a4ubSm-0JlG\" alt=\"Amazon RDS Proxy\"\/><\/figure>\n\n\n\n<p>And click <strong>Create proxy<\/strong><\/p>\n\n\n\n<p>Provide a name for the proxy and then choose the DB engine you&#8217;re running.<\/p>\n\n\n\n<p>If you&#8217;re using MySQL RDS Instance choose <strong>MYSQL<\/strong>, If PostgreSQL RDS Instance, Choose <strong>POSTGRESQL<\/strong>.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img src=\"https:\/\/lh6.googleusercontent.com\/HLirp61MCnQOHQteHdWQ6s7RnB0qbZR8Xle-LbQpiE67xzJRxaXQWRnGfVpC6kxWCpWeHRufm635kRaTjBlScnKVgWLKxexicoNClHkkJal_UQVVRXdsSlmgD_m2fqT2lSFnEbci\" alt=\"\"\/><\/figure>\n\n\n\n<p class=\"has-text-align-justify\">Enable <strong>Require Transport Layer Security<\/strong>, If you want the proxy to enforce SSL\/TLS connections for all the client connections.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img src=\"https:\/\/lh5.googleusercontent.com\/3Is2g7GTJybTMb4r_O5mkdPCF88QpE0N_CylIdVD2MiK7_Y39rGNc-HLXiYAgt16U86DJdup78jZFvwwh5YkKerwqwdOLUfyzSs8mS4BWXiBtdKCWrqNUT168Sm2whg9a9bS7k4j\" alt=\"\"\/><\/figure>\n\n\n\n<p class=\"has-text-align-justify\"><strong>Idle client connection timeout<\/strong>, The time period that the client connection can be idle before the proxy closes the connection.<\/p>\n\n\n\n<p>The default connection timeout is <strong>30 minutes<\/strong>.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img src=\"https:\/\/lh3.googleusercontent.com\/RV3FJ1IRnKxBYUaQaZT0ktUqLLmHCwoCNyspC6NNyIh_O_OMdj_bV4FrMk-bkWXNaOK026FpX4v_bR6Fe1cLZiPOWbjwEGIcjvuJXySkUZlMV_Mx0Vlrk8Mjtm554sgb9S5t6LSq\" alt=\"\"\/><\/figure>\n\n\n\n<p>For <strong>Target group configuration<\/strong>,<\/p>\n\n\n\n<p>Choose RDS instances or Aurora clusters to access through this proxy.<\/p>\n\n\n\n<p class=\"has-text-align-justify\">So for this, We must create one RDS instance or Aurora cluster which has a compatible DB engine, Engine version, and other settings. For example, I have created an Aurora-MySQL Cluster.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img src=\"https:\/\/lh6.googleusercontent.com\/qDIf7YqwDeu3tVDrSfCBLFDstOUV7XCYZGB_O6CnlcwXIaEQFqyAViY4hXdTzylt0v78zE13rwUm4j30WUDTJJ2ic73WKas2DqNMLDMDMwCZFgqjjoNh0RrDVo0WqN8_VjJa6nnt\" alt=\"\"\/><\/figure>\n\n\n\n<p class=\"has-text-align-justify\"><strong>Connection pool maximum connections<\/strong>, The percentage of the <strong>max_connections<\/strong> value the RDS proxy can use for its connections.<\/p>\n\n\n\n<p>If you are using only a proxy instance they set the percentage to 100.<\/p>\n\n\n\n<p class=\"has-text-align-justify\"><strong>Include reader endpoint<\/strong>, If your proxy is associated with a single-writer Aurora cluster, you can enable a second endpoint that&#8217;s read-only. This endpoint points to the reader instances in your cluster. Using this endpoint for your query-intensive applications helps you to take advantage of the read scalability of an Aurora cluster through your proxy connections.<\/p>\n\n\n\n<p>Under <strong>Connectivity<\/strong>, Select the Secrets that we have created using AWS Secrets Manager.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img src=\"https:\/\/lh3.googleusercontent.com\/frJNOVliVX7rb6b-gJnNZz9bwWbLTis_MF5KPzMvm3p2qD8uK95ozDi3hEavHAVhxP6449BRZBKbh1BJD4Iyi9W5tDJ84exodxva9KyPFmOucr1knvWJ9lsTKola54gV5SdmYHdq\" alt=\"Amazon RDS Proxy\"\/><\/figure>\n\n\n\n<p>For <strong>IAM Role<\/strong>, select the IAM role which was created earlier.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img src=\"https:\/\/lh4.googleusercontent.com\/6DEtMWZkIS8f1kWIVsSgu3cjxqwRX-DEonE2PvnAKv0pz1wAGOs9FnQDXUYVCnjPq2l4mnIvMLt2jslGx7DECXHRf4eD7vttMIv11Y4Ou_dyjNMp1Upl1BRbwKPwu7gC0kHhtnrU\" alt=\"\"\/><\/figure>\n\n\n\n<p>For<strong> IAM Authentication<\/strong>, keep the default setting of Disabled.<\/p>\n\n\n\n<p>Then for Subnets, Minimum of 2 subnets are required from different Availability zones.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img src=\"https:\/\/lh6.googleusercontent.com\/sKtN-6lZQB7-Xh_iasDGxcr6c450okKLo5-c3BYP5eZcFzXQTdzDapiYX2hHTu15Koili4dpXZ7OL0ovuMvNlxXq8q4ptaVZHMdtjdYT6lk4SR84E71_-WWxJwbGnoZon8l6SD7Y\" alt=\"\"\/><\/figure>\n\n\n\n<p class=\"has-text-align-justify\">By Enhanced logging for the RDS Proxy, we can gather the details of queries processed by the proxy and which are logged and published to Cloudwatch Logs.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img src=\"https:\/\/lh6.googleusercontent.com\/HokUG01EV0JzZTm8KsQhjuEpoyQ1GeHcD6q53NfeLQVJsIXqOTZfP9rQf7n_BYN2_gdH-1pgImGFRqisfloUTGKe8dy0b4ZDDQyhy3AvE8cUpoAQFJEbYLUAFlcCmrCMRHVvxhHi\" alt=\"\"\/><\/figure>\n\n\n\n<p>and then click <strong>Create proxy<\/strong><\/p>\n\n\n\n<p class=\"has-text-align-justify\">Once the proxy is created, we can find RDS Proxy details by clicking the proxy name where we can find the RDS Proxy endpoint.<\/p>\n\n\n\n<p>You will find the read-only endpoint if you have enabled it, including the <strong>reader endpoint <\/strong>during RDS Proxy creation.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img src=\"https:\/\/lh4.googleusercontent.com\/mLMbRXmJau5DX3bXn7mKT9r4t7OxMfYxp1gmBX_p4vVE1ROdu4o3VG4yFbRrNgcKTUFHj9d6Jb_zm_8WlOh-CcwGfjMtY0l3UZroQGfOhlooHvpYdQHtIkN5vVaP9F9ZRsq_cL9X\" alt=\"\"\/><\/figure>\n\n\n\n<p>Make a note of it, We are going to use it in the next step.<\/p>\n\n\n\n<h5><strong>Connecting to Databases Using RDS Proxy:<\/strong><\/h5>\n\n\n\n<p class=\"has-text-align-justify\">You connect to an RDS DB instance or Aurora DB cluster through a RDS Proxy in generally the same way as you connect directly to the database.<\/p>\n\n\n\n<p>The main difference is that you specify the RDS proxy endpoint instead of the instance or cluster endpoint.<\/p>\n\n\n\n<p class=\"has-text-align-justify\">Once the proxy endpoint is ready, Check whether the endpoint is reachable from the EC2 Instance where the applications are hosted.<\/p>\n\n\n\n<p><strong><code>nc -zv rds-proxy-endoint 3306<\/code><\/strong><\/p>\n\n\n\n<p>It will respond as shown below.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img src=\"https:\/\/lh6.googleusercontent.com\/LL2mOXDZqJzTgBy61BilFMn-hqKnJrtJFNe564VoF4NPzCcAVDxD2PSmXn--jkSn5deHr_35WBSsVa59BxIxJIq_adNTIhbH_p0QPbqei-HBlD8tpwf0u1kI01FCbbNVtes6j_k6\" alt=\"Amazon RDS Proxy\"\/><\/figure>\n\n\n\n<p><strong><code>telnet rds-proxy-endoint 3306<\/code><\/strong><\/p>\n\n\n\n<figure class=\"wp-block-image\"><img src=\"https:\/\/lh4.googleusercontent.com\/E2Idiny5x_GJJKu21WxEhp8JWCvBJtLl87XUhJovGIaikUsVTEp_z6v6N1-svX5g1wOHMU1dVhDLIbf9gRBQD5VCAj4JW4eXkr9LHo1gcppWtA2goh-jr7yXcnWtPt89gBc7sMHJ\" alt=\"\"\/><\/figure>\n\n\n\n<h2><strong>Connecting to an RDS instance using RDS proxy:<\/strong><\/h2>\n\n\n\n<p><strong><code>mysql -h rds-proxy-endpoint -u username -p<\/code><\/strong><\/p>\n\n\n\n<figure class=\"wp-block-image\"><img src=\"https:\/\/lh4.googleusercontent.com\/8jg-EDlbMOM8f6Vuvr-tXNOGoc3BXlcDeW-bhLpneNHl7i3_C4tncmScOXLLmZ7khDYPeBZ-2eblU6gWc_cLWUEG8bEte5cqMiC6A9Yw7P56Pzv_kvFeXTLNd8TneEBte38U9SQ_\" alt=\"\"\/><\/figure>\n\n\n\n<p class=\"has-text-align-justify\">We have successfully established a connection with the RDS instance or the Cluster which is running behind the Amazon RDS proxy.<\/p>\n\n\n\n<h5><strong>Monitoring RDS Proxy Connections:<\/strong><\/h5>\n\n\n\n<p>With the help of Amazon Cloudwatch Metrics, We can monitor the Client and Database connections of the RDS Proxy.<\/p>\n\n\n\n<p>Login to Amazon Cloudwatch Console, In the Navigation pane, choose Metrics.<\/p>\n\n\n\n<p>Choose <strong>RDS<\/strong>, <strong>Per-proxy metrics.<\/strong><\/p>\n\n\n\n<p>Search for the RDS proxy name and then choose Database Connections and Client connections.<\/p>\n\n\n\n<p>For the Display option, Choose <strong>Number.<\/strong><\/p>\n\n\n\n<p class=\"has-text-align-justify\">The <strong>ClientConnections<\/strong> metric shows the current number of client connections to the RDS Proxy reported every minute.&nbsp;<\/p>\n\n\n\n<p class=\"has-text-align-justify\">The <strong>DatabaseConnections<\/strong> metric shows the current number of database connections from the RDS Proxy reported every minute.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img src=\"https:\/\/lh4.googleusercontent.com\/7jOKZXb5YghdMEN-OneJogblLNX9L07Sh_8p0NrGnpcqlJq--iZ8-p_IPjnehjaB_J-4zR5jUKXaN9P0TS0egsWoO568hvmWrZc-Gz_cYNJZnC9Dewy2A2EoRzIeW5ZpJ3DwDGml\" alt=\"Amazon RDS Proxy\"\/><\/figure>\n\n\n\n<h2>Conclusion<\/h2>\n\n\n\n<p class=\"has-text-align-justify\">We have successfully implemented an Amazon RDS proxy to manage database connections to improve the availability of the application. With the RDS Proxy, we can improve database efficiency and application scalability and the failover times are reduced by 66%. We will discuss more security, scalability, and database efficiency in our upcoming blogs. Stay tuned to keep getting all updates about our upcoming new blogs on AWS and relevant technologies.<\/p>\n\n\n\n<p>Meanwhile \u2026<\/p>\n\n\n\n<p><strong>Keep Exploring -&gt; Keep Learning -&gt; Keep Mastering<\/strong><\/p>\n\n\n\n<p class=\"has-text-align-justify\">This blog is part of our effort towards building a knowledgeable and kick-ass tech community. At <a href=\"https:\/\/www.workfall.com\/\">Workfall<\/a>, we strive to provide the best tech and pay opportunities to AWS-certified talents. If you\u2019re looking to work with global clients, build kick-ass products while making big bucks doing so, give it a shot at<a href=\"https:\/\/www.workfall.com\/partner\/\"> workfall.com\/partner<\/a> today.<\/p>\n","protected":false},"excerpt":{"rendered":"<p><span class=\"rt-reading-time\" style=\"display: block;\"><span class=\"rt-label rt-prefix\">Reading Time: <\/span> <span class=\"rt-time\">10<\/span> <span class=\"rt-label rt-postfix\">minutes<\/span><\/span> If you are running applications with unpredictable workloads which require frequent open and close database connections and you also want to maintain high availability during transient database failure, the Amazon RDS proxy is the solution! It minimizes application disruption from outages affecting the availability of DB, by automatically connecting to a new DB instance while [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":555,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"spay_email":""},"categories":[2],"tags":[3,4,187,186,184,185,6],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v19.1 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>How to improve Application Availability with Amazon RDS Proxy? - The Workfall Blog<\/title>\n<meta name=\"description\" content=\"Unpredictable app workloads? Frequent DB connections? Amazon RDS proxy is the solution! Maintain high availability during DB failure.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/18-141-20-153.plesk.page\/learning\/blog\/how-to-improve-application-availability-with-amazon-rds-proxy\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"How to improve Application Availability with Amazon RDS Proxy? - The Workfall Blog\" \/>\n<meta property=\"og:description\" content=\"Unpredictable app workloads? Frequent DB connections? Amazon RDS proxy is the solution! Maintain high availability during DB failure.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/18-141-20-153.plesk.page\/learning\/blog\/how-to-improve-application-availability-with-amazon-rds-proxy\/\" \/>\n<meta property=\"og:site_name\" content=\"The Workfall Blog\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/facebook.com\/workfall\" \/>\n<meta property=\"article:published_time\" content=\"2021-11-10T13:43:31+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2023-04-28T08:56:44+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/18-141-20-153.plesk.page\/learning\/blog\/wp-content\/uploads\/2021\/11\/RDSProxy.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1200\" \/>\n\t<meta property=\"og:image:height\" content=\"628\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@workfall\" \/>\n<meta name=\"twitter:site\" content=\"@workfall\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Workfall\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"17 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https:\/\/learning.workfall.com\/learning\/blog\/#organization\",\"name\":\"Workfall - Hire #Kickass Coders On Demand\",\"url\":\"https:\/\/learning.workfall.com\/learning\/blog\/\",\"sameAs\":[\"https:\/\/www.instagram.com\/workfall\/\",\"https:\/\/www.linkedin.com\/company\/workfall\/\",\"https:\/\/facebook.com\/workfall\",\"https:\/\/twitter.com\/workfall\"],\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/learning.workfall.com\/learning\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/i1.wp.com\/18.141.20.153\/learning\/blog\/wp-content\/uploads\/2021\/10\/cropped-WF_logo.png?fit=400%2C400\",\"contentUrl\":\"https:\/\/i1.wp.com\/18.141.20.153\/learning\/blog\/wp-content\/uploads\/2021\/10\/cropped-WF_logo.png?fit=400%2C400\",\"width\":400,\"height\":400,\"caption\":\"Workfall - Hire #Kickass Coders On Demand\"},\"image\":{\"@id\":\"https:\/\/learning.workfall.com\/learning\/blog\/#\/schema\/logo\/image\/\"}},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/learning.workfall.com\/learning\/blog\/#website\",\"url\":\"https:\/\/learning.workfall.com\/learning\/blog\/\",\"name\":\"The Workfall Blog\",\"description\":\"#Tech #Remote #Jobs\",\"publisher\":{\"@id\":\"https:\/\/learning.workfall.com\/learning\/blog\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/learning.workfall.com\/learning\/blog\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"en-US\"},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/18-141-20-153.plesk.page\/learning\/blog\/how-to-improve-application-availability-with-amazon-rds-proxy\/#primaryimage\",\"url\":\"https:\/\/learning.workfall.com\/learning\/blog\/wp-content\/uploads\/2021\/11\/RDSProxy.png\",\"contentUrl\":\"https:\/\/learning.workfall.com\/learning\/blog\/wp-content\/uploads\/2021\/11\/RDSProxy.png\",\"width\":1200,\"height\":628,\"caption\":\"Amazon RDS Proxy Application - Workfall\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/18-141-20-153.plesk.page\/learning\/blog\/how-to-improve-application-availability-with-amazon-rds-proxy\/#webpage\",\"url\":\"https:\/\/18-141-20-153.plesk.page\/learning\/blog\/how-to-improve-application-availability-with-amazon-rds-proxy\/\",\"name\":\"How to improve Application Availability with Amazon RDS Proxy? - The Workfall Blog\",\"isPartOf\":{\"@id\":\"https:\/\/learning.workfall.com\/learning\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/18-141-20-153.plesk.page\/learning\/blog\/how-to-improve-application-availability-with-amazon-rds-proxy\/#primaryimage\"},\"datePublished\":\"2021-11-10T13:43:31+00:00\",\"dateModified\":\"2023-04-28T08:56:44+00:00\",\"description\":\"Unpredictable app workloads? Frequent DB connections? Amazon RDS proxy is the solution! Maintain high availability during DB failure.\",\"breadcrumb\":{\"@id\":\"https:\/\/18-141-20-153.plesk.page\/learning\/blog\/how-to-improve-application-availability-with-amazon-rds-proxy\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/18-141-20-153.plesk.page\/learning\/blog\/how-to-improve-application-availability-with-amazon-rds-proxy\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/18-141-20-153.plesk.page\/learning\/blog\/how-to-improve-application-availability-with-amazon-rds-proxy\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/learning.workfall.com\/learning\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"How to improve Application Availability with Amazon RDS Proxy?\"}]},{\"@type\":\"Article\",\"@id\":\"https:\/\/18-141-20-153.plesk.page\/learning\/blog\/how-to-improve-application-availability-with-amazon-rds-proxy\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/18-141-20-153.plesk.page\/learning\/blog\/how-to-improve-application-availability-with-amazon-rds-proxy\/#webpage\"},\"author\":{\"@id\":\"https:\/\/learning.workfall.com\/learning\/blog\/#\/schema\/person\/cab8236044692bc5b27606b13167794a\"},\"headline\":\"How to improve Application Availability with Amazon RDS Proxy?\",\"datePublished\":\"2021-11-10T13:43:31+00:00\",\"dateModified\":\"2023-04-28T08:56:44+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/18-141-20-153.plesk.page\/learning\/blog\/how-to-improve-application-availability-with-amazon-rds-proxy\/#webpage\"},\"wordCount\":2023,\"publisher\":{\"@id\":\"https:\/\/learning.workfall.com\/learning\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/18-141-20-153.plesk.page\/learning\/blog\/how-to-improve-application-availability-with-amazon-rds-proxy\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/learning.workfall.com\/learning\/blog\/wp-content\/uploads\/2021\/11\/RDSProxy.png\",\"keywords\":[\"AWS\",\"Cloud\",\"RDS Proxy\",\"Resilience\",\"Scaling\",\"Security\",\"workfall\"],\"articleSection\":[\"AWS Cloud Computing\"],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/learning.workfall.com\/learning\/blog\/#\/schema\/person\/cab8236044692bc5b27606b13167794a\",\"name\":\"Workfall\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/learning.workfall.com\/learning\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/learning.workfall.com\/learning\/blog\/wp-content\/uploads\/2023\/09\/avatar_user_1_1693914404-96x96.png\",\"contentUrl\":\"https:\/\/learning.workfall.com\/learning\/blog\/wp-content\/uploads\/2023\/09\/avatar_user_1_1693914404-96x96.png\",\"caption\":\"Workfall\"},\"sameAs\":[\"https:\/\/www.workfall.com\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"How to improve Application Availability with Amazon RDS Proxy? - The Workfall Blog","description":"Unpredictable app workloads? Frequent DB connections? Amazon RDS proxy is the solution! Maintain high availability during DB failure.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/18-141-20-153.plesk.page\/learning\/blog\/how-to-improve-application-availability-with-amazon-rds-proxy\/","og_locale":"en_US","og_type":"article","og_title":"How to improve Application Availability with Amazon RDS Proxy? - The Workfall Blog","og_description":"Unpredictable app workloads? Frequent DB connections? Amazon RDS proxy is the solution! Maintain high availability during DB failure.","og_url":"https:\/\/18-141-20-153.plesk.page\/learning\/blog\/how-to-improve-application-availability-with-amazon-rds-proxy\/","og_site_name":"The Workfall Blog","article_publisher":"https:\/\/facebook.com\/workfall","article_published_time":"2021-11-10T13:43:31+00:00","article_modified_time":"2023-04-28T08:56:44+00:00","og_image":[{"width":1200,"height":628,"url":"https:\/\/18-141-20-153.plesk.page\/learning\/blog\/wp-content\/uploads\/2021\/11\/RDSProxy.png","type":"image\/png"}],"twitter_card":"summary_large_image","twitter_creator":"@workfall","twitter_site":"@workfall","twitter_misc":{"Written by":"Workfall","Est. reading time":"17 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Organization","@id":"https:\/\/learning.workfall.com\/learning\/blog\/#organization","name":"Workfall - Hire #Kickass Coders On Demand","url":"https:\/\/learning.workfall.com\/learning\/blog\/","sameAs":["https:\/\/www.instagram.com\/workfall\/","https:\/\/www.linkedin.com\/company\/workfall\/","https:\/\/facebook.com\/workfall","https:\/\/twitter.com\/workfall"],"logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/learning.workfall.com\/learning\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/i1.wp.com\/18.141.20.153\/learning\/blog\/wp-content\/uploads\/2021\/10\/cropped-WF_logo.png?fit=400%2C400","contentUrl":"https:\/\/i1.wp.com\/18.141.20.153\/learning\/blog\/wp-content\/uploads\/2021\/10\/cropped-WF_logo.png?fit=400%2C400","width":400,"height":400,"caption":"Workfall - Hire #Kickass Coders On Demand"},"image":{"@id":"https:\/\/learning.workfall.com\/learning\/blog\/#\/schema\/logo\/image\/"}},{"@type":"WebSite","@id":"https:\/\/learning.workfall.com\/learning\/blog\/#website","url":"https:\/\/learning.workfall.com\/learning\/blog\/","name":"The Workfall Blog","description":"#Tech #Remote #Jobs","publisher":{"@id":"https:\/\/learning.workfall.com\/learning\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/learning.workfall.com\/learning\/blog\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"en-US"},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/18-141-20-153.plesk.page\/learning\/blog\/how-to-improve-application-availability-with-amazon-rds-proxy\/#primaryimage","url":"https:\/\/learning.workfall.com\/learning\/blog\/wp-content\/uploads\/2021\/11\/RDSProxy.png","contentUrl":"https:\/\/learning.workfall.com\/learning\/blog\/wp-content\/uploads\/2021\/11\/RDSProxy.png","width":1200,"height":628,"caption":"Amazon RDS Proxy Application - Workfall"},{"@type":"WebPage","@id":"https:\/\/18-141-20-153.plesk.page\/learning\/blog\/how-to-improve-application-availability-with-amazon-rds-proxy\/#webpage","url":"https:\/\/18-141-20-153.plesk.page\/learning\/blog\/how-to-improve-application-availability-with-amazon-rds-proxy\/","name":"How to improve Application Availability with Amazon RDS Proxy? - The Workfall Blog","isPartOf":{"@id":"https:\/\/learning.workfall.com\/learning\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/18-141-20-153.plesk.page\/learning\/blog\/how-to-improve-application-availability-with-amazon-rds-proxy\/#primaryimage"},"datePublished":"2021-11-10T13:43:31+00:00","dateModified":"2023-04-28T08:56:44+00:00","description":"Unpredictable app workloads? Frequent DB connections? Amazon RDS proxy is the solution! Maintain high availability during DB failure.","breadcrumb":{"@id":"https:\/\/18-141-20-153.plesk.page\/learning\/blog\/how-to-improve-application-availability-with-amazon-rds-proxy\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/18-141-20-153.plesk.page\/learning\/blog\/how-to-improve-application-availability-with-amazon-rds-proxy\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/18-141-20-153.plesk.page\/learning\/blog\/how-to-improve-application-availability-with-amazon-rds-proxy\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/learning.workfall.com\/learning\/blog\/"},{"@type":"ListItem","position":2,"name":"How to improve Application Availability with Amazon RDS Proxy?"}]},{"@type":"Article","@id":"https:\/\/18-141-20-153.plesk.page\/learning\/blog\/how-to-improve-application-availability-with-amazon-rds-proxy\/#article","isPartOf":{"@id":"https:\/\/18-141-20-153.plesk.page\/learning\/blog\/how-to-improve-application-availability-with-amazon-rds-proxy\/#webpage"},"author":{"@id":"https:\/\/learning.workfall.com\/learning\/blog\/#\/schema\/person\/cab8236044692bc5b27606b13167794a"},"headline":"How to improve Application Availability with Amazon RDS Proxy?","datePublished":"2021-11-10T13:43:31+00:00","dateModified":"2023-04-28T08:56:44+00:00","mainEntityOfPage":{"@id":"https:\/\/18-141-20-153.plesk.page\/learning\/blog\/how-to-improve-application-availability-with-amazon-rds-proxy\/#webpage"},"wordCount":2023,"publisher":{"@id":"https:\/\/learning.workfall.com\/learning\/blog\/#organization"},"image":{"@id":"https:\/\/18-141-20-153.plesk.page\/learning\/blog\/how-to-improve-application-availability-with-amazon-rds-proxy\/#primaryimage"},"thumbnailUrl":"https:\/\/learning.workfall.com\/learning\/blog\/wp-content\/uploads\/2021\/11\/RDSProxy.png","keywords":["AWS","Cloud","RDS Proxy","Resilience","Scaling","Security","workfall"],"articleSection":["AWS Cloud Computing"],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/learning.workfall.com\/learning\/blog\/#\/schema\/person\/cab8236044692bc5b27606b13167794a","name":"Workfall","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/learning.workfall.com\/learning\/blog\/#\/schema\/person\/image\/","url":"https:\/\/learning.workfall.com\/learning\/blog\/wp-content\/uploads\/2023\/09\/avatar_user_1_1693914404-96x96.png","contentUrl":"https:\/\/learning.workfall.com\/learning\/blog\/wp-content\/uploads\/2023\/09\/avatar_user_1_1693914404-96x96.png","caption":"Workfall"},"sameAs":["https:\/\/www.workfall.com"]}]}},"jetpack_featured_media_url":"https:\/\/learning.workfall.com\/learning\/blog\/wp-content\/uploads\/2021\/11\/RDSProxy.png","jetpack-related-posts":[{"id":221,"url":"https:\/\/learning.workfall.com\/learning\/blog\/how-to-migrate-rds-mysql-database-to-rds-postgresql-database-using-aws-database-migration-servicedms\/","url_meta":{"origin":554,"position":0},"title":"How to migrate RDS MySQL database to RDS PostgreSQL database using AWS Database Migration Service(DMS)?","date":"October 27, 2021","format":false,"excerpt":"Do you want to migrate data from one type of DB engine (MySQL) to another type of DB engine(PostgreSQL) with little or no downtime? In today's fast-paced environment, application, and database availability must be considered 24 hours a day, seven days a week. Some of your applications may be unable\u2026","rel":"","context":"In &quot;AWS Cloud Computing&quot;","img":{"alt_text":"AWS Database Migration Service","src":"https:\/\/i1.wp.com\/learning.workfall.com\/learning\/blog\/wp-content\/uploads\/2021\/10\/DMS.png?resize=350%2C200&ssl=1","width":350,"height":200},"classes":[]},{"id":596,"url":"https:\/\/learning.workfall.com\/learning\/blog\/demand-backups-and-restore-the-backup-for-amazon-rds-using-aws-backuppart-2\/","url_meta":{"origin":554,"position":1},"title":"How to create on-demand backups and restore the backup for Amazon RDS using AWS Backup(Part 2)?","date":"November 11, 2021","format":false,"excerpt":"AWS Backup enables you to centralize and automate data protection across AWS services. AWS Backup is a low-cost, fully managed, policy-based solution that makes data protection at scale even easier. AWS Backup also assists you in meeting your regulatory compliance duties and business continuity objectives. In this article, we'll look\u2026","rel":"","context":"In &quot;AWS Cloud Computing&quot;","img":{"alt_text":"Amazon Backup - Workfall","src":"https:\/\/i0.wp.com\/learning.workfall.com\/learning\/blog\/wp-content\/uploads\/2021\/11\/CoverImages_1200x628px-2.png?resize=350%2C200&ssl=1","width":350,"height":200},"classes":[]},{"id":614,"url":"https:\/\/learning.workfall.com\/learning\/blog\/how-to-do-database-migration-using-aws-database-migration-service-dms-from-on-premise-ec2-to-rds\/","url_meta":{"origin":554,"position":2},"title":"AWS DMS: Migrating On-Premise\/EC2 Databases to RDS Made Simple","date":"November 11, 2021","format":false,"excerpt":"Do you want to migrate your on-premise databases to AWS with minimal or no downtime? In today\u2019s fast-paced world,\u00a024\/7 application and database availability are the basic criteria to consider. In this case, some of your applications may not be able to afford significant downtime while migrating on-premises databases. In this\u2026","rel":"","context":"In &quot;AWS Cloud Computing&quot;","img":{"alt_text":"Database Migration using AWS Database Migration Service (DMS)","src":"https:\/\/i0.wp.com\/learning.workfall.com\/learning\/blog\/wp-content\/uploads\/2021\/11\/DMS.png?resize=350%2C200&ssl=1","width":350,"height":200},"classes":[]},{"id":785,"url":"https:\/\/learning.workfall.com\/learning\/blog\/how-to-perform-an-amazon-aurora-database-deployment-that-replicates-data-and-spans-across-multiple-aws-regions\/","url_meta":{"origin":554,"position":3},"title":"How to perform an Amazon Aurora Database deployment that replicates data and spans across multiple AWS regions?","date":"November 30, 2021","format":false,"excerpt":"Amazon Web Services provides us with the flexibility of managing the data in the databases with ease. The flexibility is thus provided by an AWS Service called Amazon Aurora. An Amazon Aurora cluster contains one or more DB instances and a cluster volume that helps us manage the data for\u2026","rel":"","context":"In &quot;AWS Cloud Computing&quot;","img":{"alt_text":"Amazon Aurora Database Deployment","src":"https:\/\/i0.wp.com\/learning.workfall.com\/learning\/blog\/wp-content\/uploads\/2021\/11\/CoverImages_1200x628px-8.png?resize=350%2C200&ssl=1","width":350,"height":200},"classes":[]},{"id":542,"url":"https:\/\/learning.workfall.com\/learning\/blog\/how-to-create-on-demand-backups-and-restore-the-backup-for-amazon-rds-using-aws-backuppart-1\/","url_meta":{"origin":554,"position":4},"title":"How to create on-demand backups and restore the backup for Amazon RDS using AWS Backup(Part 1)?","date":"November 10, 2021","format":false,"excerpt":"When we are using various data services like RDS, EBS, EFS, and DynamoDB to store data in the AWS Cloud, we also have to use some kind of backup solution to meet the data retention requirements. We need a centralized and effective solution for scheduling events like CloudWatch events, cleaning\u2026","rel":"","context":"In &quot;AWS Cloud Computing&quot;","img":{"alt_text":"AWS Backup","src":"https:\/\/i0.wp.com\/learning.workfall.com\/learning\/blog\/wp-content\/uploads\/2021\/11\/backup1.png?resize=350%2C200&ssl=1","width":350,"height":200},"classes":[]},{"id":541,"url":"https:\/\/learning.workfall.com\/learning\/blog\/how-to-build-a-serverless-event-driven-workflow-with-aws-glue-and-amazon-eventbridgepart-1\/","url_meta":{"origin":554,"position":5},"title":"How to build a serverless event-driven workflow with AWS Glue and Amazon EventBridge(Part 1)?","date":"November 10, 2021","format":false,"excerpt":"Have you ever wondered how huge IT companies construct their ETL pipelines for production? Are you curious about how TBs and ZBs of data are effortlessly captured and rapidly processed to a database or other storage for data scientists and analysts to use? The answer is the serverless data integration\u2026","rel":"","context":"In &quot;AWS Cloud Computing&quot;","img":{"alt_text":"AWS Glue","src":"https:\/\/i1.wp.com\/learning.workfall.com\/learning\/blog\/wp-content\/uploads\/2021\/11\/Glue.png?resize=350%2C200&ssl=1","width":350,"height":200},"classes":[]}],"_links":{"self":[{"href":"https:\/\/learning.workfall.com\/learning\/blog\/wp-json\/wp\/v2\/posts\/554"}],"collection":[{"href":"https:\/\/learning.workfall.com\/learning\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/learning.workfall.com\/learning\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/learning.workfall.com\/learning\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/learning.workfall.com\/learning\/blog\/wp-json\/wp\/v2\/comments?post=554"}],"version-history":[{"count":6,"href":"https:\/\/learning.workfall.com\/learning\/blog\/wp-json\/wp\/v2\/posts\/554\/revisions"}],"predecessor-version":[{"id":1844,"href":"https:\/\/learning.workfall.com\/learning\/blog\/wp-json\/wp\/v2\/posts\/554\/revisions\/1844"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/learning.workfall.com\/learning\/blog\/wp-json\/wp\/v2\/media\/555"}],"wp:attachment":[{"href":"https:\/\/learning.workfall.com\/learning\/blog\/wp-json\/wp\/v2\/media?parent=554"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/learning.workfall.com\/learning\/blog\/wp-json\/wp\/v2\/categories?post=554"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/learning.workfall.com\/learning\/blog\/wp-json\/wp\/v2\/tags?post=554"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}