Проект 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

Вернуться на верх