This exercise uses a Cloud Formation template to create the required AWS infrastructure (and formats the EBS volume via User Data). Next an OpsWorks Stack using Chef Solo configures the instance to be a web server, mounts the EBS volume as the HTML storage location, and adds a few files to serve (including the index.html
).
1/webserver.yaml
A Cloud Formation template that creates a single t2.micro
instance with attached EIP and security group for SSH/HTTP. The default AMI is a standard Amazon Linux 2 AMI but may be provided at launch time.
webserver
A Chef (solo) cookbook for OpsWorks Stacks that configures an instance to be a web server and serve some files from a (newly) mounted EBS volume (see the webserver/recipes/default.rb
recipe for details).
-
Create and launch a CloudFormation stack from the
webserver.yaml
Cloud Formation template (e.g. inus-west-2
) -
Create an OpsWorks Stacks stack, choosing the just-created instance. Follow the console-provided steps to setup the instance for OpsWorks Stacks.
NOTE: You'll need to ssh into the instance, configure the aws-cli, and register the instance with Opsworks.
-
In the Stack Settings, set the repository type to
git
and the URL tohttps://github.com/jguice/asares.git
-
Create a Web Server layer that runs the recipe
webserver
during the deploy phase. -
Assign the instance created from the Cloud Formation template to the Web Server layer and watch the magic. 🎩
2/AWS Architecture Mind Map.(itmz|pdf)
Mind map used for initial note-taking, requirements capturing, and brainstorming of design, components, etc. (original and PDF).
2/AWS Customer Proposal.(pages|pdf)
Final customer-facing proposal document/deliverable outlining the solution and architecture (original and PDF).
2/AWS Customer Proposal - Estimate.png
Rough cost estimate for proposed architecture.