Вы можете использовать Jenkins (установленный на сервере EC2), который предоставит конечную точку веб-хука для использования вашим GitLab Repo.
Подробнее здесь.
После вы подключаете GitLab -> Jenkins EC2 через webhooks, вы можете просто создать файл оболочки, который будет выполняться вашими задачами jenkins, которые затем будут запускать несколько команд, которые будут выполнять развертывание, например, git pull, unit test, rysn c и уведомить разработчика.
[Каждый раз, когда происходит pu sh, запускается следующий конвейер] GitLab -> EC2-Jenkins (-> s sh ->) Серверы приложений
Я думаю это просто и гибко:)