Skip to content

Commit 80adc08

Browse files
committed
Technical review of CircleAI on Graviton
1 parent 7858445 commit 80adc08

9 files changed

Lines changed: 78 additions & 95 deletions

File tree

content/learning-paths/servers-and-cloud-computing/circleci-on-aws/_index.md

Lines changed: 9 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,30 +1,21 @@
11
---
22
title: Deploy CircleCI Arm Native Workflows on AWS EC2 Graviton2
33

4-
minutes_to_complete: 45
4+
minutes_to_complete: 30
55

66
who_is_this_for: This is an introductory topic for developers and DevOps engineers who want to set up and run CircleCI Arm native workflows on Linux Arm64 virtual machines. You'll use AWS EC2 Graviton2 instances (Neoverse N1) and self-hosted runners.
77

88
learning_objectives:
9-
- Provision an AWS EC2 Graviton2 Arm64 virtual machine
10-
- Install and configure a CircleCI self-hosted machine runners on Arm64
9+
- Create an AWS EC2 Graviton2 Arm64 virtual machine
10+
- Install and configure CircleCI self-hosted machine runners on Arm64
1111
- Verify the runner by running a simple workflow and test computation
12-
- Define and execute CircleCI job using a machine executor
13-
- Check CPU architecture and execute a basic script to confirm if the runner is operational
14-
- Display CPU information and validate outputs from the sample computation
1512

1613
prerequisites:
1714
- An [AWS account](https://aws.amazon.com/free/) with billing enabled
18-
- A [CircleCI account](https://circleci.com/)
19-
- Basic familiarity with Linux command line
20-
- Basic understanding of CircleCI concepts such as
21-
[workflows](https://circleci.com/docs/guides/orchestrate/workflows/),
22-
[jobs](https://circleci.com/docs/guides/orchestrate/jobs-steps/),
23-
[resource classes](https://circleci.com/docs/guides/execution-managed/resource-class-overview/), and
24-
[runners](https://circleci.com/docs/guides/execution-runner/runner-overview/)
15+
- A CircleCI account
16+
- Basic understanding of CircleCI workflows, jobs and resource classes
2517

26-
27-
author: Pareena Verma
18+
author: Annie Tallund
2819

2920
##### Tags
3021
skilllevels: Introductory
@@ -36,7 +27,7 @@ armips:
3627

3728
tools_software_languages:
3829
- CircleCI
39-
- Bash/Shell scripting
30+
- Bash
4031
- Git
4132

4233

@@ -48,8 +39,8 @@ operatingsystems:
4839
# ================================================================================
4940
further_reading:
5041
- resource:
51-
title: AWS EC2 Documentation
52-
link: https://docs.aws.amazon.com/ec2/index.html
42+
title: AWS EC2 Graviton Documentation
43+
link: https://aws.amazon.com/ec2/graviton/
5344
type: documentation
5445

5546
- resource:
Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
---
2-
title: Get Started with CircleCI on AWS Graviton2
2+
title: Get Started with CircleCI on AWS Graviton
33

44
weight: 2
55

@@ -8,11 +8,11 @@ layout: "learningpathall"
88

99
## AWS Graviton2 Arm instances on Amazon EC2
1010

11-
AWS Graviton2 is a family of Arm-based processors designed by AWS and built on Arm Neoverse-N1 cores. These instances deliver exceptional price-to-performance efficiency, making them ideal for compute-intensive workloads such as CI/CD pipelines, microservices, containerized applications, and data processing tasks.
11+
## AWS Graviton Arm Instances on Amazon EC2
1212

13-
Graviton2-powered EC2 instances provide high performance and energy efficiency compared to traditional x86-based instances while maintaining compatibility with popular Linux distributions and open-source software stacks.
13+
AWS Graviton is a family of Arm-based processors designed by AWS and built on Arm Neoverse-N1 cores. These instances deliver price-to-performance efficiency, making them suitable for compute-intensive workloads such as CI/CD pipelines, microservices, containerized applications, and data processing tasks.
1414

15-
To learn more about AWS Graviton processors, see the [AWS Graviton2 Processor Overview](https://aws.amazon.com/ec2/graviton/).
15+
Graviton-powered EC2 instances provide high performance and energy efficiency while maintaining compatibility with popular Linux distributions and open-source software stacks.
1616

1717
## CircleCI
1818

@@ -22,7 +22,7 @@ It seamlessly integrates with popular version control systems such as GitHub, Bi
2222

2323
CircleCI supports multiple execution environments, including Docker, Linux, macOS, and Windows, while providing advanced capabilities like parallel job execution, build caching, and matrix builds for optimized performance.
2424

25-
It is widely adopted by development teams to accelerate build cycles, enforce code quality, automate testing, and streamline application delivery.
25+
It is widely adopted by development teams to accelerate build cycles, enforce code quality, automate testing, and streamline application delivery.
2626

27-
To learn more, visit the [CircleCI website](https://circleci.com/) and the [CircleCI documentation](https://circleci.com/docs/).
27+
Continue to the next section to set up your Graviton instance that you will use to run CircleCI workloads.
2828

content/learning-paths/servers-and-cloud-computing/circleci-on-aws/circleci-runner-installation.md

Lines changed: 6 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -8,28 +8,20 @@ layout: learningpathall
88

99
## Install CircleCI machine runner on AWS Graviton2
1010

11-
This Learning Path shows you how to install and configure the CircleCI Machine Runner on an AWS Graviton2 (Neoverse N1) instance. With this setup, your self-hosted Arm64 environment can efficiently execute CircleCI jobs directly on the Graviton2 architecture, enabling faster builds and improved performance for Arm-based workloads.
11+
This section provides step-by-step instructions to install and configure the CircleCI Machine Runner. With this setup, your self-hosted Arm64 environment can efficiently execute CircleCI jobs directly on the Graviton architecture, enabling faster builds and improved performance for ARM-based workloads.
1212

1313

14-
## Add the CircleCI package repository
15-
For Debian/Ubuntu-based systems running on AWS Graviton2 (Arm64), first add the official CircleCI repository. This ensures you can install the CircleCI Runner package directly using `apt`:
14+
### Add the CircleCI package repository
15+
For Debian/Ubuntu-based systems running on AWS Graviton2 (Arm64), first add the official CircleCI repository. This ensures you can install the CircleCI Runner package directly using `apt`.
1616

1717
```console
1818
curl -s https://packagecloud.io/install/repositories/circleci/runner/script.deb.sh?any=true | sudo bash
1919
```
2020

21-
- The `curl` command downloads and executes the repository setup script from CircleCI's official package server.
22-
- It configures the repository on your system, allowing `apt` to fetch and install the CircleCI runner package.
23-
- After successful execution, the CircleCI repository will be added under `/etc/apt/sources.list.d/`.
21+
After successful execution, the CircleCI repository will be added under `/etc/apt/sources.list.d/`. Run the command to verify:
2422

25-
## Configure the runner token
26-
- Each self-hosted runner requires a unique authentication token generated from your resource class in the CircleCI dashboard.
27-
- Copy the token from the CircleCI web interface.
28-
- Export the token as an environment variable and update the runner configuration file as shown:
29-
30-
```console
31-
export RUNNER_AUTH_TOKEN="YOUR_AUTH_TOKEN"
32-
sudo sed -i "s/<< AUTH_TOKEN >>/$RUNNER_AUTH_TOKEN/g" /etc/circleci-runner/circleci-runner-config.yaml
23+
```bash
24+
ls /etc/apt/sources.list.d/
3325
```
3426

3527
## Install the CircleCI runner

content/learning-paths/servers-and-cloud-computing/circleci-on-aws/circlecli-installation.md

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,7 @@ layout: learningpathall
77
---
88

99
## Install CircleCI CLI on AWS Graviton2 (Neoverse N1) instance
10-
This section walks you through how to install the CircleCI command line interface (CLI) on an AWS Graviton2 (Neoverse N1) Arm64 EC2 instance.
11-
With the CLI, you can work with CircleCI from your terminal to check configuration files, manage pipelines, and run self-hosted runners on your EC2 instance.
10+
This guide walks you through how to install the CircleCI command line interface (CLI). With the CLI, you can work with CircleCI from your terminal to check configuration files, manage pipelines, and run self-hosted runners on your EC2 instance.
1211

1312
## Install the required packages
1413
Before installing the CircleCI CLI, ensure your system has the necessary tools for downloading and extracting files:
@@ -26,7 +25,7 @@ sudo mv circleci-cli_0.1.33494_linux_arm64/circleci /usr/local/bin/
2625
```
2726
- The `curl` command fetches the official CircleCI CLI archive from GitHub.
2827
- The `| tar xz` command extracts the compressed binary in a single step.
29-
- After extraction, a new folder named **`circleci-cli_0.1.33494_linux_arm64`** appears in your current directory.
28+
- After extraction, a new folder named `circleci-cli_0.1.33494_linux_arm64` appears in your current directory.
3029

3130
## Verify the installation
3231

@@ -35,10 +34,10 @@ To ensure that the CLI is installed successfully, check its version:
3534
```console
3635
circleci version
3736
```
38-
You should see an output similar to:
37+
The first time this runs, an interactive shell might open. For now, press `Ctrl+C` to abort. You should now see an output similar to:
3938

4039
```output
4140
0.1.33494+7cc6570 (release)
4241
```
4342

44-
If this version number appears, the CircleCI CLI installation on your AWS Graviton2 instance was successful!
43+
If this version number appears, the CircleCI CLI installation on your AWS Graviton instance was successful!
Binary file not shown.
Binary file not shown.

content/learning-paths/servers-and-cloud-computing/circleci-on-aws/instance.md

Lines changed: 21 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -8,30 +8,37 @@ layout: learningpathall
88

99
## Overview
1010

11-
In this section, you'll learn how to provision an AWS Graviton2 Arm64 EC2 instance on Amazon Web Services (AWS) using the m6g.xlarge instance type (2 vCPUs, 8 GB memory) in the AWS Management Console.
11+
In this section, you will learn how to set up an AWS Graviton Arm64 EC2 instance on Amazon Web Services (AWS) using the `m6g.large` instance type in the AWS Management Console.
1212

1313
{{% notice Note %}}
1414
For support on AWS setup, see the Learning Path [Getting started with AWS](/learning-paths/servers-and-cloud-computing/csp/aws/).
1515
{{% /notice %}}
1616

17-
## Provision the instance in the AWS Management Console
1817

19-
To create a virtual machine based on the AWS Graviton2 Instance type, follow these steps:
18+
## Set up an instance in the AWS Management Console
19+
20+
To create your virtual machine:
2021
- Navigate to the [AWS Management Console](https://aws.amazon.com/console/).
21-
- Go to **EC2 > Instances** and select **Launch Instance**.
22-
- Under **Instance configuration**:
23-
- Enter an appropriate **Instance name**.
24-
- Choose an **Amazon Machine Image (AMI)** such as **Ubuntu 24.04 ARM64**.
22+
- Go to EC2 > Instances and select Launch Instance.
23+
- Under Instance configuration:
24+
- Enter an appropriate Instance name.
25+
- Choose an Amazon Machine Image (AMI) such as Ubuntu 24.04 ARM64.
2526

26-
![AWS Management Console showing the Amazon Machine Image selection screen with Ubuntu 24.04 ARM64 highlighted. The interface displays a list of available AMIs, each with details such as name, architecture, and description. The wider environment includes navigation menus on the left and a search bar at the top. The mood is neutral and instructional, focused on guiding users through selecting an appropriate AMI. Visible text includes Amazon Machine Image, Ubuntu 24.04 ARM64, and related AMI details. alt-text#center](images/aws1.png "Amazon Machine Image (AMI)")
27-
- Under **Instance type**, select a Graviton2-based type `m6g.xlarge`.
27+
![AWS Management Console showing the Amazon Machine Image selection screen with Ubuntu 24.04 ARM64 highlighted. The interface displays a list of available AMIs, each with details such as name, architecture, and description. The wider environment includes navigation menus on the left and a search bar at the top. The mood is neutral and instructional, focused on guiding users through selecting an appropriate AMI. Visible text includes Amazon Machine Image, Ubuntu 24.04 ARM64, and related AMI details. alt-text#center](images/aws1.png "Figure 1: Amazon Machine Image (AMI)")
28+
29+
- Under Instance type, select a Graviton-based type `m6g.large`.
2830

2931
![AWS Management Console displaying the instance type selection screen with m6g.xlarge highlighted. The primary subject is the list of available EC2 instance types, each showing details such as name, vCPUs, memory, and architecture. The m6g.xlarge row is selected, indicating 2 vCPUs and 8 GB memory, with Arm64 architecture. The wider environment includes navigation menus on the left and a search bar at the top. Visible text includes Instance type, m6g.xlarge, vCPUs, Memory, and Arm64. The tone is neutral and instructional, guiding users to select the correct instance type. #alt-text#center](images/aws2.png "Instance type")
3032

31-
- Configure your **Key pair (login)** by either creating a new key pair or selecting an existing one to securely access your instance.
32-
- In **Network settings**, ensure that **Allow HTTP traffic from the internet** and **Allow HTTPS traffic from the internet** are checked.
33+
- Configure your Key pair (login) by either creating a new key pair or selecting an existing one to securely access your instance.
34+
- In Network settings, ensure that Allow HTTP traffic from the internet and Allow HTTPS traffic from the internet are checked.
35+
36+
![AWS Management Console showing the Network settings configuration screen for launching an EC2 instance. The primary subject is the Network settings panel, where the options Allow HTTP traffic from the internet and Allow HTTPS traffic from the internet are both checked. The wider environment includes navigation menus on the left and a summary of instance configuration steps at the top. Visible text includes Network settings, Allow HTTP traffic from the internet, and Allow HTTPS traffic from the internet. The tone is neutral and instructional, guiding users to enable the correct network access for their instance. #alt-text#center](images/aws3.png "Figure 3: Network settings")
3337

34-
![AWS Management Console showing the Network settings configuration screen for launching an EC2 instance. The primary subject is the Network settings panel, where the options Allow HTTP traffic from the internet and Allow HTTPS traffic from the internet are both checked. The wider environment includes navigation menus on the left and a summary of instance configuration steps at the top. Visible text includes Network settings, Allow HTTP traffic from the internet, and Allow HTTPS traffic from the internet. The tone is neutral and instructional, guiding users to enable the correct network access for their instance. #alt-text#center](images/aws3.png "Network settings")
38+
{{% notice Network security %}}
39+
Be careful with permissive network inbound rules, as they pose a security risk. Good practice is to configure the machine to only allow traffic from your IP.
40+
{{% /notice %}}
3541

36-
- Adjust the Storage settings. For most use cases, 30 GB of gp3 (SSD) storage is enough.
37-
- Select **Launch Instance** to create your EC2 virtual machine.
42+
43+
- Adjust Storage settings as needed — for this setup, 30 GB of gp3 (SSD) storage is sufficient.
44+
- Click Launch Instance to create your virtual machine.

content/learning-paths/servers-and-cloud-computing/circleci-on-aws/resource-class.md

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -10,20 +10,18 @@ layout: learningpathall
1010

1111
This section describes creating a resource class in the CircleCI Web Dashboard for a self-hosted runner. A resource class uniquely identifies the runner and links it to your CircleCI namespace, enabling jobs to run on your custom machine environment.
1212

13+
14+
A Resource Class uniquely identifies the runner and links it to your CircleCI namespace, enabling jobs to run on your custom machine environment.
15+
1316
## Register a resource class for your CircleCI self-hosted runner
17+
If you don't have an organization set up already, start by creating one to access the CircleCI dashboard.
1418

1519
To register a resource class for your CircleCI self-hosted runner, start by navigating to **Self-Hosted Runners** in the left sidebar of the CircleCI dashboard. You’ll be prompted to accept the terms of use; check the box labeled “Yes, I agree to the terms” to enable runners. Once you’ve agreed, select **Self-Hosted Runners** to continue with the setup process.
1620

17-
![CircleCI dashboard showing the Self-Hosted Runners section. The main subject is the Self-Hosted Runners setup screen with a checkbox labeled Yes I agree to the terms and a button to enable runners. The wider environment includes the CircleCI dashboard interface with navigation sidebar and setup instructions. Visible text: Self-Hosted Runners, Yes I agree to the terms. The emotional tone is neutral and instructional. alt-text#center](images/shrunner0.png "Self-Hosted Runners section")
18-
1921
To create a new resource class, select **Create Resource Class**.
2022

21-
![CircleCI dashboard showing the Create Resource Class button. The main subject is the Self-Hosted Runners setup screen with a prominent button labeled Create Resource Class. The wider environment includes the CircleCI dashboard interface with navigation sidebar and setup instructions. Visible text: Create Resource Class. The emotional tone is neutral and instructional. alt-text#center](images/shrunner1.png "Create Resource Class")
22-
2323
Fill in the details for your new resource class by entering your CircleCI username or organization in the **Namespace** field (for example, `circleci`). In the **Resource Class Name** field, provide a descriptive name for your runner, such as `arm64`, to clearly identify its purpose or architecture.
2424

25-
![CircleCI dashboard showing the form to create a resource class. The main subject is the Details section with fields for Namespace and resource class Name. The wider environment includes the CircleCI dashboard interface with navigation sidebar and setup instructions. Visible text: Namespace, resource class Name, Create resource class. The emotional tone is neutral and instructional. alt-text#center](images/shrunner2.png "Create a resource class")
26-
2725
After creation, CircleCI generates a **Resource Class Token**. Copy this token and store it securely - you need it to register your runner on the AWS Arm VM.
2826

2927
![CircleCI dashboard showing resource Class Token field and copy button. The main subject is the resource Class Token displayed in a text box, with a button labeled Copy next to it. The wider environment includes the CircleCI dashboard interface with navigation sidebar and setup instructions. The emotional tone is neutral and instructional. Visible text: resource class Token, Copy. alt-text#center](images/shrunner3.png "Resource Class Token field and copy button")

0 commit comments

Comments
 (0)