Chapter 3. Deploying a RHEL image as an EC2 instance on AWS
To use a Red Hat Enterprise Linux (RHEL) image on Amazon Web Services (AWS), you need to convert the RHEL image to an AWS-compatible format, Amazon Machine Image (AMI) and for customization, use either RHEL image builder or manual configuration. From an AMI, you can launch an Elastic Cloud Compute (EC2) instance.
3.1. Available RHEL image types for public cloud Copy linkLink copied to clipboard!
To deploy your RHEL virtual machine VM on a certified cloud service provider (CCSP), you can use several options. The following table lists the available image types, subscriptions, considerations, and sample scenarios for the image types.
To deploy customized ISO images, you can use RHEL image builder. With RHEL image builder, you can create, upload, and deploy these custom images specific to your chosen CCSP.
| Image types | Subscriptions | Considerations | Sample scenario |
|---|---|---|---|
| Deploy a Red Hat gold image | Use your existing Red Hat subscriptions | The subscriptions include the Red Hat product cost and support for Cloud Access images, while you pay the CCSP for all other instance costs | Select a Red Hat gold image on the CCSP according to requirement. |
| Deploy a custom image that you move to the CCSP | Use your existing Red Hat subscriptions | The subscriptions includes the Red Hat product cost and support for custom RHEL image, while you pay the CCSP for all other instance costs | Upload your custom image and attach your subscriptions |
| Deploy an existing RHEL based custom machine image | The custom machine images include a RHEL image | You pay the CCSP on an hourly basis based on a pay-as-you-go model. For this model, on-demand images are available on the CCSP marketplace. The CCSP provides support for these images, while Red Hat handles updates. The CCSP provides updates through the Red Hat Update Infrastructure (RHUI) | Select a RHEL image when you launch an instance on the CCSP cloud management console, or choose an image from the CCSP marketplace. |
To convert an on-demand, license-included EC2 instance to a bring-your-own-license (BYOL) EC2 instance of RHEL.
3.2. Deploying a RHEL instance by using a custom base image Copy linkLink copied to clipboard!
To manually configure a virtual machine (VM), first create a base (starter) image. Then, you can modify configuration settings and add the packages the VM requires to operate on the cloud. You can also make additional configuration changes for your specific application after you upload the image.
Creating a VM from a base image has the following advantages:
- Fully customizable
- High flexibility for any use case
- Lightweight - includes only the operating system and the required runtime libraries
To create a custom base image of RHEL from an ISO image, you can use the command line interface (CLI) or the web console for creating and configuring VM.
Verify the following VM configurations.
- SSH - Enable SSH to give remote access to your VM.
- DHCP - Configure the primary virtual adapter to use DHCP.
Prerequisites
- You have enabled virtualization on the host machine.
- For web console, ensure the following options:
- You have not checked the Immediately Start VM option.
- You have already changed the Memory size to your preferred settings.
- You have changed the Model option under Virtual Network Interface Settings to virtio and vCPUs to the capacity settings for the VM.
Procedure
Configure the Red Hat Enterprise Linux (RHEL) VM:
- To install from the command line (CLI), ensure that you set the default memory, network interfaces, and CPUs according to your requirement for the VM. For details, see Creating virtual machines by using the command line
- To install from the web console, see Creating virtual machines by using the web console
When the installation starts:
-
Create a
rootpassword. - Create an administrative user account.
-
Create a
-
After the installation completes, reboot the VM and log in to the
rootaccount. -
After logging in as
root, you can configure the image. Register the VM and enable the RHEL repository:
# subscription-manager registerFor AMD64 or Intel 64 (x86_64) VMs, install the
nvme,xen-netfront, andxen-blkfrontdrivers:# dracut -f --add-drivers "nvme xen-netfront xen-blkfront"For ARM 64 (aarch64) VMs, install the
nvmedriver:# dracut -f --add-drivers "nvme"Including these drivers prevents a
dracuttime-out.Alternatively, you can add the drivers to
/etc/dracut.conf.d/and then enterdracut -fto overwrite the existinginitramfsfile.
Verification
Verify if the system has the
cloud-initpackage and enable it:# dnf install cloud-init # systemctl enable --now cloud-init.service- Power off the VM.
3.3. Uploading a RHEL image to AWS by using the command line Copy linkLink copied to clipboard!
To run a RHEL instance on Amazon Web Services (AWS), you must first upload a RHEL image to AWS. To configure and manage a RHEL EC2 instance on AWS, use the awscli2 utility.
3.3.1. Installing AWSCLI2 Copy linkLink copied to clipboard!
You can use the Amazon Web Services (AWS) command line interface awscli2 utility to configure and manage Red Hat Enterprise Linux (RHEL) images and Red Hat high availability (HA) cluster on AWS.
Prerequisites
- You have created a Red Hat account.
- You have signed up and set up an AWS account.
- You have access to an AWS Access Key ID and an AWS Secret Access Key. For details, see manage access keys.
Procedure
Install
awscli2:# dnf install awscli2
Verification
Verify the installation:
$ aws --version aws-cli/1.19.77 Python/3.6.15 Linux/5.14.16-201.fc34.x86_64 botocore/1.20.77Configure
awscli2for AWS credentials and settings:$ aws configure AWS Access Key ID [None]: AWS Secret Access Key [None]: Default region name [None]: Default output format [None]:
3.3.2. Converting and pushing an image to Amazon S3 Copy linkLink copied to clipboard!
You can convert a Red Hat Enterprise Linux (RHEL) image in the qcow2 image format to OVA, VHD, VHDX, VMDK, or raw by using the qemu-img utility, and then upload it to Amazon S3 storage.
Prerequisites
- You have created a Red Hat account.
- You have signed up and set up an AWS account.
- You have created an Amazon S3 bucket by using awscli2 to upload the RHEL image.
Procedure
Run
qemu-imgto convert.qcow2image to.rawimage format:# qemu-img convert -f qcow2 -O raw rhel-10.0-sample.qcow2 rhel-10.0-sample.rawUpload the image to the Amazon S3 bucket:
$ aws s3 cp rhel-10.0-sample.raw s3://<example-s3-bucket-name>
Verification
- Check the AWS S3 Console to confirm successful upload.
3.3.3. Managing a RHEL VM on AWS by using the command line Copy linkLink copied to clipboard!
You can use the Amazon Web Services (AWS) command line interface awscli2 utility to manage a Red Hat Enterprise Linux (RHEL) Elastic Cloud Compute (EC2) VM on AWS through the command line. You can import a RHEL EC2 image snapshot, create an AMI, launch, and connect to a RHEL EC2 instance.
Prerequisites
- You have created a Red Hat account.
- You have signed up and set up an AWS account.
Procedure
-
Use the
vmimportrole: An alternate to import the RHEL image to the Amazon S3 bucket is by using thevimportrole. See Required permissions for VM Import/Export. - Import RHEL image as a snapshot: You can import RHEL VM image from Amazon S3 as a snapshot to Amazon EC2. For details, see Start an import snapshot task and Monitor an import snapshot task.
- Create and launch a RHEL EC2 instance: You can create a RHEL Amazon Machine Image (AMI) from existing snapshot and launch a RHEL EC2 instance. For details, see create an AMI from snapshot by using awscli2 and launching, listing, and deleting RHEL instance by using awscli2.
-
Configure the private key and connect to the RHEL EC2 instance: You can configure your
<example_key>.pemfile and connect to an RHEL EC2 instance. For details, see Create a key pair using Amazon EC2 and Connect using the AWS CLI.
3.3.4. Attaching Red Hat subscriptions Copy linkLink copied to clipboard!
To register and attach your Red Hat subscription to a RHEL instance, you can use the subscription-manager command.
Prerequisites
- You have an active Red Hat account.
Procedure
Register your system:
# subscription-manager registerAttach your subscriptions:
- You can use an activation key to attach subscriptions. See Creating Red Hat Customer Portal Activation Keys for more information.
- Otherwise, you can manually attach a subscription by using the ID of the subscription pool (Pool ID). See Attaching a host-based subscription to hypervisors.
Optional: To collect various system metrics about the instance in the Red Hat Hybrid Cloud Console, you can register the instance with Red Hat Lightspeed.
# insights-client register --display-name <display_name_value>For information about further configuration of Red Hat Lightspeed, see Client Configuration Guide for Red Hat Lightspeed.
3.3.5. Setting up automatic registration on AWS gold images Copy linkLink copied to clipboard!
You can deploy Red Hat Enterprise Linux (RHEL) virtual machines (VMs) more efficiently on Amazon Web Services (AWS) by using gold images of RHEL. This ensures that the VMs are automatically registered to the Red Hat Subscription Manager (RHSM).
Prerequisites
- You have created a Red Hat account.
- You have signed up and set up an AWS account.
You have downloaded the latest RHEL gold image for AWS. For instructions, see Using gold images on AWS.
NoteYou can only attach an AWS account to a single Red Hat account at a time. Therefore, ensure no other users require access to the AWS account before attaching it to your Red Hat one.
Procedure
Upload the gold image to AWS. For instructions, see one of the following:
- Create VMs by using the uploaded image. If your RHSM settings are correct, they will be automatically subscribed to RHSM.
Verification
In a RHEL VM created using the above instructions, verify the system is registered to RHSM by executing the
subscription-manager identitycommand. On a successfully registered system, this displays the UUID of the system. For example:# subscription-manager identity system identity: fdc46662-c536-43fb-a18a-bbcb283102b7 name: 192.168.122.222 org name: 6340056 org ID: 6340056
3.4. Uploading a RHEL image to AWS by using the AWS console Copy linkLink copied to clipboard!
To run a RHEL instance on Amazon Web Services (AWS), you must first upload the RHEL image to AWS. To configure and manage the RHEL EC2 instance on AWS, use the awscli2 utility.
3.4.1. Converting and pushing an image to S3 by using the AWS console Copy linkLink copied to clipboard!
You can convert a RHEL image in the qcow2 image format to OVA, VHD, VHDX, VMDK, or raw by using the qemu-img utility, and then upload it to Amazon S3 storage by using the AWS console.
Prerequisites
- You have created a Red Hat account.
- You have signed up and set up an AWS account.
- You have created an Amazon S3 bucket by using the Amazon S3 console to upload the RHEL image.
Procedure
Run
qemu-imgto convert.qcow2image to.rawimage format:# qemu-img convert -f qcow2 -O raw rhel-10.0-sample.qcow2 rhel-10.0-sample.raw- Upload the image to the S3 bucket by using Amazon S3 console
Verification
- Check the AWS S3 Console to confirm successful upload.
3.4.2. Managing a RHEL VM on AWS by using the AWS console Copy linkLink copied to clipboard!
You can manage a Red Hat Enterprise Linux (RHEL) Elastic Cloud Compute (EC2) VM on Amazon Web Services (AWS) by using the AWS console. You can create RHEL EC2 image snapshots, manage Amazon Machine Image (AMI), launch, and connect to a RHEL EC2 instance.
Prerequisites
- You have created a Red Hat account.
- You have signed up and set up an AWS account.
- You have pushed your RHEL image to the Amazon S3 bucket by using the AWS console. For details, see Converting and pushing an image to S3 by using the AWS console.
Procedure
-
Use the
vmimportrole: An alternate way to import the RHEL image to the Amazon S3 bucket is by using thevmimportrole. See Import your VM as an image. - Import a RHEL image as a snapshot: You can import a RHEL VM image from Amazon S3 as a snapshot to Amazon EC2. For details, see Importing a disk as a snapshot using VM Import/Export and Monitor an import snapshot task.
- Create and launch a RHEL EC2 instance: You can create a RHEL Amazon Machine Image (AMI) from an existing snapshot and launch a RHEL EC2 instance. For details, see Create an AMI from a snapshot and Launch an instance using defined parameters.
-
Configure the private key and connect to the RHEL EC2 instance: You can configure your
<example_key>.pemfile and connect to an RHEL EC2 instance. For details, see Create a key pair using Amazon EC2 and Connect using the Amazon EC2 console. - For Red Hat subscriptions, see Attaching Red Hat subscriptions