PostGIS を使用して Amazon Elastic Beanstalk をセットアップした経験のある人はいますか (Geodjango を利用できるようにするため)。
デフォルトのセットアップ (MySQL を備えた RDS) がすぐにサポートしていない多くの機能があります。 1. PostgreSQL + PostGIS 2. GEOS や Proj.4 などの C/C++ ライブラリをインストールする機能
前もって感謝します
PostGIS を使用して Amazon Elastic Beanstalk をセットアップした経験のある人はいますか (Geodjango を利用できるようにするため)。
デフォルトのセットアップ (MySQL を備えた RDS) がすぐにサポートしていない多くの機能があります。 1. PostgreSQL + PostGIS 2. GEOS や Proj.4 などの C/C++ ライブラリをインストールする機能
前もって感謝します
カスタム AMI を使用せずにebextensionsを使用することもできます。これを Amazon インスタンス (2013.09) ami-35792c5c でテストしたので、新しいものではなくそれを使用してください。Django in Elastic Beanstalk 101を完了している場合は、ebextensions について知っています。以下の ebextensions はすぐに使い始めることができます。次の ebextensions を使用できます。リポジトリのベースにある .ebextensions フォルダーに以下を配置するだけです。また、これらの構成ファイルに postgres 9.3 と memcached を含めます。
00_repo_ostgis.config :
files:
"/etc/yum.repos.d/pgdg-93-redhat.repo":
mode: "000644"
owner: root
group: root
content: |
[pgdg93]
name=PostgreSQL 9.3 $releasever - $basearch
baseurl=http://yum.postgresql.org/9.3/redhat/rhel-6-$basearch
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-PGDG-93
[pgdg93-source]
name=PostgreSQL 9.3 $releasever - $basearch - Source
failovermethod=priority
baseurl=http://yum.postgresql.org/srpms/9.3/redhat/rhel-6-$basearch
enabled=0
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-PGDG-93
commands:
epel_repo:
command: yum-config-manager -y --enable epel
remi_repo:
command: yum-config-manager -y --enable remi
packages:
rpm:
pgdg-redhat93-9.3-1: 'http://yum.postgresql.org/9.3/redhat/rhel-6-x86_64/pgdg-redhat93-9.3-1.noarch.rpm'
remi: 'http://rpms.famillecollet.com/enterprise/remi-release-6.rpm'
qt4-devel: 'http://mirror.centos.org/centos/6/os/x86_64/Packages/qt-4.6.2-28.el6_5.x86_64.rpm'
01_app_postgis.config :
packages:
yum:
libtiff-devel: ''
libjpeg-devel: ''
libzip-devel: ''
freetype-devel: ''
postgresql-devel: ''
gdal: ''
gdal-python: ''
geos: ''
proj: ''
libmemcached: ''
libmemcached-devel: ''
cyrus-sasl-devel: ''
zlib-devel: ''
container_commands:
01_collectstatic:
command: 'PYTHONPATH=.:..:../lib cd site/<your_project> && ./manage.py collectstatic -c --noinput && cd ../..'
leader_only: true
02_migrate:
command: 'PYTHONPATH=.:..:../lib cd site/<your_project> && ./manage.py migrate --noinput && cd ../..'
leader_only: true
option_settings:
- namespace: aws:elasticbeanstalk:container:python
option_name: WSGIPath
value: site/<your_project>/wsgi.py
- namespace: aws:elasticbeanstalk:container:python:staticfiles
option_name: /static/
value: site/<your_project>/static/
- option_name: DJANGO_SETTINGS_MODULE
value: settings_prod
私のプロジェクトの構造は少し異なります。設定ファイルと urls.py プロジェクト ディレクトリのルートに移動したため、wsgi.py の設定へのパスを変更する必要がありました。したがって、これに応じて調整します。以前使用していた container_commands と option_settings を使用するだけです。
requirements.txtファイルには、少なくとも次のものが含まれている必要があります。
Django==1.7.1
Pillow
psycopg2
他のほとんどの python 依存関係を ../lib に保存します。これを PYTHONPATH に含めているため、リポジトリ構造は次のようになります。
<your_project>/
├── requirements.txt
├── .ebextensions/
│ ├── 00_repos_postgis.config
│ └── 01_app_postgis.config
└── site/
├── <your_project>
│ ├── wsgi.py
│ ├── settings_prod.py # used for EB, like settings_local.py but uses env vars
│ └── settings.py
└── lib/
└── <all pip dependencies>
私が作成した展開ツールを確認してください。ファブリックを使用しています。EB CLI ツールから気に入ったものを取り、django 用に調整しました: https://github.com/radlws/django-awseb-tasks
注: 環境を起動するときに AMI ami-35792c5c を使用することが非常に重要です。このセットアップで私のために働いた唯一のものです。他のインスタンスが機能する場合は、お気軽にこの回答に編集してください。元の質問も参照してください。
aws Beanstalk の ssh シェルを開きます。以下のコマンドを段階的に実行します。postgis が動作するようになります。
cd /home/ec2-user
sudo yum -y install gcc gcc-c++ make cmake libtool libcurl-devel libxml2-devel rubygems swig fcgi-devel libtiff-devel freetype-devel curl-devel libpng-devel giflib-devel libjpeg-devel cairo-devel freetype-devel readline-devel openssl-devel python27 python27-devel
# PROJ
wget http://download.osgeo.org/proj/proj-4.8.0.tar.gz
tar -zxvf proj-4.8.0.tar.gz
cd proj-4.8.0
./configure
make
sudo make install
cd ..
# GEOS
wget http://download.osgeo.org/geos/geos-3.4.2.tar.bz2
tar -xvf geos-3.4.2.tar.bz2
cd geos-3.4.2
./configure
make
sudo make install
cd ..
# GDAL
wget http://download.osgeo.org/gdal/1.10.1/gdal-1.10.1.tar.gz
tar -zxvf gdal-1.10.1.tar.gz
cd gdal-1.10.1
./configure
make
sudo make install
cd ..
# PostGIS
wget http://download.osgeo.org/postgis/source/postgis-2.1.0.tar.gz
tar -xvf postgis-2.1.0.tar.gz
cd postgis-2.1.0
./configure
make
sudo make install
cd ..
次に、シンボリック リンクを作成します。
ln -s /usr/local/lib/libgdal.so /usr/lib/libgdal.so.1
/sbin/ldconfig
radtek のソリューションを使用し、最新の Amazon AMI (2014.9) を使用する場合、依存関係の問題に直面する可能性があります。これで解決しました。