Getting started with the AWS Asia Pacific (Hyderabad) region in India
Disclaimer: This is my personal blog, documenting my journey. Please refer to AWS official documentation/blogs for the official/authoritative information. Also, you will incur charges, when you launch services on AWS beyond the free tier. Please leverage AWS Support and your AWS account team, which in my humble opinion are the best in the industry !!
I very clearly remember when the first AWS region in India, AWS Asia Pacific (Mumbai) Region was opened to the general public in June 2016, I was not an AWS employee at that time, but was an AWS customer and I was super thrilled about the launch. Post the launch, I attended the AWS summit in Bangalore where Andy Jassy was the chief guest and I sat awestruck in the audience listening to him !!
A lot of things have happened since then [including me joining AWS later that year in 2016;-)], and AWS has become an integral part of the IT ecosystem in India — across all types of customers — large, medium, small as well as with developers ..
Coming back to the present day, the second AWS region in India, at Hyderabad was announced in 2020. On 21st November 2022, the general availability of the 30th AWS Region, Asia Pacific (Hyderabad) Region, with three Availability Zones and the ap-south-2
API name was announced. More details are available in this awesome blog — https://aws.amazon.com/blogs/aws/now-open-the-30th-aws-region-asia-pacific-hyderabad-region-in-india/
My aim of this short blog is to share my personal thoughts on the new AWS HYD region launch and like you, to explore and deploy a few things in the new region and explore some possibilities ..
First things first .. lets talk basics
There is a awesome, awesome new whitepaper on AWS Fault Isolation boundaries, which is a must read for everyone .. HIGHLY RECOMMENDED
This whitepaper covers some very important concepts of how AWS regions, Availability Zones, Local Zones are architected, which is very different when compared to other cloud providers. This paper also covers important concepts in AWS like control planes, data planes and details how AWS uses these boundaries to create Zonal, Regional, and Global services.
Both, the AWS Mumbai and Hyderabad regions currently have three Availability Zones. The AWS Hyderabad is an AWS region like other AWS regions and should be used as such. With this in mind, lets go over a few things that I played around, to satisfy my curiosity:
List of services:
You can refer to https://aws.amazon.com/about-aws/global-infrastructure/regional-product-services/ to get a list of AWS services available in any AWS region. Of course, the service availability will change over time as more services get added.
Pricing:
Use the AWS pricing calculator to get pricing estimates for various AWS services across regions, including in the HYD region.
All right, enough talk, let me launch some AWS services in the AWS HYD region. What better service to launch, than my favorite container service on AWS, Amazon Elastic Container Service (ECS) with the AWS Fargate serverless compute option ;-)
# lets get a list of avaialbility zones on ap-south-2 (HYD Region)
% aws ec2 describe-availability-zones --region ap-south-2
# lets get all EC2 Instance types across the three AZ's in ap-south-2
aws ec2 describe-instance-type-offerings --location-type availability-zone --filters Name=location,Values=ap-south-2a,ap-south-2b,ap-south-2c --region ap-south-2 --output table
The following are the steps that I used to launch my first ECS cluster with Fargate nodes in HYD region.
- Used the Cloudformation template at https://docs.aws.amazon.com/codebuild/latest/userguide/cloudformation-vpc-template.html to create an new VPC with public and private subnets, and with NAT and Internet gateways.
- Once the VPC is created, I provisioned an Application Load Balancer (ALB), and used the instructions at https://aws.amazon.com/premiumsupport/knowledge-center/create-alb-auto-register/ to also create a target group.
- I leveraged the detailed instructions at https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ECS_AWSCLI_Fargate.html to launch an ECS cluster, and created an ECS service with Fargate Linux tasks. The only changes, I did was to change the message displayed in Step 2 of the instructions, registering a Task definition, to make it more “HYD” friendly (see below) ;-) and I also added the ALB to the ECS service rather than accessing the ECS Tasks by their IP addresses.
That’s it, I was able to provision the Fargate tasks in a few minutes and I was able to access the HTML page via the ALB.
Similarly, you can launch various workloads, leveraging AWS services in the new HYD region.
Next set of things .. multi region stuff
AWS Regions consists of isolated, and physically separate Availability Zones(AZs) within a geographic area and in most cases, using a multi-AZ architecture should satisfy the High Availability requirements for your applications. But, there can be some cases where you may need to think of a Multi-Region architecture. There is an awesome two part AWS blog which goes into this topic in much more detail — https://aws.amazon.com/blogs/architecture/creating-a-multi-region-application-with-aws-services-part-1-compute-and-security/ and https://aws.amazon.com/blogs/architecture/creating-a-multi-region-application-with-aws-services-part-2-data-and-replication/
I agree with the key considerations for Multi-Region as per this blog , which I am reproducing here:
AWS Regions are built with multiple isolated and physically separate Availability Zones (AZs). This approach allows you to create highly available Well-Architected workloads that span AZs to achieve greater fault tolerance. This satisfies the availability goals for most applications, but there are some general reasons that you may be thinking about expanding beyond a single Region:
Expansion to a global audience as an application grows and its user base becomes more geographically dispersed, there can be a need to reduce latencies for different parts of the world.
Reducing Recovery Point Objectives (RPO) and Recovery Time Objectives (RTO) as part of a multi-Region disaster recovery (DR) plan.
Local laws and regulations may have strict data residency and privacy requirements that must be followed.
With the above considerations in mind, the first thing, if you need to setup a Multi-Region architecture, is to leverage AWS services which support multi-region. A snapshot of the various AWS services, is given in the AWS workshop — https://disaster-recovery.workshop.aws/en/services.html Please note, that this may not be a complete list, check the official AWS documentation and also leverage your AWS account team to do a complete architecture walk-through and discuss the pros and cons of various approaches. Beside, the key non-functional requirements (like high availability, resilience, reliability, security & compliance), cost implications of a multi-region architecture is also an important factor.
All right, now that we have two AWS Regions in India, I am tempted to test multi-region for a simple use-case leveraging the Mumbai and Hyderabad regions. Since, I ran an container based workload in the AWS HYD region on an Amazon ECS cluster, I would like to replicate an container image stored in the Amazon Elastic Container Registry (ECR) at HYD region to an ECR private repository in AWS Mumbai (BOM) region. This is very easy to setup and well documented. Please note that pre-existing registry content prior to the start of replication, will NOT be replicated.
I setup an ECR repository in HYD region, and pushed a simple ECR image. I then setup ECR replication with BOM region and lo and behold, this image showed up in the ECR repository in AWS BOM region.
That’s it folks. Hope you are as excited and delirious with joy as me, with AWS opening the second AWS region in India and open to the public. With India on track to becoming the world’s third largest economy by 2027, as per Morgan Stanley, I am sure that we will leverage the second AWS region in India along with the other AWS Regions across the world !!
People who know me, know that I am partial to Biryani’s, the chicken and/or mutton kind, not the veg ;-) As a true Bangalorean, my favorites are Donne Biryani or Andhra Biryani or Chettinad style biryani and I never ever eat any other kind of Biryani, unless the situation is dire. But, as a “one time exception only”, on this momentous occasion of the HYD region launch, I will be trying a “Hyderabadi Dum Biryani” in Bangalore in the next few days to savor the new AWS region launch !!
Keep building .. Jai Hind