AWS 인프라를 정의할 때 보통 떠오르는 것은 Terraform, CloudFormation, YAML, 그리고 끝없는 설정 파일이다.
React2AWS는 이 전제를 정면으로 뒤집는다.
“UI를 JSX로 정의하듯, 인프라도 JSX로 정의할 수 없을까?”
React2AWS는 이 질문에 대해 꽤 설득력 있는 답을 내놓는다.
React2AWS는 JSX 문법으로 AWS 인프라를 작성하고, 이를 프로덕션 수준의 Terraform 코드로 변환하는 도구다.
<Infrastructure>
<VPC className="cidr-10.0.0.0/16 region-us-east-1 single-nat" name="production">
<ALB className="public" name="api-lb" />
<Fargate className="mem-1gb cpu-0.5 port-8080 count-2" name="api" />
<RDS className="engine-postgres instance-lg storage-100gb multi-az" name="db" />
</VPC>
</Infrastructure>
이 코드 한 덩어리가 전체 백엔드 인프라 정의다.
프론트엔드 개발자에게 JSX는 더 이상 새로운 문법이 아니다.
React2AWS는 이 익숙한 사고방식을 인프라 영역으로 그대로 확장한다.
Terraform이나 YAML에서는 리소스 간 관계가 파일 여기저기에 흩어진다.
React2AWS에서는 구조 자체가 관계다.
<VPC>
<Fargate />
<RDS />
</VPC>
이건 단순한 문법 차이가 아니라 가독성의 차원이다.
React2AWS의 설정 방식은 Tailwind CSS에서 영감을 받았다.
<RDS className="engine-postgres instance-lg storage-100gb multi-az" />
engine-postgres → PostgreSQLinstance-lg → 큰 인스턴스storage-100gb → 스토리지 크기multi-az → 고가용성👉 짧고 조합 가능한 토큰으로 설정을 표현한다.
React2AWS는 “컨셉 프로젝트”에서 끝나지 않는다.
React2AWS는 다음을 생성한다.
terraform/
├── main.tf
├── variables.tf
├── outputs.tf
├── backend.tf
├── terraform.tfvars
└── modules/
├── vpc/
├── rds/
├── fargate/
├── lambda/
├── s3/
└── dynamodb/
즉,
terraform apply 가능“보여주기용”이 아니라 “실제 배포용”이다.
현재 지원되는 AWS 리소스는 실무 기준으로 충분히 넓다.
그리고 이를 조합한 8개의 스타터 템플릿이 제공된다.
이 도구는 모든 사람을 위한 것은 아니다.
하지만 다음 유형에게는 매우 강력하다.
React2AWS의 진짜 가치는 코드 그 자체보다 방향성에 있다.
인프라는 더 이상
“긴 설정 파일”이 아니라
“구조적으로 사고할 수 있는 코드”가 될 수 있다.
이건 단순히 AWS를 JSX로 쓰는 도구가 아니라,
Infra-as-Code의 UX를 다시 정의하려는 시도다.
React2AWS는 말 그대로 이런 사람을 위한 도구다.
“나는 React로 복잡한 UI를 설계할 수 있는데,
왜 인프라는 아직도 고대 문서처럼 써야 하지?”
만약 인프라를
‘설정’이 아니라 ‘컴포넌트 설계’로 보고 싶다면,
React2AWS는 충분히 실험해볼 가치가 있다.