Running Fermyon on AWS

Thank you for trying out the AWS installer of Fermyon! This document will guide you through configuring Fermyon on AWS.

Setup

Please read the security disclaimer before continuing.

Clone the installer repository and cd in to the aws/terraform directory.

git clone https://github.com/fermyon/installer.git
cd installer/aws/terraform

Initialize terraform and deploy the infrastructure with Let’s Encrypt to provision certs for HTTPS. See this page for details about the resources that will be deployed in AWS.

terraform init
terraform apply -var='enable_letsencrypt=true'

This step can take about a few minutes to complete.

If everything is successful, you should see the links for the relevant dashboards and environment variables that need to be added to your current shell. See the troubleshooting guide for help with deployment issues.

Source your environment using:

$(terraform output -raw environment)

For a more detailed walkthrough, make sure to visit this page.

Deploying your first application to Fermyon on AWS

Spin provides templates to bootstrap a new application. Let’s use the http-rust template to create a simple hello world HTTP application written in Rust.

$ spin new http-rust hello-fermyon-aws
Project description: AWS quickstart demo
HTTP base: /
HTTP path: /...
$ cd hello-fermyon-aws

Now we can build our application using spin build:

$ spin build
Executing the build command for component hello-fermyon-aws: cargo build --target wasm32-wasi --release
...
Successfully ran the build command for the Spin components.

The application has been built, and is now ready to be deployed to Fermyon.

NOTE: Ensure the HIPPO_URL, HIPPO_USERNAME, HIPPO_PASSWORD and BINDLE_URL environment variables are set in the terminal by running $(terraform output -raw environment).

$ spin deploy
Deployed hello-fermyon-aws version 0.1.0+qe86e210
Available Routes:
  hello-fermyon-aws: https://spin-deploy.hello-fermyon-aws.hippo.3.226.70.241.sslip.io (wildcard)

Fermyon automatically configured the domain for the application, and the application now accepts requests:

$ curl -i https://spin-deploy.hello-fermyon-aws.hippo.3.226.70.241.sslip.io/
HTTP/2 200
date: Fri, 17 Jun 2022 16:40:34 GMT
foo: bar
content-type: text/plain; charset=utf-8
content-length: 14

Hello, Fermyon

Log in to the Hippo dashboard where you can see details about the new application, view the logs, or change environment variables:

$ echo $HIPPO_URL
https://hippo.3.226.70.241.sslip.io

The new application

For a detailed guide on writing applications for the Fermyon platform, visit the Spin website.

You can now make changes to the application and run spin deploy again, or create new applications.

To uninstall the Fermyon and all related AWS resources:

terraform destroy