Skip to content

Latest commit

 

History

History
30 lines (20 loc) · 2.49 KB

Edda.md

File metadata and controls

30 lines (20 loc) · 2.49 KB

Step 14 - Build and Bake Edda

Operating "in the cloud" has its challenges, and one of those challenges is that nothing is static. Virtual host instances are constantly coming and going, IP addresses can get reused by different applications, and firewalls suddenly appear as security configurations are updated. At Netflix we needed something to help us keep track of our ever-shifting environment within Amazon Web Services (AWS). Our solution is Edda.

Using Edda we learn about our buckets, images, load balancers, tags, volumes, instances, etc all over time with a rich matrix-style API.

Bake Edda

cd ~/zerotocloud
./gradlew :edda:bake

Create Role

It is a good idea to have dedicated roles for each application. Dedicated roles provide a security benefit, but are also quite useful in trying to track down problematic activity. For edda it will need read-only access to most AWS resources. To setup the role using the console follow the instructions for creating the jumphost role only select the "Read Only Access" template instead of "Administrator Access".

Deploy Edda

We're going to repeat the Asgard deploy but for Edda. This will have us returning to Step 13 to perform the "Create Application", "Create an ELB", "Create Auto Scaling Group", and "View instance" pieces. The difference will be be that we're going to use a different "Health Check" URL, because Edda doesn't provide a healthcheck endpoint. Instead we're going to pick a safe endpoint that will return a HTTP response of 200 when Edda is up.

  1. Naviate to Asgard. This can be done by finding the DNS Name from the end of Step 13 or finding the Asgard ELB and using the DNS Name.
  2. Follow "Create Application", using the name "edda" instead of "asgard".
  3. Follow "Create an ELB", using the name "edda" instead of "asgard". And instead of HTTP:7001/healthcheck for the Health Check URL, use "HTTP:7001/api/v2/view/instances;_limit=1". The protocol and port are the same, but the path is different.
  4. Follow "Create Auto Scaling Group" using the name "edda" instead of "asgard" and using the IAM role "edda" instead of "jumphost".
  5. Follow "View instance" to get the DNS Name for edda's ELB, i.e. edda--frontend.
  6. Using that DNS Name, visit _http://ELB DNS name/api/v2/view/instances;pp

Review Edda's REST API for further documentation.