EC2 не является бесплатным. Вы можете, например, запустить MySQL на экземпляре EC2. Это будет дешевле, чем использование RDS, но вам все равно придется платить за вычислительные ресурсы и ресурсы хранения, которые он потребляет. Даже если вы запускаете базу данных на большем совместно используемом экземпляре EC2, вам необходимо учитывать ее циклы хранения и ЦП, и вам может потребоваться больше или больше экземпляров для выполнения там большего количества задач.
(На данный момент в регионе us-east-1 экземпляр MySQL db.m5.large составляет 0,171 долл. США в час или 895 долл. США в год с предоплатой, плюс 0,115 долл. США за ГБ емкости в месяц; тот же самый экземпляр EC5 m5.large стоит 0,096 долл. США в час или 501 долл. США в год, а объем хранилища составляет 0,10 долл. США за ГБ в месяц. *
Существуют веские причины для запуска баз данных, не входящих в Docker. В частности, в среде микросервиса контейнеры Docker приложений не имеют состояния, реплицируются, регулярно обновляют свои изображения, могут свободно удаляться и могут быть перемещены. через хосты (удаляя и воссоздавая их где-то еще). (В Kubernetes / EKS посмотрите, как работает объект развертывания.) Ни одно из этого не относится к базам данных, которые все о сохранении состояния, не могут быть удалены, не могут быть перемещены (данные должны поставляться), и должно быть резервное копирование.
RDS имеет некоторые полезные функции. Вы можете изменить размер экземпляра базы данных с некоторым временем простоя, но без потери данных. AWS сохранит для вас управляемые снимки, и очень просто (если медленно) создать новую базу данных из снимка вашей существующей базы данных. Обновления базы данных исправлений автоматически применяются для вас. Вы можете фактически заплатить Amazon за эти функции или заплатить своему собственному администратору базы данных за выполнение тех же задач для базы данных, работающей на экземпляре EC2.
Ничто из этого не означает, что у вас есть для использования RDS, вы фактически экономите на AWS, запустив то же программное обеспечение на EC2, и оно может быть или не быть в Docker. Тем не менее, RDS - разумный выбор в остальном мире Docker. Те же основные компромиссы применимы и к другим услугам, таким как Elasticache (для Redis).