Skip to content

Can we use Amazon RDS SqlServer EXPRESS Edition for about 1 Million Concurrent Connections.

0

Hi,

I plan to use Amazon RDS SqlServer EXPRESS Edition for about 1 Million Concurrent Connections.

There will be On/Off Short 3-4 Seconds Bursts of Access to a Single Database. The Access Bursts will be about 6 times in a minute, by Each User connecting to that Single Database.

Can it be handled Efficiently by Amazon RDS SqlServer "EXPRESS Edition"?

Or will I Need Amazon RDS Proxy?

(I just read about requiring Amazon RDS Proxy in the article here : https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_Limits.html). If your applications frequently open and close connections, or keep a large number of long-lived connections open, we recommend that you use Amazon RDS Proxy. RDS Proxy is a fully managed, highly available database proxy that uses connection pooling to share database connections securely and efficiently.

I am just new to Amazon RDS Proxy. Can we have a Proxy for SqlServer?

If some Expert can shed Light on the issue (Elaborately).

Regards garevaul

  • please accept the answer if it was helpful

8 Answers
1

Hi,

Bare SQL Server (even the non-Express edition) is limited to 32'768 simultaneous parallel connections: see https://www.googlecloudcommunity.com/gc/Databases/SQL-Server-Increase-the-Concurrent-Connections/m-p/469792

So, yes, a proxy mechanism is required to share connections if you want to reach 1 million: you will need to be able to share approx at 1 server connection for 30 proxy connections. It means a use case with fairly low utilisation of the server connection per client.

You may want to read this article detailing the proxy: https://ermiaqasemi.me/scaling-your-rds-databases-with-rds-proxy-0fc5eb5c6626

Finally, this article about proxy benchmarking can be useful for you: https://aircall.io/blog/tech-team-stories/exploring-relational-database-connections-from-serverless-compute/

RDS Proxy supports SQL Server since approx 2 years: https://aws.amazon.com/about-aws/whats-new/2022/09/amazon-rds-proxy-rds-sql-server/

I guess that you are aware of limitations of Express Edition: https://josipmisko.com/posts/sql-express-limitations

Best,

Didier

EXPERT
answered 2 years ago
EXPERT
reviewed 2 years ago
1

Hi @garevaul, alright, that narrows the options down a lot.

Could you elaborate a bit on the need for all the clients to query the database every minute, instead of checking their licences once per day or hour, for example?

EXPERT
answered 2 years ago
0

The Amazon RDS SQL Server EXPRESS Edition has certain limitations that make it unsuitable for handling a scenario with 1 million concurrent connections. The EXPRESS Edition is designed for small-scale applications and has limitations on CPU, memory, and database size.

Amazon RDS Proxy provides the following benefits:

Connection Pooling: Efficiently manages a pool of database connections and reuses them, reducing the overhead of opening and closing connections.

Improved Availability: Enhances availability by automatically failing over to a standby database instance in case of disruptions.

Security: Provides secure database access with IAM authentication and secrets management.

RDS Proxy is a useful service, but it will not help you with SQL Express edition. You will need more powerful RDS

EXPERT
answered 2 years ago
EXPERT
reviewed 2 years ago
0

That doesn't really sound likely to work or be anywhere near cost-efficient with any database platform, let alone the free Express edition of MSSQL that's intentionally limited to persuade people to buy licences for the higher editions.

Would you like to share a bit more about what you're wanting a million concurrent users to do with the database? For example, are they delivering data to the database, such as measurement data points, or are you looking to have a small number of users centrally update data or settings in the database, from where the broad group of users would read it into their local caches?

EXPERT
answered 2 years ago
0

Hi

Yes you have asked why 1 million Connections are required.

I am thinking before hand for a future scenario of 1 million Users.

Scenario :: The million individuals/users have 7 Applications installed on their computer. These 7 Applications execute One After the other (once in every 1 minute) and then closes/Exits iitself. And each time each Application starts/executes, it accesses the Same Single Database for a duration of about 3 seconds.

Regards garevaul

answered 2 years ago
0

@garevault, could you explain a bit what the clients would be doing in the database? Would they be uploading new data into the database? Updating existing data? Only reading data?

I don't think there's any way to make what you are intending work with SQL Server or other SQL databases, but the scale you are talking about is certainly possible with other AWS services. It's impossible to give useful suggestions, however, without knowing if the clients are independent from one another or entirely interdependent, among many other factors. That's why I'm asking for more specifics on what you are looking to accomplish.

EXPERT
answered 2 years ago
0

Hi @leo

Each will execute a Select Statement to check a value in the database. More like a Application license verification.

Regards garevaul

answered 2 years ago
0

Hi Leo,

Actually now that you have mentioned it, I think it will be sufficient to even check it like twice or thrice in a day.

I was just being overly strict and cautious.

Thanx a lot for your pointer.

Regards garevaul

answered 2 years ago

You are not logged in. Log in to post an answer.

A good answer clearly answers the question and provides constructive feedback and encourages professional growth in the question asker.