Skip to content

What regions have AWS Inferentia and Trainium instances?

3 minute read
Content level: Foundational
1

See what regions have instances, and find out how to generate your own list with a python script.

You can look up a high level instance type type here

That link and the script below only show on-demand availability. Trainium instances in some regions are only available through Capacity Blocks.

The script below will find all the regions you have access to and display which ones have Inferentia2 or Trainium instances types enabled. Watch for announcements from AWS for availability in new regions, check the sample output below, or run the script yourself for a customized list! (some regions require opt-in. If you have not opted into those regions, you will not see them in your results).

This script requires the AWS CLI to be installed and configured.

This only shows whether the instance type is available in that region, it does NOT show that there are available instances for deployment this moment.

Example output is below.

Supported Regions as of May 13, 2025

  • ap-south-1: Asia Pacific (Mumbai)

    • inf2.48xlarge
    • trn1.32xlarge
    • inf2.8xlarge
    • inf2.xlarge
    • inf2.24xlarge
  • eu-north-1: Europe (Stockholm)

    • inf2.xlarge
    • inf2.24xlarge
    • inf2.8xlarge
    • inf2.48xlarge
  • eu-west-3: Europe (Paris)

    • inf2.24xlarge
    • inf2.8xlarge
    • inf2.xlarge
    • inf2.48xlarge
  • eu-west-2: Europe (London)

    • inf2.48xlarge
    • inf2.xlarge
    • inf2.24xlarge
    • inf2.8xlarge
  • eu-west-1: Europe (Ireland)

    • inf2.24xlarge
    • inf2.xlarge
    • inf2.48xlarge
    • inf2.8xlarge
  • ap-northeast-2: Asia Pacific (Seoul)

    • inf2.xlarge
  • ap-northeast-1: Asia Pacific (Tokyo)

    • inf2.48xlarge
    • inf2.24xlarge
    • inf2.xlarge
    • inf2.8xlarge
  • sa-east-1: South America (Sao Paulo)

    • inf2.8xlarge
    • inf2.48xlarge
    • inf2.24xlarge
    • inf2.xlarge
  • ap-southeast-1: Asia Pacific (Singapore)

    • inf2.8xlarge
    • inf2.24xlarge
    • inf2.xlarge
    • inf2.48xlarge
  • ap-southeast-2: Asia Pacific (Sydney)

    • inf2.8xlarge
    • inf2.24xlarge
    • trn1.32xlarge
    • inf2.xlarge
    • inf2.48xlarge
  • eu-central-1: Europe (Frankfurt)

    • inf2.8xlarge
    • inf2.xlarge
    • inf2.24xlarge
    • inf2.48xlarge
  • ap-southeast-4: Asia Pacific (Melbourne)

    • trn1.32xlarge
  • us-east-1: US East (N. Virginia)

    • inf2.xlarge
    • inf2.24xlarge
    • inf2.8xlarge
    • trn1.32xlarge
    • trn1.2xlarge
    • inf2.48xlarge
  • us-east-2: US East (Ohio)

    • inf2.8xlarge
    • trn1.2xlarge
    • inf2.48xlarge
    • inf2.xlarge
    • inf2.24xlarge
    • trn1.32xlarge
    • trn2.48xlarge
  • us-west-2: US West (Oregon)

    • inf2.24xlarge
    • trn1.2xlarge
    • inf2.xlarge
    • trn1.32xlarge
    • inf2.8xlarge
    • inf2.48xlarge

The script to generate the markup displayed above:

import boto3  
from datetime import datetime

ec2 = boto3.client('ec2')  

regions = [region['RegionName'] for region in ec2.describe_regions()['Regions']]  


#Edit this line to change the instance types displayed  
instance_types = ['trn1.32xlarge', 'trn1.2xlarge', 'inf2.48xlarge', 'inf2.24xlarge', 'inf2.8xlarge', 'inf2.xlarge', 'trn2.48xlarge']  
  
supported_regions = {}  
  
for region in regions:  
   ec2_region = boto3.client('ec2', region_name=region)  
   response = ec2_region.describe_instance_type_offerings(  
      #LocationType='availability-zone',  
      Filters=[  
        {'Name': 'instance-type', 'Values': instance_types},  
      ]  
   )
   if response['InstanceTypeOfferings']:  
      supported_regions[region] = [offer['InstanceType'] for offer in response['InstanceTypeOfferings']]  

print('# Supported Regions as of',datetime.now().strftime('%B %d, %Y'))
print('================')  


client = boto3.client('ssm')

for region, instance_types in supported_regions.items():
    try:
        response = client.get_parameter(Name=f'/aws/service/global-infrastructure/regions/{region}/longName')
        region_long_name = response['Parameter']['Value']
    except (client.exceptions.ParameterNotFound, KeyError):
        region_long_name = region
    print(f'* {region}: {region_long_name}')
    for instance_type in instance_types:
      print(f'  - {instance_type}')
    print("\n")

If you would like the detail down to an availability zone level:

import boto3  
from datetime import datetime
from collections import defaultdict
  
ec2 = boto3.client('ec2')  
  
regions = [region['RegionName'] for region in ec2.describe_regions()['Regions']]  
#Edit the line below to change the instance types displayed  
instance_types = ['trn1.32xlarge', 'inf2.48xlarge']  
  
supported_regions = defaultdict(list)
  
for region in regions:  
   ec2_region = boto3.client('ec2', region_name=region)  
   response = ec2_region.describe_instance_type_offerings(  
      LocationType='availability-zone',  
      Filters=[  
        {'Name': 'instance-type', 'Values': instance_types},  
      ]  
   )
   print(response)  
   if response['InstanceTypeOfferings']:
      sorted_offerings = sorted(response['InstanceTypeOfferings'], key=lambda offer: offer['Location'])  
      for offer in sorted_offerings:
         supported_regions[offer['Location']].append(offer['InstanceType'])
      #supported_regions[Location] = [offer['InstanceType'] for offer in response['InstanceTypeOfferings']]  

print('# Supported Availability Zones as of',datetime.now().strftime('%B %d, %Y'))
print('================')  
  
for Location, instance_types in supported_regions.items():  
   print(f'* {Location}: {", ".join(instance_types)}')
AWS
EXPERT
published a year ago1.9K views
1 Comment

Awesome tool to discover new regional support for Inferentia and Trainium. If you are launching Inferentia/trainium instances for the first time, you may need to request quota limit increases to deploy them. Learn more

AWS
EXPERT
replied a year ago