전체 글

코딩관련 이모저모 정보를 올리는 블로그입니다.
이번 실습에서는 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. ..
Docker를 활용하여 커스텀 브릿지 네트워크를 구축하고, MySQL 및 FastAPI 컨테이너를 연동하는 실습을 진행하며 겪었던 다양한 에러와 해결 과정을 정리한 기록입니다.1. Docker Custom Bridge Network 구축 및 Container Alias 통신Docker의 기본 bridge 네트워크는 IP 주소 기반으로만 통신이 가능하지만, 사용자 정의 네트워크(Custom Bridge Network)를 생성하면 컨테이너 이름이나 별칭(Alias)을 이용한 DNS 통신이 가능해집니다.네트워크 생성 및 컨테이너 연결# 1. 커스텀 브릿지 네트워크 생성docker network create my-network1# 2. 네트워크 별칭(Alias)을 부여하여 컨테이너 구동docker run -d ..
웹 아키텍처를 공부하다 보면 자주 나오는 '리버스 프록시(Reverse Proxy)'의 정확한 개념과 역할, 그리고 많이 혼동하는 도메인 리다이렉션 및 AWS ALB(Application Load Balancer)와의 관계를 한 번에 정리합니다.1. 리버스 프록시(Reverse Proxy)란?리버스 프록시는 클라이언트(사용자)와 실제 백엔드 서버 사이에서 요청을 대신 받아 전달해 주는 '서버 측 대리인(중앙 관문)'입니다.사용자는 뒤에 백엔드 서버가 몇 대가 있는지, 어떤 포트(8000, 8080 등)로 동작하는지 몰라도 됩니다. 리버스 프록시 단 하나만 바라보고 요청을 보내면, 프록시가 내부 서버로 전달하여 응답을 대신 가져다줍니다.[ 클라이언트 ] ──(요청: 80/443)──> [ 리버스 프록시..
이즈99
은직의 코딩공부