# Deploy Arm Instances on AWS using 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: | 09 Sep 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 Graviton](https://learn.arm.com/tag/aws-graviton) | [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?
After completing this Learning Path, you'll be able to perform the following tasks:
- 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'll need the following prerequisites:
- 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

**Can I run the steps from any machine?**

Yes. Any computer with the required tools installed can be used, including a desktop, laptop, or virtual machine.

**Should I use Terraform Cloud or the local CLI for this workflow?**

This Learning Path uses Terraform Cloud to automate the creation of Arm instances. Follow the steps that reference Terraform Cloud to run the provisioning.

**How do I know the provisioned instances are Arm-based (Graviton)?**

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.

**What result should I expect after applying the Terraform configuration?**

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.

**What should I modify to reuse this setup for other Learning Paths?**

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.
