title | slides | ||
---|---|---|---|
Challenges with Aurora PSQL |
|
- 15+ YOE 👴
- Worked in AWS ☁️ back and forth from 2010
- Multiple roles trough my career 🃏 ➡️
- Joined a company 👋
- Got tasked to move tenants from Cockroach DB to AWS RDS Aurora (Postgres engine) 🤓
- Each tenant own database 📥
- Cockroach is almost compatible Postgres database 🤌
- Distributed across nodes (uses SSTables) 🪄
- StatefulSet in EKS 🪚
- Super amazing colleges (SRE and Platform) 🧑🤝🧑
- Database as a service 💸
- Proprietary / supports MySql and Postgres 🕵️
- 3x throughput 🐴
- Storage layer is abstracted away 💾 ❇️
- Synchronization over storage ☎️
- Cheaper 🤑
...
... it's one less thing we have to maintain 💯
- use aurora-postgres engine
- use
provisioned
instead ofserverless
- Terraform
- Storage is basically free
- You pay for the compute/instances and IOPS
- With IO optimized storage type you don't pay for IOPS, but you pay 30% premium on the instances
- Connection pooler (PgBouncer) 👨👦👦
- Used to enable IAM auth, but that is now supported on basic Aurora
API call modify rds proxy
[
{
"Description": "string",
"UserName": "string",
"AuthScheme": "SECRETS",
"SecretArn": "string",
"IAMAuth": "DISABLED"|"REQUIRED"|"ENABLED",
"ClientPasswordAuthType":
"POSTGRES_SCRAM_SHA_256"|"POSTGRES_MD5"
}
...
]
- 200 users max per proxy
- Proxy goes into modifying state
- Everything is RDS 🥇🥇
- RDS CreateDBCluster api call for example
def create_cluster(is_aurora=False, **args):
if is_aurora:
something()
elif not is_aurora:
something_else()
🥲
def create_cluster(is_aurora=False, **args):
if is_aurora:
something()
if context_web_console:
multi_az = True
Postgres supports UTF8 encoding ...
Can you save any Unicode character as UTF8 encoding?
NULL
char is used by Postgres internally
Thank you