BLOGCloud Landing Zones

Building a Well-Architected Landing Zone on AWS

The LZA’s flexibility makes it ideal for organisations with complex networking, regulatory, and operational needs.

Category
Cloud Landing Zones
Time to read
8 minutes
Published
August 23, 2024
Author
Lewis Marsden-Lambert

In this post, we'll take a quick look at the AWS Landing Zone Accelerator, explore how it works, and offer some opinions on the pros and cons.

If you're not familiar with Cloud Landing Zones, be sure to read the other posts in this series first.

Key Takeaways

Provides an infrastructure foundation built on AWS best practices and global compliance frameworks.

Provides a GitOps approach for continual configuration updates and upgrades to your landing zone.

Provides you with a quick to deploy near-zero-code Landing Zone backed by AWS. Day 2 operations can be quite time consuming with delayed feedback for validation and change rollout.

What Is The AWS Landing Zone Accelerator?

Provided by AWS as an Open Source project, the Landing Zone Accelerator gives companies of all sizes the ability to deploy a cloud landing zone aligned with AWS' best practices with minimal configuration and little need for any code. With the ability to enable controls to help meet various global, regional and industry specific compliance frameworks, it’s no surprise the term 'accelerator' formed part of the name.

Behind the scenes the project makes use of the AWS CDK (Cloud Development Kit) to materialise CloudFormation templates, which are then deployed across accounts within your AWS Organisation. These CloudFormation templates make use of over 35 AWS services to provide the foundations of your landing zone.

If you're thinking to yourself "Isn't this just the AWS Control Tower?", then let's take a quick comparison to understand how these tools in our toolbox differ, but also how they can work together.

What is Control Tower?

AWS Control Tower was launched back in 2019 with an aim for organisations using multiple AWS accounts to ensure governance at scale from a single unified interface. With Control Tower we can set up a basic landing zone that utilises AWS Organisations, AWS CloudTrail, AWS Config and AWS Identity Center (SSO) along with some mandatory controls to ensure basic governance is enforced and cannot be circumvented. 

As well as allowing organisations to enrol existing accounts into Control Tower's purview, it also has the ability to vendor new accounts with functionality available to customise these new (and existing) accounts. 

Now if I’m a multinational corporation with complex inter-regional networking needs, in need of a global network architecture that includes multiple VPCs with custom routing, VPN connections, and direct connect links, ensuring seamless connectivity across all regions and accounts, Control has nothing to offer. 

If I’m a financial services firm subject to stringent regulatory requirements, and need to implement custom security controls and compliance checks that exceed the default options in Control Tower, such as enhanced encryption standards, detailed audit logs, and custom compliance reports tailored to specific regulatory frameworks like PCI-DSS or GDPR, again way outside the remit of Control Tower. 

A corporation embracing agile and its decentralised approach and looking for platform engineering to enable product teams to be self-sufficient; you own it, you run it. Again, you're falling way short of the mark, and ultimately where a Landing Zone can help facilitate.

What is the AWS Landing Zone Accelerator?

As stated earlier, the LZA is defined as a CDK project that optionally - although highly recommended - works alongside Control Tower. Where the LZA differs however is in the interface by which organisations deploy and maintain their landing zone. In addition to providing the basic governance controls, the LZA also allows companies to define many other resources within the same interface such as Accounts, VPCs, Identity Center Permission Sets, Transit Gateways, Service Control Policies and many more.

Using a GitOps style approach to provide continual configuration updates and drift detection, as well as a myriad of configurable options. This pattern of operation much more closely aligns with many cloud native tools for managing infrastructure that have exploded with the rise of Kubernetes.

The diagram below outlines the various components that make up an LZA. 

What are the benefits?

Like any ready-made solution, there are of course a number of pros and cons, and they'll vary depending on what you want to get out of it and how your company operates. This is not an exhaustive list as these are subjective.

Automated Landing Zone from Day 1

The obvious first pro, and really what the LZA is trying to achieve - is getting your day 1 landing zone delivered right out of the box. From cloning the repository to getting your base landing zone up and running, it's only going to take you a couple of hours. If you compare this with a traditional multi-account setup using Terraform, then you're saving weeks of work and all the trials and tribulations of managing multi-account providers, CI/CD etc. If you're time or resource constrained and just want to focus on what matters to you, then the LZA appeals a lot.

Highly Customisable

As we mentioned earlier, the LZA is very customisable, it's been designed with that in mind from the start. There are 7 top-level customisation files, all of which are in YAML file format and well structured. The configuration files are all kept in source control and support referencing any sensitive values in the SSM Parameter Store. As the LZA operates in a GitOps fashion, the changes you make to your configuration files are deployed continually allowing for incremental revisions, upgrades and new features.

Removes Complexity

It isn’t an exaggeration to say deploying a compliant, well-architected landing zone; taking in aspects of structure, policy,  governance, auditability, networking, authentication and authorisation to name a few comes with a considerable high-bar of complexity, coupled with the admission that few people have the experience of building an entire ecosystem from scratch. Understanding of the inner workings and the plumbing underneath is a huge task alone. 

Backed by the Cloud Vendor

The Landing Zone solution is backed and maintained by AWS, and for those who can afford business level support, you also have the ability to raise issues directly with the team behind the solution. But more than that, offloading the burden of maintaining, upgrading, reconfiguring, keeping abreast of the new capabilities in a never ending “AWS Services” tab, comes with significant benefits.

What are the challenges and pain points?

Having deployed, managed and customised a number of Landing Zone Accelerator engagements, here’s our top pains.

Velocity

Cloudformation isn’t renowned for its speedy execution, and the first hurdle faced by engineering when using the Accelerator is speed. Those used to the de facto Terraform plan and apply workflow, and the quick turnabout will be shocked at the time it takes to move changes through the environment. You can pretty much expect every change, regardless of size, complexity or indeed criticality to take at least 1 hour plus to roll out. When accompanied with the second pain point detailed below has a compounding effect.  

It’s a Mono-Repo

Localising all the configuration into a single location naturally has some benefits (centralised config management), but it also comes with serious drawbacks. Having a single repository for all configurations makes it difficult for teams to take custody of individual responsibility areas, such as account provisioning, security, organisational management etc. There is no clear accountability, or team alignment to how organisations operate.

While some of this could be mitigated by properly managing code owners in your repository, permissions etc, in the end, the entire Landing Zone solution is deployed as one. Traffic jams are common between teams, access controls between areas of concern difficult to enforce, and fundamentally potential blast radius, and the risk associated with change is considerably high.

Community Support

For those who are keen in working in the open-source world, it should be noted that whilst the LZA code is published on GitHub, AWS do not provide timely or detailed responses to pull requests or issues raised through GitHub. This can be a source of frustration for those looking for rapid support with their landing zone, if they do not have a support plan as part of their AWS account.

Choice of Tooling

From most of the conversations we have had with users of the LZA, the majority of infrastructure engineers are not overly familiar with the CDK and to some extent CloudFormation. It's probably fair to say that most engineers are more familiar with cloud agnostic tools such as Terraform or Pulumi, particularly if they work in either hybrid cloud or multi-cloud environments. This does make dissecting or augmenting the LZA codebase somewhat less approachable than a pure Terraform solution.

Where does Appvia’s Landing Zone fit in?

Here at Appvia we have extensive experience with both using and building cloud landing zones. The employee base is a diverse lot, spanning platform engineering, technical consultants and app development, we have been both consumers and builders. Accompanied with experience of using various solutions; open source and commercial, it’s fair to say we’ve had oversight from many angles. 

Similar to all our engagements, before jumping into specifics though it’s always good to level-set and talk about our working and design principles:

  • We deliver your solution: engage with all stakeholders early to ensure they are making relevant decisions at the right time with guidance from us. 
  • Security by design: ensure governance and compliance with preventative and detective guardrails at every point in the SDLC. Don’t compromise security for delivery without complete transparency.
  • Empowered teams by enabling self-service: teams shouldn’t require permission to build, deploy and make changes. Governance is through visibility, monitoring and alerting, allowing operation through well understood boundaries.

When discussing landing zones we often choose to speak about them in two forms:

  • Cloud Landing Zones: defining the policy structure, guardrails and governance. But also extends into the architecture of networking, security and operational efficiency. These are the top down decisions accompanied with the organisational controls to enforce them.   
  • Application Landing Zones: enabling teams to be self-sufficient, by providing them with a “way of working” inline with the decisions that have been made above. 

The latter point is most important. If the sole outcome of the landing zone becomes a collection of technical controls, knobs and dials, organisational levers to restrict people from doing things, chances are all you’ve achieved is a lot of friction downstream. A premeditated deluge of support tickets asking how to do this, why this is not working, what's the point of x etc. Pairing organisation policy with a way of working and common reusable patterns, allowing the teams to get on with it, in a decentralised approach.  

While we definitely see the value for an organisation in adopting the AWS Landing Zone Accelerator for elements, our implementation takes a blended approach, capturing the best of both worlds. 

Where the capabilities benefit from AWS Landing Zone Accelerator we retained within the framework, and the rest we captured in Terraform. The choice of separation is usually guided via the following principles:

  • Structure: should align to team responsibilities, not functionality or features. There should be a clear line of accountability and ownership.
  • Risk of change: where there exists a higher risk of change we can de-prioritise the first rule and separate the pipeline, to keep the changeset small.

A typical landing zone is below:

By modularising different components we can create distinct repositories that manage just a particular responsibility area that matches an organisation's structure and ways of working. For example, an organisation may have a dedicated security team and we can have a repository that's owned and managed by that team which covers security elements of the landing zone, such as Service Control Policies, User Identities and Permission Sets etc.

By taking advantage of this modular design, we are able to cater a landing zone for organisations of all shapes and sizes, whilst still having the heavy lifting and continual updates of the LZA from AWS.

In the next article we will deep dive into the individual components which makeup the landing zone and how they are stitched together.

Related Posts

Related Resources