Проект django развернут на AWS с использованием postgres - как создать базу данных
У меня есть проект django, который я развернул на AWS с помощью awsebcli.
Мне нужно создать базу данных (postgres) и после развертывания среды создать базу данных в консоли. Я хотел бы автоматизировать этот процесс и я попробовал конфигурационный файл
поэтому я попробовал добавить это в файл django.config в папке .ebextensions моего проекта:
aws:rds:dbinstance:
DBAllocatedStorage: '5'
DBDeletionPolicy: Delete
DBEngine: postgres
DBEngineVersion: 10.17
DBInstanceClass: db.t2.micro
DBPassword: PASSWORD_HERE
DBUser: USERNAME_HERE
MultiAZDatabase: false
Но таким образом база данных не создается. Мне приходится создавать ее из консоли, а затем передавать в качестве переменных окружения с помощью терминала (eb setenv) конечную точку базы данных и другие параметры.
Есть ли способ решить эту проблему и автоматизировать развертывание?
используете ли вы сначала пространство имен option_settings
?
.ebextensions/db-instance-options.config
option_settings:
aws:rds:dbinstance:
DBAllocatedStorage: 100
как описано на: https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/using-features.managing.db.html#using-features.managing.db.namespace
на этой странице перечислены все значения для aws:rds:dbinstance
:
https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/command-options-general.html#command-options-general-rdsdbinstance
С точки зрения общей передовой практики, это отлично подходит для сред разработки и тестирования. Однако это не идеально для производственной среды, потому что это связывает жизненный цикл экземпляра базы данных с жизненным циклом среды вашего приложения.
вам следует отделить экземпляр базы данных от вашей среды, вы можете создать экземпляр базы данных в Amazon RDS через CloudFormation или CLI и настроить ваше приложение на подключение к нему при запуске, точно так же, как вы это делаете сейчас
На этой странице aws рассказывает несколько вещей об этом: https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/AWSHowTo.RDS.html
посмотрите на определение RDS Instance CloudFormation: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-rds-database-instance.html