오늘은 HTML → AWS Lambda → RDS(MySQL) 구조로 간단한 사용자 등록 기능을 구현했다.1. 전체 구조HTML ↓Lambda Function URL ↓AWS Lambda (Python) ↓PyMySQL ↓RDS MySQL ↓users 테이블사용자가 HTML에서 이름, 이메일, 나이를 입력하면 Lambda가 값을 받아 RDS에 저장한다.2. 기존 Terraform VPC 재사용이전에 Terraform으로 만든 네트워크가 그대로 남아 있어 새로 생성하지 않고 재사용했다.cd ~/cicd/ex8-tot/infra/resourceterraform apply -target=module.network결과:No changes.Resources: 0 added, 0 changed, 0 destroye..
전체 글
코딩관련 이모저모 정보를 올리는 블로그입니다.0. 구성EC2├─ Root EBS : 20GB├─ GitLab EBS : 30GB → /opt/gitlab├─ Swap : 4GB└─ Docker └─ GitLab CE ├─ 80:80 ├─ 443:443 └─ 2222:22Security Group:22 SSH80 HTTP443 HTTPS2222 GitLab SSH1. Docker 설치sudo dnf install -y dockersudo systemctl enable --now dockersudo usermod -aG docker ec2-userSSH 재접속 후 확인:docker --versionDocker Compose 설치:DOCKER_COMPOSE_VERSION=$(curl -s https:..
1. 실습 개요앞선 실습에서는 다음 단계까지 구성했다.GitHub Push ↓GitHub Actions ↓Docker Build ↓Amazon ECR Push ↓CodeDeploy Bundle 생성 ↓Amazon S3 Upload ↓CodeDeploy 배포 요청 하지만 GitHub Actions가 성공했다고 해서 실제 EC2에서 Docker 컨테이너까지 정상적으로 실행됐다고 볼 수는 없다.이번에는 CodeDeploy가 EC2에서 어떤 방식으로 배포를 수행하는지 확인하고, 최종적으로 다음 항목까지 직접 검증했다.CodeDeploy ↓appspec.yml ↓deploy.sh ↓Amazon ECR Login ↓Docker Image Pull ↓Dock..
1. 실습 개요1편에서는 Terraform을 이용해 다음과 같은 배포 대상 인프라를 구성했다.Launch Template ↓Auto Scaling Group ↓EC2 #1 / EC2 #2 ↓AWS CodeDeploy 이번 2편에서는 여기에 GitHub Actions를 연결해 개발자가 main 브랜치에 코드를 Push하면 자동으로 배포가 시작되도록 구성했다.최종 목표는 다음 흐름이다.git push ↓GitHub Actions ↓Docker Image Build ↓Amazon ECR Push ↓CodeDeploy Bundle ZIP ↓Amazon S3 Upload ↓AWS CodeDeploy 배포 요청 즉 개발자가 직접 ECR에 로그인하거나 S3에 파일을 업..
1. 실습 개요이번 실습의 최종 목표는 GitHub에 코드를 Push하면 Docker 이미지가 자동으로 빌드되고, Auto Scaling Group의 EC2 인스턴스까지 자동 배포되는 CI/CD 환경을 구축하는 것이다.이번 1편에서는 그중 실제 애플리케이션이 배포될 AWS 인프라를 Terraform으로 구성했다.전체적으로 필요한 리소스는 다음과 같다.VPC / Subnet ↓Security Group ↓IAM Role / Instance Profile ↓Launch Template ↓Auto Scaling Group ↓EC2 Instance ↓CodeDeploy Application ↓CodeDeploy Deployment Group GitHub Actions를 구성..
앞선 실습에서는 VPC 네트워크를 구성하고, EC2 기반 AMI와 Auto Scaling Group을 만든 뒤 ALB까지 연결했다.이번에는 Private Subnet을 이용해 RDS MySQL을 구성하고, 별도로 S3 정적 웹사이트용 Bucket을 생성했다.마지막으로 실습이 끝난 뒤 Terraform으로 전체 리소스를 삭제하면서 발생한 RDS ENI 문제와 리소스 삭제 순서까지 정리했다.전체 아키텍처 및 작업 흐름 Internet │ ▼ ALB │ ..
이번 실습에서는 앞에서 만든 Auto Scaling 환경 앞단에 Application Load Balancer(ALB) 를 배치하고, HTTP Listener와 Listener Rule을 구성했다.또 /api/* 형태의 요청을 조건으로 받아 URL을 다시 작성하는 URL Rewrite 기능까지 적용했다.전체 아키텍처 및 작업 흐름Internet │ ▼Application Load Balancer │ ▼HTTP Listener :80 │ ├─ 기본 요청 │ └─ Target Group │ └─ /api/* │ ▼ Listener Rule │ ▼ URL Rewrite │ ▼ Target..
지난 실습에서는 Terraform Remote Backend와 VPC 네트워크 환경을 구성했다.이번에는 생성한 네트워크 위에 EC2 인스턴스를 배치하고 Nginx를 설치한 뒤, 해당 인스턴스를 기반으로 AMI를 생성했다.이후 기존 AMI를 Terraform Data Source로 조회하여 Launch Template → Target Group → Auto Scaling Group으로 연결하는 과정까지 진행했다.전체 아키텍처 및 작업 흐름Public Subnet │ ▼ EC2 Instance │ │ User Data ▼ Nginx │ ▼ AMI │ │ Data Source ▼Launch Template │ ▼Au..
