Zero downtime gitlab installation in AWS ECS

:hugs: Please help fill in this template with all the details to help others help you more efficiently. Use formatting blocks for code, config, logs and ensure to remove sensitive data.

Problem to solve

Describe your question in as much detail as possible:
Hi Team, currently, I have a self managed gitlab instance that is deployed to an AWS EC2 instance. But I was looking to migrate it to AWS ECS for zero downtime upgrades…But when I read the zero downtime guide, it looks like we want two load balancers and want HA mechanisms configured… I have one load balancer for routing the traffic and I’m using the Linux package for the installtion, which comes with s GitLab and dependent components… but if I have to move to HA, I’ll have to set up all these components separately… Is that really a requirement or is it possible for me to acheive zero downtime just by using ECS and a linux package installation?

A single server upgrade will have about 5-10 minutes of downtime when the services are stopped. For most people this is enough, I just plan my upgrades when people aren’t doing things, so they never even notice the 5-10 minute downtime.

Otherwise, you will have to have a full HA setup with a lot of servers.

We have few tests that run continuously on these instances… So we cant really have any downtime… From the zero downtime guide, it looks like we need to set up PostgreSQL, Gitaly, Redis etc as separate nodes… But if I deploy all these components in one container in ECS and do blue green deployment in ECS(rolling deployments), will it still have HA and zero downtime updates? Another option that I was considering was to use the GET(Gitlab Environment Toolkit)… Does GET require EE licence or can I use it for CE setup as well?

How can it still have zero downtime if it’s in one container? If you want full HA you need to deploy on multiple servers, VM’s or multiple containers. I don’t use containers so can’t help you with that. Either way the principal is the same, HA requires multiples so that when one is down, there are others active to pick up the workload.

Can’t answer your question about GET - usually if something requires a subscription it will be in Gitlab’s documentation. That would be a good place to start.

Got it. Does deploying the gitlab components in different servers back up data automatically? For eg if I use AWS RDS for database and use ECS for the rails application, does it make sure all the users, data etc will remain intact when the rails application gets deployed to a new container during blue green deployments?

I don’t know what AWS RDS is, Gitlab uses PostgreSQL so you have to use PostgreSQL for the database. I don’t use AWS so I cannot help you there.

All the info relating to setting up a cluster is explained in the Gitlab documentation. I don’t run a cluster and have no intention of configuring one either.