qvest-task/terraform/storage.tf
aviyadeveloper b8eb8e991c
All checks were successful
Update Automation Tests / Integration Tests (pull_request) Successful in 37s
feat: implement disaster recovery with automated restore
- Create restore.sh for automated S3 backup recovery
  - Fetches backups, stops services, restores database/data/config, restarts & validates
- Successfully tested on production system
- Document procedures in backup-strategy.md
- Add Test 6: Full backup/restore cycle with disaster simulation
- Rename test-update.sh → test-integration.sh
2026-06-11 19:27:49 +02:00

53 lines
950 B
HCL

# S3 Bucket for Backups
resource "aws_s3_bucket" "backups" {
bucket = "${var.project_name}-backups"
force_destroy = true
tags = {
Name = "${var.project_name}-backups"
}
}
resource "aws_s3_bucket_versioning" "backups" {
bucket = aws_s3_bucket.backups.id
versioning_configuration {
status = "Enabled"
}
}
resource "aws_s3_bucket_server_side_encryption_configuration" "backups" {
bucket = aws_s3_bucket.backups.id
rule {
apply_server_side_encryption_by_default {
sse_algorithm = "AES256"
}
}
}
resource "aws_s3_bucket_lifecycle_configuration" "backups" {
bucket = aws_s3_bucket.backups.id
rule {
id = "backup-retention"
status = "Enabled"
filter {
prefix = "backups/"
}
transition {
days = 30
storage_class = "GLACIER"
}
expiration {
days = 90
}
noncurrent_version_expiration {
noncurrent_days = 30
}
}
}