... it's a one instance cloud infrastructure application that's a statically included shard within the V8 Core. Not only is it the fastest, easiest and most sophisticated way to get a one instance web server (or one instance anything) architecture running on AWS, it also comes with the most powerful provisioning features available in modern day DevOps; compatibility with Cloud-init, every image building tool, every available CM tool and every interpreted programming language in use, plus it features the most advanced desired state configuration programming possible as a result of the V8 Core's adoption of the Pulumi IaC platform.
Why a Single Instance Architecture?
After years of examining and revising Terraform configurations that have been over engineered for availability requirements that often don't exist and/or are not appropriate for user costs - it appears that a single instance architecture application is badly needed. The scripts out there tend to use default resources, but REVVOPS One uses all custom resources and is available with so many options (especially for security), it's going to cost effectively meet the needs for a lot of use cases, not necessarily web servers eg. S/FTP servers, NFS servers, ... etc. You may not need the sophistication of REVVOPS Dynamic Balanced Level 4 and you definitely don't need our raw or managed Kubernetes applications to run a Perl script in the cloud either (though there are plenty of those kind of 'cloud transformations' around).
In fact, many users of the Redline version of REVVOPS One have found that the actual availability realized exceeds the published availability of every well known web hosting provider in the industry - and all from a single AWS Availability Zone. Regarding availability statistics; AWS do not make their Availability Zone data publicly available, but every seasoned DevOps and SRE that work with AWS on a daily basis will tell you, that the availability you'll get from a single Availability Zone in many regions is likely to be very high indeed. That being said, if your use case does demand a specific guaranteed availability, please get in touch with us to discuss infrastructure architecture application options.
How to Run REVVOPS One
It's really simple, you just edit the revvops-one.edit.yaml file, specifying your desired region, access keys (or AWS CLI profile name) and other values, then use the REVVOPS CLI to initialize the V8 Core:
revvops init
then bring up the instance:
revvops up --arch=revvops-one
and if you don't want it running indefinitely, bring it down when you're done:
revvops down --arch=revvops-one
For automatic running web server functionality you should set the image_provisioning YAML key to any of the OTF-* values (indicating 'on the fly' provisioning), as described in the sections below.
Quickly Create a Single Instance Apache Web Server Architecture on AWS
Using the value OTF-apache-httpd will provision a running Apache 2.4 web server using the /var/www/html directory as the document root, with index.html being served as the default web page from within there. The base configuration directory for Apache is /etc/httpd; the main configuration file being /etc/httpd/conf/httpd.conf. The server's state can be managed with the apachectl command.
Quickly Create a Single Instance NGINX Web Server Architecture on AWS
Using the value OTF-nginx will provision a running NGINX web server using the /usr/share/nginx/html/ directory as the document root, with the file index.html served as the default web page from within there. The main NGINX configuration file is /etc/nginx/nginx.conf. The server's state can managed with the systemctl command. For containerized environments and production cloud architectures generally, NGINX has become very widely adopted, not just as a web server, but also for its load balancing and reverse proxy capabilities.
Quickly Create a Single Instance Lighttpd Web Server Architecture on AWS
Using the value OTF-lighttpd will provision a running Lighttpd web server with the directory /var/www/lighttpd as the document root and the file index.html served as the default web page from within there. The main configuration file for Lighttpd is /etc/lighttpd/lighttpd.conf. Lighttpd has very small memory demands and is particularly good at delivering high performance levels from modest EC2 instance types. The server's state can be managed with the systemctl command.
Quickly Create a Python 3 Web Server Architecture on AWS
Using the value OTF-python3-http-server will provision a running Python 3 implementation of a web server based on the language's http.server module documented here. Note the documentation's main caveat; "http.server is not recommended for production. It only implements basic security checks". The document root of this web server is /var/www/html and index.html is its default web page served from within there. This web server is mainly intended for Python development purposes and isn't controlled by systemctl or an equivalent utility, so to stop the server you have to kill its process.
Using Desired State Configuration to Change Web Servers
As an example, say you already have your instance up and running with Apache and wanted to switch to NGINX, you don't have to explicity take down the instance first, then change image_provisioning to OTF-nginx and then bring it up again. You can just issue another
revvops up
command after the first as follows, without the need for a revvops down
command to be issued prior:revvops up --arch=revvops-one -c image_provisioning=OTF-nginx
You will notice the real time output indicating how the underlying Pulumi IaC platform handles the diff compute of the new desired state configuration. You can of course change the value of image_provisioning in revvops-one.edit.yaml instead of specifying the new value on the command line, but when experimenting with different web servers like this, it's convenient to not have to edit the YAML configuration file.