Part one of a four-part series on indexing the complete works of Shakespeare in Elasticsearch on AWS. This installment covers setting up the infrastructure using Pulumi (Infrastructure as Code in C#), including an IAM role, Kinesis stream, Elasticsearch domain, and Lambda function. The approach uses Kinesis as a buffer to batch-send documents to Elasticsearch, avoiding socket timeouts from high-volume individual requests. Code snippets show how to create each AWS resource, zip the Lambda code using Ionic.Zip, restrict Elasticsearch access by IP, and wire the Kinesis stream to the Lambda. Readers are warned that Kinesis is not on the AWS free tier and costs can accumulate.