TPB 프로젝트는 개인 프로젝트로 진행했으며,
반복적으로 구축하던 인프라를 IaC(Terraform)로 표준화하고,
CloudFront를 통해 ACM 인증서를 발급받아 HTTPS·도메인 연동까지 자동화함으로써 배포 환경의 일관성·재현성을 확보한 프로젝트입니다.
동작 검증은 WordPress 설치 페이지에 정상적으로 접근하는 것을 목표로 했으며,
이를 위해 인프라 구성 후 HTTP→HTTPS 리디렉션, CloudFront 캐싱 동작, 데이터베이스 연결 상태 등을 순차적으로 점검해 안정성을 확인했습니다.
root/www → CloudFront, origin → ALB (A-ALIAS)

Terraform 모듈화를 통해 AWS 리소스들을 독립적으로 관리하고 재사용 가능하게 구성했습니다. EC2 인스턴스는 UserData로 Nginx, PHP-FPM, WordPress를 자동 설치하며 프록시 환경에서도 정상 동작하도록 설정했습니다. RDS는 애플리케이션 전용 네트워크에서만 접근 가능하도록 설계해, 불필요한 노출을 방지했습니다.


증상
HTTP로 접속한 사용자를 HTTPS로 전환하도록 설정했지만, HTTPS 상태에서도 다시 HTTP로 되돌아가도록 잘못 구성해, HTTP와 HTTPS 간에 요청이 계속 왕복하며 무한히 리다이렉션이 발생했습니다.
오류 : ERR_TOO_MANY_REDIRECTS
원인
앱(WordPress/Nginx)이 프록시 뒤 HTTPS 요청을 HTTP로 오인(X-Forwarded-Proto 미반영) + 인프라 레벨 중복 리다이렉션.
해결
:80 → 301 Redirect(:443), :443 → TargetGroup Forward (추가 Redirect 금지) viewer_protocol_policy = redirect-to-https origin_protocol_policy = https-only fastcgi_param X-Forwarded-Proto $http_x_forwarded_proto;// wp-config.php
if (($_SERVER['HTTP_X_FORWARDED_PROTO'] ?? '') === 'https') $_SERVER['HTTPS'] = 'on';
define('FORCE_SSL_ADMIN', true);증상
콘텐츠 수정 후에도 오래된 페이지/정적 파일이 계속 노출. X-Cache: Hit, Age 값 큼.
원인
TTL 과다 또는 Invalidation 미실행.
해결
min_ttl=0, default_ttl=300, max_ttl=86400) aws cloudfront create-invalidation --distribution-id <ID> --paths "/*"검증
curl -I https://<도메인> | grep -E "X-Cache|Age" # Age 감소/리셋, 최신 반영
WordPress 인프라를 Terraform 기반으로 표준화하고, HTTPS로 보안을 강화하고 Route 53을 활용해 안정적인 도메인 환경을 구성하여 배포 일관성과 운영 안정성, 확장성을 확보했습니다. 첫 프로젝트이다 보니 Terraform 모듈 구성과 변수화에서 시행착오가 있었지만, 이를 통해 인프라 자동화의 흐름과 AWS 서비스 연동 방식에 대해 많은 것을 배웠습니다.
향후에는 WAF(Web Application Firewall) 적용과 변수화·모듈 재사용 범위 확장을 통해 다양한 서비스 환경에 신속히 적용 가능한 범용 인프라 템플릿으로 발전시킬 계획입니다.