전체 글

코딩관련 이모저모 정보를 올리는 블로그입니다.
앞선 실습에서는 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..
이번 실습에서는 Terraform으로 AWS 인프라를 구성하기 위한 기반 작업을 진행했다.먼저 Terraform State를 안전하게 관리하기 위해 S3 + DynamoDB 기반 Remote Backend를 구성하고, 이후 VPC 내부에 Public/Private Subnet, Internet Gateway, NAT Gateway, Route Table, Security Group, NACL을 생성했다.실습 중 발생했던 map 인덱스 오류와 NACL 통신 문제까지 함께 정리해보자.전체 아키텍처 및 작업 흐름Terraform │ ├── remote/ │ ├── S3 │ │ └── terraform.tfstate 저장 │ │ │ └── DynamoDB ..
이번 실습에서는 Terraform을 처음 설치하는 단계부터 시작해서 AWS Provider 설정, 변수와 Local, count와 for_each, VPC/Subnet/Route Table/NAT Gateway/Security Group 구성까지 진행했다.처음에는 AWS 리소스를 하나씩 직접 작성했지만, 실습을 진행하면서 반복되는 코드를 count와 for_each로 줄이고 list, map, each.key, each.value를 활용하는 방식으로 개선했다.또한 Terraform 코드를 수정하면서 실제 AWS 리소스와 Terraform State 사이의 관계도 확인할 수 있었다.전체 아키텍처 및 작업 흐름Terraform │ ▼AWS Provider │ ▼VPC├── Public Subn..
이번 실습에서는 단순히 EC2 하나에 웹 서버를 띄우는 수준을 넘어, 하나의 웹 서비스를 여러 AWS 서비스와 연결해 구성했다.전체적으로 사용한 구성은 다음과 같다.VPC / Public·Private·EKS 전용 SubnetRDS MySQL + RDS ProxyS3 Static WebsiteAPI GatewayLambdaDocker / Docker ComposeECREC2 / AMI / Launch TemplateAuto Scaling GroupALB + HTTPSEKSKubernetes Deployment / Service / HPA / Secret / hostPathNLB이번 실습에서 특히 중요했던 점은 각각 따로 배웠던 서비스를 하나의 흐름으로 연결했다는 것이다.전체 아키텍처 및 작업 흐름 ..
오늘 실습에서는 기존 EKS 환경을 기반으로 MySQL StatefulSet과 Replication을 다시 구성하고, EFS를 활용한 CronJob 테스트, AWS Secrets Manager와 External Secrets Operator 연동, 그리고 Pod 수 제한 문제를 해결하기 위한 EKS NodeGroup 교체까지 진행했다.단순히 Kubernetes 리소스를 생성하는 데서 끝나는 것이 아니라, 실제로 다음 흐름을 하나씩 확인했다.MySQL StatefulSet ↓Source / Replica 구성 ↓CronJob + EFS ↓AWS Secrets Manager ↓External Secrets Operator ↓Kubernetes Secret ..
이번 실습에서는 Amazon EKS 환경에서 MySQL 3개를 StatefulSet으로 구성하고, EBS gp3 볼륨을 연결한 뒤 Source–Replica Replication까지 설정했다.진행하면서 MySQL Pod가 Pending 상태에 머무르는 문제가 발생했는데, 원인은 EKS 클러스터에 AWS EBS CSI Driver가 설치되어 있지 않았기 때문이었다.EBS CSI Driver 설치 후 PVC와 MySQL Pod가 정상 생성되었고, 마지막에는 mysql-sfs-0을 Source로 두고 mysql-sfs-1, mysql-sfs-2를 Replica로 연결하여 실제 데이터베이스가 복제되는 것까지 확인했다.전체 아키텍처 및 작업 흐름 Amazon EKS ..
이즈99
은직의 코딩공부