Wenn Sie Geodjango mit Amazon Elastic Beanstalk verwenden möchten, müssen Sie einen benutzerdefinierten AMI wo Sie PostGIS installieren und Ihre Elastic Beanstalk-Anwendung beim Hochfahren auf dieses AMI verweisen können.
Hier ist ein gutes Tutorial zum Anpassen eines EBS-AMI
. Dazu gibt es auch ein AWS-Tutorial aber ich fand das erste einfacher zu verstehen. Auf meinem benutzerdefinierten AMI habe ich geos, gdal, proj4 und postgis aus dem Quellcode und postgres mit yum install postgres
installiert . Unten sind die Befehle, die ich verwendet habe, um alle Bibliotheken im AMI zu installieren.
Damit die Django-App die Bibliotheken findet, habe ich auch eine zusätzliche Umgebungsvariable in der AWS EBS-Konsole festgelegt. In der Menüleiste meiner Umgebung ging ich zu Konfiguration --> Softwarekonfiguration und die Umgebungseigenschaften bearbeitet durch Hinzufügen der Eigenschaft LD_LIBRARY_PATH
festgelegt als /usr/local/lib/:$LD_LIBRARY_PATH
.
Da die Beanstalk-App-Instanzen nicht dafür vorgesehen sind, die Datenbank selbst auszuführen, habe ich auch ein Amazon RDS Postgres eingerichtet gehostete Datenbank, die ein relativ neuer Dienst ist, unterstützt PostGIS.
Wenn Sie das alles zusammenfassen, sollten Sie eine sehr skalierbare GeoDjango-App erhalten!
sudo yum install postgresql postgresql-devel postgresql-server postgresql9-contrib gcc gcc-c++ make libtool curl libxml2 libxml2-devel python-devel
wget http://download.osgeo.org/proj/proj-4.8.0.zip
unzip proj-4.8.0.zip
cd proj-4.8.0
./configure
make
sudo make install
cd ..
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 ..
wget http://download.osgeo.org/gdal/1.10.1/gdal1101.zip
unzip gdal1101.zip
cd gdal-1.10.1
./configure --with-python=yes
make
sudo make install
cd ..
wget http://download.osgeo.org/postgis/source/postgis-2.1.1.tar.gz
tar -xvf postgis-2.1.1.tar.gz
cd postgis-2.1.1
./configure
make
sudo make install