전체 글

코딩관련 이모저모 정보를 올리는 블로그입니다.
이번 실습에서는 단순히 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 ..
오늘은 AWS EKS 환경에서 Nginx와 FastAPI를 Kubernetes로 배포하고 외부 도메인을 통해 접근할 수 있는 구조를 구성했다.단순히 Pod를 띄우는 것에서 끝나는 것이 아니라 다음 요구사항을 하나씩 구현했다.Nginx Pod 최소 1개 ~ 최대 3개LoadBalancer를 통한 외부 접속 및 도메인 연결ConfigMap을 이용한 index.html 변경ConfigMap을 이용한 Nginx default.conf 변경FastAPI에서 Jinja2 페이지 제공FastAPI Pod 최소 2개 ~ 최대 6개Nginx 페이지에서 FastAPI 페이지로 이동이번 실습을 하면서 Docker 이미지와 Kubernetes가 어떤 관계인지도 조금 더 명확하게 이해할 수 있었다.1. 전체 아키텍처 및 작업 ..
이번 실습에서는 Kubernetes의 Pod와 Service 기초에서 한 단계 더 나아가 설정값과 데이터 저장공간을 분리해서 관리하는 방법을 학습했다.주요 실습 내용은 다음과 같다.Secret을 이용한 민감정보 관리Secret과 MySQL 8.0 연동emptyDir을 이용한 컨테이너 간 데이터 공유Sidecar 컨테이너를 이용한 Nginx 로그 확인hostPath를 이용한 Worker Node 저장공간 연결PV/PVC를 이용한 Persistent Storage 구성ConfigMap을 파일 형태로 Pod에 MountClusterIP / NodePort Service 구성MySQL 데이터 영속화 구조1. 전체 아키텍처 및 작업 흐름오늘 실습에서 사용한 Kubernetes 리소스의 관계를 먼저 정리하면 다음과..
· 코딩
오늘은 AWS EKS 환경에서 Kubernetes의 가장 기본적인 리소스인 Pod와 Service를 직접 YAML로 정의하고 배포하는 실습을 진행했다.단순히 nginx Pod 하나를 실행하는 것에서 시작하여 다음과 같은 내용을 실습했다.Pod YAML 작성 및 배포NodePort Service 생성Private EKS Worker Node에서 서비스 접근Init Container 구성Sidecar Container 구성emptyDir Volume을 이용한 컨테이너 간 데이터 공유Label과 Selector를 이용한 Pod 그룹화Service Selector를 이용한 특정 Pod 연결1. 전체 아키텍처 및 작업 흐름전체 구조Windows / WSL Ubuntu │ │ kubectl..
🏗️ 전체 아키텍처 및 작업 흐름전체적인 실습 과정은 다음과 같습니다.Private EC2 준비 ➔ Docker / AWS CLI 설치 ➔ IAM Role 설정 ➔ ECR 연동 ➔ AMI 생성 ➔ Manager / Worker 생성 ➔ Docker Swarm 구성 ➔ Node Label 설정 ➔ Nginx 배포 ➔ FastAPI 이미지 제작 / ECR Push ➔ FastAPI 배포전체 구성구성 요소역할Amazon ECRNginx / FastAPI Docker Image 저장Manager NodeDocker Swarm Cluster 및 Service 관리Worker Node Arole=app / Nginx 및 FastAPI 실행Worker Node Brole=app / Nginx 및 FastAPI 실행..
보안을 위해 데이터베이스(DB) 서버는 인터넷에 직접 노출되지 않는 프라이빗 서브넷(Private Subnet)에 배치하는 것이 표준 아키텍처입니다.이번 포스팅에서는 AWS EC2 2대(Public/Private)를 활용하여 커스텀 도커 이미지를 빌드/업로드(Push)하고, 프라이빗 서버에서 해당 컨테이너를 띄워 접속 테스트까지 진행한 전체 실습 과정을 정리합니다.🏗️ 전체 아키텍처 및 작업 흐름[ 개발자 PC / 퍼블릭 EC2 ] ────(1. docker push)────> [ Docker Hub ] │ │ (4. mysql 접속) (2. ..
이즈99
은직의 코딩공부