AWS Tech Summit EMEA

AWS Tech Summit EMEA

In this presentation, I explain what modern infrastructure lifecycle management looks like and how Terraform and HCP Terraform are critical to serving AWS customer's needs.

This version of the talk was given in September 2024 at the EMEA edition of the AWS-internal Tech Summit.

Avatar for Kerim Satirli

Kerim Satirli PRO

September 23, 2024

More Decks by Kerim Satirli

Other Decks in Technology

Transcript

  1. Security Lifecycle Infrastructure Lifecycle Tools for identity-based security, and identity-based

    user access, and service-based networking. Tools to build and manage images, provision infrastructure as code, provide internal developer platforms, and run any kind of workload. Portfolio
  2. Infrastructure WORKFLOW AUTOMATION SYSTEM OF RECORD LIFECYCLE MANAGEMENT Infrastructure as

    code to build, deploy and manage the lifecycle of infrastructure and applications.
  3. Build Author infrastructure and images as code Create and share

    reusable code Collaborate safely via version control
  4. Security Infrastructure Compose Collaborate Publish and discover Enforce policy Enable

    self-service Observe and respond Manage all secrets Enforce policy Ensure continuity Automate and observe Remediate Encrypt seamlessly Stage 1: Adopting Stage 2: Standardizing Stage 3: Scaling Blueprint for customer success
  5. provider "aws" { region = "eu-central-1" profile = "AWSTechSummitEMEA" default_tags

    { Environment = "workshops" } } Provider Terraform uses plugins called "Providers" to interact with APIs. Providers add support for AWS services and related SaaS tools. module "eks_blueprints_addon" { source = "aws-ia/eks-blueprints-addon" version = "1.1.1" chart = "vault" chart_version = "1.16.0" description = "Vault for EKS" } Module Encapsulates Terraform files and docs in a ready-to-use format. Can be used to create best-practice building blocks for your customers. Terraform Concepts Terraform CLI that provides access to all Terraform operations. Works locally, and remote via HCP Terraform (SaaS offering) >_ terraform version Terraform v1.10.0 on darwin_amd64
  6. data "aws_ami" "main" { most_recent = true filter { name

    = "owner-alias" values = ["amazon"] } } Data Sources Used by Terraform to consume infrastructure that is not managed by Terraform. Only read operations are supported. { "version": 3, "serial": 2, "terraform_version": "1.10.0", "backend": { "type": "cloud" } } State Maps real world resources and their metadata to your Terraform configuration. Can be stored in HCP Terraform to enable team-wide collaboration. Terraform Concepts Resources Used by Terraform to manage the full lifecycle of an infrastructure item. Create, read, update, and delete operations are supported. resource "aws_instance" "main" { ami = data.aws_ami.main.id instance_type = "t3.micro" tags = { Event = "AWSTechSummitEMEA" } }
  7. Terraform Ecosystem Registry Primary interface for all published providers, modules,

    run tasks and more. Houses extensive documentation on resources and data sources. Developer Zone Extensive documentation for all HashiCorp products, including SaaS and Enterprise editions. Includes best-practices guides and solutions-oriented tutorials. Certifications Easily communicate product- specific knowledge and proficiency with verifiable results and badges. Exams test conceptual and real- world experience of products.
  8. Multi-Region Deployment aws_regions = toset([ "af-south-1", "ap-east-1", "ap-northeast-1", "ap-northeast-2", "ap-northeast-3",

    "ap-south-1", "ap-southeast-1", "ap-southeast-2", "ap-southeast-3", "ca-central-1", "eu-central-1", "eu-north-1", "eu-south-1", "eu-south-2", "eu-west-1", "eu-west-2", "eu-west-3", "me-south-1", "sa-east-1", "us-east-1", AWS Regions
  9. Multi-Regional Workspaces module "regional_aws_workspaces" { for_each = toset(data.aws_regions.main.names) source =

    "ksatirli/regional-workspace/tfe" version = "1.2.0" region = { category = "terraform" identifier = each.key prefix = "aws" variable = "aws_region" } vcs_repo = { identifier = "workloads/regional-aws-deployment" branch = "main" } }
  10. Multi-Region Deployment # look up Service Code for EC2 instances

    data "aws_servicequotas_service" "ec2" { provider = "aws.us-east-1" service_name = "Amazon Elastic Compute Cloud (Amazon EC2)" } # update Service Quota for M5 EC2 instances resource "aws_servicequotas_service_quota" "ec2" { provider = "aws.us-east-1" # allow up to 100 M5 instances quota_code = "L-8B7BF662" service_code = data.aws_servicequotas_service.ec2.service_code value = 100 }
  11. Multi-Cloud Deployments provider "aws" { region = " default_tags {

    Environment = "workshops" } } eu-central-1"
  12. Multi-Cloud Deployments provider "aws" { region = " default_tags {

    Environment = "workshops" } } cn-north-1"
  13. Multi-Cloud Deployments provider "aws" { region = " default_tags {

    Environment = "workshops" } } us-gov-east-1"