본 Terraform 프로젝트에서는 2025년도 전국기능경기대회 3과제 인프라 구축을 일부 자동화합니다.
자동화하는 항목은 다음과 같습니다.
대회 당일 인스턴스 타입이 t3.medium에서 c5.large로 변경되었습니다.
-
- VPC
-
- (X) Bastion (t3.medium)
-
- RDS
-
- DynamoDB
-
- ECS Container
-
- ECR Repository
-
- S3 bucket for logging
-
- CloudWatch
- 반드시 app-files 내의 App을 심사 본부에서 제공된 바이너리 파일로 대체해야 함.
- module/rds의 MySQL Table을 반영하고, 제공받은 dump 파일을 모두 rds에 반영합니다.
- 제공받은 dump 파일에 있는 내용 중 하나만 뽑아 App GET 테스트를 진행합니다.
mysql -h <rds_url> -P 3306 -u admin -p < modules/rds/init.sqlmysql -h <rds_url> -P 3306 -u admin -p userdb < load_user.dump# ECS 인스턴스 목록 확인
aws ec2 describe-instances --filters "Name=tag:Name,Values=*ecs-instance*" --query 'Reservations[*].Instances[*].[InstanceId,Tags[?Key==`Name`].Value|[0],State.Name]' --output table
# SSM Session 시작 (인스턴스 ID로 접근)
aws ssm start-session --target i-1234567890abcdef0
# 또는 태그를 통한 접근
aws ssm start-session --target $(aws ec2 describe-instances --filters "Name=tag:Name,Values=*ecs-instance*" "Name=instance-state-name,Values=running" --query 'Reservations[0].Instances[0].InstanceId' --output text)- AWS Console → EC2 → 인스턴스
- ECS 인스턴스 선택
- "연결" 버튼 클릭
- "Session Manager" 탭 선택
- "연결" 클릭
# ECS 클러스터 확인
aws ecs list-clusters
# ECS 서비스 확인
aws ecs list-services --cluster apdev-ecs-cluster
# 컨테이너 로그 확인
aws logs describe-log-groups --log-group-name-prefix "/ecs/"# SSM Session 내에서 MySQL 클라이언트 설치
sudo yum install mariadb105 -y
# RDS에 접근
mysql -h <rds_endpoint> -P 3306 -u admin -p