전체 글

성장 중 🌱🌱
· Cloud
0. 배포 방식먼저 배포 방법이 어떻게 발전했는지, 그리고 최근 동향을 알아보자.서버중소/중견 기업은 아직 온프레미스 환경에서 서버 구축도 많이 한다.기존 시스템 + 보안 및 예산의 문제 등으로하지만 대부분의 회사에서 AWS와 같은 클라우드 전환도 빠르게 진행 중 소스코드 관리 & CI/CD 방법한국 기업의 국룰 조합인 ‘React + SpringBoot’ 프로젝트라고 가정해보자. 1. 기본 조합 (외주 많거나 소규모)프런트S3 + CloudFront또는 Vercel / Netify (React 기반일 경우)백형상관리: GitHubCI: GitHub Actions / JenkinsJenkins : 금융권, 전통적인 시스템, 온프레미스, 다양한 커스터마이징 필요할 때CD :GitHub Acitons에서 S..
· Cloud
1. 프런트엔드 배포 방식1-1. NGINX 사용브라우저 │ ▼[Nginx (EC2)] ├─ React 정적 파일 서빙 └─ /api 요청 → Spring Boot 프록시  1-2. S3 + CloudFront + ALB 사용브라우저 │ ├─ 정적 리소스 요청 → [CloudFront → S3 (React)] └─ API 요청 → [ALB → EC2(Spring Boot)] 1-3. 참고사항프런트와 백의 위치프론트: S3 (서버리스) → VPC 밖백엔드: EC2, ECS 등 VPC 내부ALB vs Nginx리버스 프록시로써의 Nginx 역할은 사라짐이제는 프론트에서 직접 API 서버로 요청(다만 Cors 문제는 따로 해결)ALB는 단순히 HTTP 라우팅 + 로드 밸런싱만 해줌Reac..
· Cloud
1. Auto Scaling 설정우리가 원하는 최종 아키텍쳐에서는 가용성을 위해 뒷단 서버가 Auto Scaling 되는 것을 원했다.기존 인스턴스 → [작업] → [인스턴스에서 템플릿 생성]을 하면,자동으로 해당 인스턴스 기반으로 한 AMI가 생성된다.하지만 이 방식은 AMI 이름이 자동으로 정해져서 헷갈릴 수 있고,AMI를 명시적으로 관리하지 않으면 추적이 어렵기 때문에,직접 AMI를 먼저 만든 다음 → Launch Template에서 선택하는 방식이 더 안전하다. 1-1. AMI 이미지 생성EC2-web-3tier-nginx를 기반으로 AMI 이미지를 만들어보자.그 전에 대상그룹에서 Healthy 상태인지 확인하고! (안에 Nginx 제대로 돌아가는 지 확인한 뒤 이미지 만들 것)sudo syste..
· Cloud
1. 최종 목표외부 도메인을 AWS에 연결하고, HTTPS로 안전하게 서비스해보자.인증서: ACMHTTPS 처리: ALB 리스너도메인 연결: Route 53실습 순서외부 도메인 구매Route 53 호스팅존 생성NS 레코드 → 가비아에 등록 (도메인 위임)Route 53에서 A 레코드 추가 → ALB 엔드포인트 연결                                              → ALB DNS 서버 네임ACM 인증서 발급 (DNS 검증은 Route 53에 위임되어 있어야 자동 등록됨)ALB 리스너 생성 → HTTPS 리스너에 인증서 연결 2. 도메인 구매2-1. 도메인 구매 고민이전 글의 “Amazon Route 53을 사용한 ELB 트래픽 라우팅”를 참고https://jinhos-de..
· Cloud
1. Target Architecture Details1-1. Network Topology1-2. VPC CIDR💡VPC CIDRVPC 생성VPC: 192.168.0.0/16서브넷 생성AzonePublic Subnet: 192.168.10.0/24Nat Subnet: 192.168.110.0/24Private Subnet: 192.168.210.0/24CzonePublic Subnet: 192.168.20.0/24Nat Subnet: 192.168.120.0/24Private Subnet: 192.168.220.0/24추가 자원 생성Internet GatewayNAT Gateway라우팅 테이블 생성RT-Public Subnet (PublicSubnet - A/Czone 연결, 0.0.0.0/0 IGW..
· Cloud
0. Kubernetes 개요쿠버네티스란?컨테이너화된 애플리케이션을 자동으로 배포하고 관리하는 오케스트레이션 도구도커는 컨테이너화해서 이미지를 만드는 것이라고 했다.쿠버네티스는 컨테이너가 실행될 환경을 만들고, 이를 효과적으로 관리하는 역할을 한다.즉, “컨테이너의 실행/관리/운영 환경”을 제공하는 것 1. 쿠버네티스 컴포넌트1-1. K8s Cluster쿠버네티스를 배포하면 Cluster를 얻는다.쿠버네티스 클러스터 = 하나의 실행 환경(Infrastructure Environment)K8s 클러스터는 최소 한 개의 Worker Node를 가진다.Node는 쉽게 말해 ‘서버’라고 생각하면 편하다.Worker Node는 애플리케이션을 구성하는 Pod를 실행하는 역할을 한다.미리 설명하자면, 하나의 Pod는..
· Cloud
배포 전략과 무중단 배포1. 재생성 전략 (Recreate)재배포!디플로이먼트와 관련된 모든 포드를 중지 → 새로운 버전의 포드를 생성장점 : 쉽고 간편하다단점 : 서비스 다운타임이 발생한다.서비스에 영향이 있다.기능 테스트 배포에 적합하다.2. 롤링 업데이트 전략 (Rolling Update)Blue / Green 배포 방식과 유사기존 버전의 애플리케이션을 점진적으로 새로운 버전으로 교체하는 배포 방식트래픽을 기존 버전(V1.1)과 새 버전(V1.2)으로 분산하면서 배포사실 사용자 경험 측면에서는 서버가 내려갔다는 것도 못 느끼지만, 아주 희박한 환경에서의 에러가 난다면?기존 v1.1에 있던 사용자로그아웃심한 경우 500 에러[그런데 결제 중이었다면?]실제 결제는 되었는데, 사용자는 v1.2로 옮겨가고..
· Cloud
0. Kubernetes 개요쿠버네티스란?컨테이너화된 애플리케이션을 자동으로 배포하고 관리하는 오케스트레이션 도구도커는 컨테이너화해서 이미지를 만드는 것이라고 했다.쿠버네티스는 컨테이너가 실행될 환경을 만들고, 이를 효과적으로 관리하는 역할을 한다.즉, “컨테이너의 실행/관리/운영 환경”을 제공하는 것1. 쿠버네티스 컴포넌트1-1. K8s Cluster쿠버네티스를 배포하면 Cluster를 얻는다.쿠버네티스 클러스터 = 하나의 실행 환경(Infrastructure Environment)K8s 클러스터는 최소 한 개의 Worker Node를 가진다.Node는 쉽게 말해 ‘서버’라고 생각하면 편하다.Worker Node는 애플리케이션을 구성하는 Pod를 실행하는 역할을 한다.미리 설명하자면, 하나의 Pod는 ..