# [Deploy Arm Instances on AWS using Terraform](https://learn.arm.com/learning-paths/servers-and-cloud-computing/aws-terraform/)

## In this learning path

- [Introduction](https://learn.arm.com/learning-paths/servers-and-cloud-computing/aws-terraform/)
- [Automate AWS instance creation using Terraform](https://learn.arm.com/learning-paths/servers-and-cloud-computing/aws-terraform/terraform/)
- [Deploy Arm instances on AWS and provide access via Jump Server](https://learn.arm.com/learning-paths/servers-and-cloud-computing/aws-terraform/jump_server_aws/)
- [Next Steps](https://learn.arm.com/learning-paths/servers-and-cloud-computing/aws-terraform/_next-steps/)

## About this Learning Path

| Skill level: | Advanced               |
|--------------|------------------------|
| Reading time:| 1 hr                   |
| Last updated:| 31 Jul 2026            |

| Author:                |
|------------------------|
| Jason Andrews, Arm     |
| [GitHub](https://github.com/jasonrandrews) |
| [LinkedIn](https://linkedin.com/in/jason-andrews-7b05a8) |

| Arm IP:   |
|-----------|
| [Neoverse](https://support.arm.com/?tab=compute-ip&Product%20Type=Infrastructure%20Processors) |

| Tags:                      |
|---------------------------|
| [Containers and Virtualization](https://learn.arm.com/tag/containers-and-virtualization) |
| [AWS](https://learn.arm.com/tag/aws)               |
| [Linux](https://learn.arm.com/tag/linux)           |
| [Terraform](https://learn.arm.com/tag/terraform)   |
| [Bastion](https://learn.arm.com/tag/bastion)       |

### Who is this for?
This is an introductory topic for software developers who are new to deploying Arm instances on AWS using Terraform.

### What will you learn?
Upon completion of this Learning Path, you will be able to:
- Automate Amazon EC2 instance creation using Terraform
- Deploy Arm instances on AWS and provide access via Jump Server
- Provide infrastructure basics, code knowledge and files that could help with future learning paths

### Prerequisites
Before starting, you will need the following:
- An Amazon Web Services (AWS) [account](https://aws.amazon.com/)
- A computer with [Terraform](https://learn.arm.com/install-guides/terraform) installed

### Summary
You’ll define and apply Terraform automation to provision AWS Graviton-based EC2 instances and expose secure access through a jump server, also known as a bastion host. First, you’ll review the provided Terraform files, run the workflow using Terraform Cloud, and adapt the configuration as needed to fit related projects. You’ll learn a practical pattern: create Arm-based EC2 instances, place a supervised access point in front, and validate that the deployed nodes are reachable only through the jump server. The resulting configuration provides a reusable baseline for future Arm-focused work on AWS that requires one or more server nodes.

### Frequently asked questions

<details>
<summary>Can I run the steps from any machine?</summary>
Yes. Any computer with the required tools installed can be used, including a desktop, laptop, or virtual machine.
</details>

<details>
<summary>Should I use Terraform Cloud or the local CLI for this workflow?</summary>
This Learning Path uses Terraform Cloud to automate the creation of Arm instances. Follow the steps that reference Terraform Cloud to run the provisioning.
</details>

<details>
<summary>How do I know the provisioned instances are Arm-based (Graviton)?</summary>
The configuration in this Learning Path provisions Arm instances. After `apply`, check the instance details in AWS or the resource attributes shown by Terraform to confirm the architecture.
</details>

<details>
<summary>What result should I expect after applying the Terraform configuration?</summary>
You should see one or more AWS instances created and a jump server configured to broker access. Verify that the resources are present in AWS and that the jump server is the access point.
</details>

<details>
<summary>What should I modify to reuse this setup for other Learning Paths?</summary>
Use the provided Terraform files as a starting point and adjust them to match the needs of the other activity. Keep the jump server pattern and update the configuration where needed to align with your target environment.
</details>
