Elastic Beanstalk で、django+s3に、RDSを追加する。
概要
前回の記事で作成した環境に、RDSを追加する。
pythonskywalker.hatenablog.com
参考サイト
pythonskywalker.hatenablog.com
やってみたこと
- ElasticBeanstalkの環境内で、RDSを作成する。
- settings.pyに、RDSを設定する。
- postgreに必要なパッケージをinstallするように、Dockerfileに書き込む
- imageをbuildして、ECRに登録する。(もしくは更新する)
- Dockerrun.aws.jsonをアップする。(imageを新規で登録した場合は、そちらに差し替える)
ElasticBeanstalkの環境内で、RDSを作成する。
- ElasticBeanstalk -> 環境 -> 設定 -> RDSを作成
settings.py にRDSの情報を設定する。
DATABASES = { 'default': { 'ENGINE': 'django.db.backends.postgresql_psycopg2', 'NAME': os.environ['RDS_DB_NAME'], 'USER': os.environ['RDS_USERNAME'], 'PASSWORD': os.environ['RDS_PASSWORD'], 'HOST': os.environ['RDS_HOSTNAME'], 'PORT': os.environ['RDS_PORT'], } }
postgreに必要なパッケージをinstallするように、Dockerfileに書き込む
※これは、errorが出なかったら、やらなくていいかも。
FROM python:2.7 RUN apt-get update \ && apt-get -y upgrade \ && apt-get install -y --no-install-recommends libpq-dev \ RUN groupadd -r uwsgi && useradd -r -g uwsgi uwsgi COPY /myapp/requirements.txt /requirements.txt RUN pip install -r /requirements.txt COPY /myapp /app RUN chown -R uwsgi /app COPY uwsgi.sh /uwsgi.sh RUN chmod +x /uwsgi.sh CMD ./uwsgi.sh
imageをbuildして、ECRに登録する。(もしくは更新する)
これは公式のpushの方法に従う。
Dockerrun.aws.jsonをアップする。(imageを新規で登録した場合は、そちらに差し替える)
できた〜〜!