This is a udacity project, its required to deploy your catalog application on AWS or Google cloud, and this file is a description on how the project is deployed in detailed steps.
- Changed SSH default port
- Configured firewall to allow specific ports
- Created user and added it to sudoers group
- Forced Public key authentication
- Setup some swap memory to avoid OOM error and configured the Linux kernel vm.swappiness to 10 to avoid moving unnecessary data to swap memory also set vm.vfs_cache_pressure to 50 for performance reasons for more details
- Installed PostgreSQL and created a user for the application which has access to its database
Apache2 was installed and configured to serve to two virtual
hosts (front-end and back-end), the front-end virtual
host is listening on any request on port 80, and the
back-end virtual host is listening on port 8080 only on
localhost, so whenever a request comes to the front-end virtual
host with /api
path the reverse proxy will redirect
the request to the back-end virtual host.
Redis was installed and configured the Linux kernel overcommit memory setting it to 1 to fix background saving fails with a fork() error for more reference.
- IP: 18.184.86.204
- URL of the web application: http://18.184.86.204
- SSH port 2200
A list of third party resources used
- Udacity course Configuring Linux Web Servers
- mod_wsgi documentation
- Flask documentation
- Passing env varibles to mod_wsgi
- PostgreSQL documentation
- Redis administration guide