terraform

hcl
# AWS Lambda Function with API Gateway trigger

# === Lambda function ===
resource "aws_lambda_function" "api_handler" {
  function_name = "${var.project}-api-handler"
  description   = "API request handler for ${var.project}"

AWS Lambda serverless functions with Terraform

aws lambda serverless
by Ryan Nakamura 1 tab
hcl
# RDS PostgreSQL instance
resource "aws_db_instance" "main" {
  identifier = "${var.project_name}-db"

  engine         = "postgres"
  engine_version = "16.1"

Terraform AWS RDS and ElastiCache provisioning

terraform aws rds
by Ryan Nakamura 1 tab
hcl
# Using the module

module "api_service" {
  source = "./modules/ecs_service"

  service_name       = "api"

Terraform modules for reusable infrastructure

terraform modules iac
by Ryan Nakamura 2 tabs
hcl
# AWS VPC with public/private subnets across 3 AZs

data "aws_availability_zones" "available" {
  state = "available"
}

AWS VPC and networking with Terraform

aws vpc terraform
by Ryan Nakamura 1 tab
hcl
# Configure Terraform
terraform {
  required_version = ">= 1.6.0"

  required_providers {
    aws = {

Terraform basics: providers, resources, and state

terraform iac devops
by Ryan Nakamura 3 tabs
hcl
# S3 bucket for static assets
resource "aws_s3_bucket" "assets" {
  bucket = "${var.project_name}-assets-${var.environment}"
}

resource "aws_s3_bucket_versioning" "assets" {

AWS S3 and CloudFront for static asset hosting

aws s3 cloudfront
by Ryan Nakamura 2 tabs
hcl
# Backend configuration with S3 + DynamoDB locking
terraform {
  backend "s3" {
    bucket         = "company-terraform-state"
    key            = "services/web-app/terraform.tfstate"
    region         = "us-east-1"

Terraform state management and workspace strategies

terraform state-management iac
by Ryan Nakamura 2 tabs