Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Migrate databases to RDS #538

Open
1 of 2 tasks
hancush opened this issue Sep 1, 2021 · 0 comments
Open
1 of 2 tasks

Migrate databases to RDS #538

hancush opened this issue Sep 1, 2021 · 0 comments

Comments

@hancush
Copy link
Member

hancush commented Sep 1, 2021

We're currently using containerized Postgres 10 instances on the staging and production servers to host the data. I'd like to migrate to RDS for several reasons:

  1. RDS is more powerful, more easily configurable, and more easily monitorable than our containerized Postgres instances.
  2. Automatic backups are important, since ETL is time consuming and not fully reproducible due to human data entry after upload.
  3. The data update process is pretty convoluted right now: I clone the live database, restore it on staging, make the updates, fact check happens, then I clone the updated database and restore it to production. RDS will streamline this process.
  4. RDS offers burstable instances that will improve site performance under acute heavy load, e.g., at launch time. This has been an enormous pain point in the past.
  5. The data is now at the scale of millions of records. RDS provides flexible capacity, as well as a more intuitive UI for managing features like sharding that could be quite useful as the data continues to grow.

Migration plan:

  • Create one t2.small RDS instance for staging
    • Per the docs, “T2 instances are burstable general-purpose performance instances that provide a baseline level of CPU performance with the ability to burst above the baseline. T2 instances are a good choice for a variety of database workloads including micro-services and test and staging databases.”
    • Optionally, turn the staging database off when we are not in active development.
  • Create one t3.medium RDS instance for production.
    • Per the docs, “T3 instances are the next generation burstable general-purpose instance type that provide a baseline level of CPU performance with the ability to burst CPU usage at any time for as long as required. T3 instances offer a balance of compute, memory, and network resources and are ideal for database workloads with moderate CPU usage that experience temporary spikes in use.”
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant