updated infra README about pinning AMI

This commit is contained in:
Joe Lothan 2026-05-19 10:23:29 -04:00
parent 2f4e5b585d
commit 2745e75408

View file

@ -46,6 +46,25 @@ psql $DATABASE_URL -c 'SELECT 1;'
psql $DATABASE_URL -f ~/everytab/pipeline/01_cc_index/schema.sql
```
## Pinning the EC2 AMI
The `data.aws_ami` lookup fetches the latest Amazon Linux 2023 AMI. If Amazon publishes a new one between applies, Terraform will want to replace your EC2 instance.
To prevent this, pin the AMI after initial creation:
```bash
# Get the current instance's AMI
aws ec2 describe-instances --filters "Name=tag:Name,Values=everytab" \
--query "Reservations[0].Instances[0].ImageId" --output text
# Add to terraform.tfvars
echo 'ec2_ami = "ami-XXXXXXXXXXXX"' >> terraform.tfvars
```
Now `terraform apply` won't replace the instance for non-EC2 changes (like adding CloudFront logging).
Remove the `ec2_ami` line from tfvars when you want a fresh instance with the latest AMI (e.g., after teardown).
## Teardown (after backup)
Switch to serving-only mode (destroys EC2, RDS, icons bucket):