<commit_before>---
layout: "intro"
page_title: "Infrastructure"
sidebar_current: "gettingstarted-infra"
description: |-
  Build the infrastructure to support your applications with Otto.
---

# Infrastructure

In the previous step, we got a development environment up and running with no
configuration and a couple simple commands. Now, let's deploy that application.

To deploy an application, Otto has three steps: start an infrastructure,
build the application, and launch the application. We'll go over each of
these steps on as a separate page in the getting started guide.

We'll deploy the application to [AWS](http://aws.amazon.com) for
the getting started guide since it is popular and generally well understood, but
Otto can deploy to many different infrastructure providers.

If you don't have an AWS account, [create one now](http://aws.amazon.com/free/).
For the getting started guide, we'll only be using resources which qualify
under the AWS [free-tier](http://aws.amazon.com/free/), meaning it will be free.
If you already have an AWS account, you may be charged some amount of money,
but it shouldn't be more than a few dollars at most.

~> **Warning!** If you're not using an account that qualifies under the AWS
free-tier, you may be charged to run these examples. The most you should be
charged should only be a few dollars, but we're not responsible for any
charges that may incur.

## Infrastructure

The first step before an application is deployed is to build an
infrastructure to deploy to. Within Otto, "infrastructure" refers to
a target cloud platform and the minimum resources necessary to run
applications.

Using AWS as an example, Otto creates a VPC, subnets, proper routing tables,
an internet gateway, and more. If you're not familiar with this, that's okay!
That is the point of Otto: to codify infrastructure best practices so<commit_msg>Update infra.html.md<commit_after>---
layout: "intro"
page_title: "Infrastructure"
sidebar_current: "gettingstarted-infra"
description: |-
  Build the infrastructure to support your applications with Otto.
---

# Infrastructure

In the previous step, we got a development environment up and running with no
configuration and a couple simple commands. Now, let's deploy that application.

To deploy an application, Otto has three steps: start an infrastructure,
build the application, and launch the application. We'll go over each of
these steps on a separate page in the getting started guide.

We'll deploy the application to [AWS](http://aws.amazon.com) for
the getting started guide since it is popular and generally well understood, but
Otto can deploy to many different infrastructure providers.

If you don't have an AWS account, [create one now](http://aws.amazon.com/free/).
For the getting started guide, we'll only be using resources which qualify
under the AWS [free-tier](http://aws.amazon.com/free/), meaning it will be free.
If you already have an AWS account, you may be charged some amount of money,
but it shouldn't be more than a few dollars at most.

~> **Warning!** If you're not using an account that qualifies under the AWS
free-tier, you may be charged to run these examples. The most you should be
charged should only be a few dollars, but we're not responsible for any
charges that may incur.

## Infrastructure

The first step before an application is deployed is to build an
infrastructure to deploy to. Within Otto, "infrastructure" refers to
a target cloud platform and the minimum resources necessary to run
applications.

Using AWS as an example, Otto creates a VPC, subnets, proper routing tables,
an internet gateway, and more. If you're not familiar with this, that's okay!
That is the point of Otto: to codify infrastructure best practices so
{'fraction_non_alphanumeric': 0.06130063965884861, 'fraction_numerical': 0.0, 'mean_word_length': 4.609865470852018, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 5, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '3220713', 'n_tokens_mistral': 960, 'n_tokens_neox': 910, 'n_words': 555}