![[Kubernetes] 볼륨(Volume)](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FHPZiO%2FbtsNR2BPORy%2FVIzy5SQcmiGAkBMv7Hfqp1%2Fimg.png)
이 글은 인프런의 지식 공유자 박재성님의 강의를 듣고 개인적으로 정리하는 글임을 알립니다.기존 파드를 새로운 파드로 교체하면, 기존 파드 내부에 있던 데이터도 같이 삭제된다. 만약 이 파드가 MySQL을 실행시키는 파드였다면 MySQL에 저장된 데이터도 같이 삭제 돼버린다. 따라서 파드 내부에 저장된 데이터가 삭제되면 안 되는 경우에는 볼륨(Volume)이라는 개념을 활용해야 한다. Volume볼륨(Volume)이란 데이터를 영속적으로 저장하기 위한 방법이다. 쿠버네티스에서 볼륨은 크게 2가지 종류로 나뉜다.로컬 볼륨(Local Volume)퍼시스턴트 볼륨(Persistent Volume, PV) 로컬 볼륨파드 내부의 공간 일부를 볼륨(Volume)으로 활용하는 방식이다.이 방식은 파드가 삭제되는 즉시..
![[Kubernetes] 환경변수 관리(ConfigMap, Secret)](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FOSlem%2FbtsNNWu0Omm%2FXisvfDanLtDZAEFgwMb8Z0%2Fimg.png)
이 글은 인프런의 지식 공유자 박재성님의 강의를 듣고 개인적으로 정리하는 글임을 알립니다.ConfigMapSpring Boot에서는 설정값을 application.yml으로 분리해서 관리한다.별도의 파일로 분리를 해서 관리함으로써 유지보수가 편리해지고 개발, 테스트, 프로덕션과 같은 환경 분리가 편해진다. 쿠버네티스에서는 파드(Pod), 디플로이먼트(Deployment), 서비스(Service)가 각각의 역할을 가지고 있는 것처럼 환경 변수를 관리하는 역할을 가진 오브젝트가 따로 존재한다.그게 바로 컨피그맵(ConfigMap)이다. spring-config.yamlapiVersion: v1kind: ConfigMap# ConfigMap 기본 정보metadata: name: spring-config #..
![[Kubernetes] Deployment와 Service](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FNfolE%2FbtsNMLgTmR2%2FCAg8id90FKpPqW8A95v9Ek%2Fimg.png)
이 글은 인프런의 지식 공유자 박재성님의 강의를 듣고 개인적으로 정리하는 글임을 알립니다.DeploymentDeployment 개념디플로이먼트(Deployment) 란 파드를 묶음으로 쉽게 관리할 수 있는 기능을 말한다.현업에서는 일반적으로 서버를 작동시킬 때 파드(Pod)를 수동으로 배포하진 않는다.디플로이먼트(Deployment)라는 걸 활용해서 파드(Pod)를 자동으로 배포한다. 디플로이먼트의 장점파드의 수를 지정하는 대로 여러 개의 파드를 쉽게 생성할 수 있음.ex) 파드를 100개를 생성하라고 시키면 디플로이먼트가 알아서 파드를 100개 생성해준다.파드가 비정상적으로 종료된 경우, 알아서 새로 파드를 생성해 파드 수를 유지한다.동일한 구성의 여러 파드를 일괄적으로 일시 중지, 삭제, 업데이트를..
![[Kubernetes] 파드(Pod)](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FduK8RX%2FbtsNMbNyeas%2F1O2O5y1BTJkKRK4nOtQ2pK%2Fimg.png)
이 글은 인프런의 지식 공유자 박재성님의 강의를 듣고 개인적으로 정리하는 글임을 알립니다.파드(Pod)도커에서는 하나의 프로그램을 실행시키는 단위를 컨테이너라고 부른다. 쿠버네티스에서는 하나의 프로그램을 실행시키는 단위를 파드(Pod)라고 부른다.도커 : 컨테이너쿠버네티스 : 파드(하나 또는 여러개의 컨테이너로 구성)따라서 파드(Pod)는 일반적으로 쿠버네티스에서 하나의 프로그램을 실행시키는 단위라고 기억해두면 이해하기 편하다.쿠버네티스에서 가장 작은 단위일반적으로 하나의 파드가 하나의 컨테이너를 가진다. (예외적으로 하나의 파드가 여러 개의 컨테이너를 가지는 경우도 있다.) 쿠버네티스도 도커처럼 이미지를 기반으로 파드를 띄워 실행시킨다. Pod 생성 및 실행Nginx먼저 Manifest File을 ..
![[Kubernetes] 쿠버네티스 설치(Mac)](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbtzCVm%2FbtsNMzf35aI%2FSv2AjitLxrkb301u90ZVl0%2Fimg.png)
이 글은 인프런의 지식 공유자 박재성님의 강의를 듣고 개인적으로 정리하는 글임을 알립니다.쿠버네티스쿠버네티스(Kubernetes)는 다수의 컨테이너를 효율적으로 배포, 확장 및 관리하기 위한 오픈 소스 시스템이다.쿠버네티스(Kubernetes)는 Docker Compose와 비슷한 느낌을 가지고 있다. Docker Compose도 다수의 컨테이너를 쉽게 관리하기 위해 활용하기 때문이다.하지만 도커 컴포즈로 수백, 수천 개의 컨테이너를 관리하기는 힘들다. 하지만 쿠버네티스는 가능하다.Docker Compose: 로컬 개발 환경 또는 소규모 서비스 구성에 적합하며, 오케스트레이션 기능은 제한적이다.Kubernetes: 프로덕션 환경에서 수천 개의 컨테이너를 안정적으로 관리할 수 있다. 쿠버네티스의 장점컨테..
![[Nginx] 다중 도메인 설정, 로드 밸런싱](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcJg4qX%2FbtsNL3uSxv5%2FxTKkpvVFFk7ohMW9IuxHzK%2Fimg.png)
다중 도메인 설정Nginx를 통해서 하나의 서버에서 도메인마다 다른 애플리케이션에 연결시킬 수 있다.예를들어, aaa.com 이라는 도메인에는 A라는 스프링부트 애플리케이션에 연결시키고, bbb.com이라는 도메인에는 B라는 스프링부트 애플리케이션에 연결시킬 수 있다. 이 글에서 설명하는 방법은 우분투 환경을 기준으로 설명하며, /etc/nginx/conf.d에 있는 .conf 파일을 사용하지 않는다. /etc/nginx/nginx.conf모든 사이트에 적용할 전역 설정 /etc/nginx/sites-available이 디렉토리는 Nginx에서 사용할 수 있는 모든 서버 블록 설정 파일을 보관하는 장소이다.이곳에 설정 파일을 작성한다고 해서 Nginx가 자동으로 해당 설정을 반영하지는 않으며, 단순히 설..
![[AWS] 고가용성 인프라 구축](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcLogjg%2FbtsNIwYp288%2Fy3JXMVkN1caNGdrqXLRxR0%2Fimg.png)
이 글은 인프런의 지식 공유자 박재성님의 강의를 듣고 개인적으로 정리하는 글임을 알립니다.가용성(Availability)이란 시스템이 서비스를 정상적으로 제공할 수 있는 가능성을 의미한다.서비스에 장애가 발생할 가능성이 극히 작은 시스템을 가용성이 높은(고가용성) 시스템이라고 말할 수 있다. 반대로 서비스가 다운되는 시간이 긴 시스템을 가용성이 낮은 시스템이라고 한다. 가용성을 높이기 위해서는 서비스 사용 불가능 시간을 최대한 발생시키지 않게 하고 설령 발생하더라도 그 시간을 짧게 만들어야 한다. 다운 타임을 줄이는 데 가장 중요한 설계 방법 중 하나가 시스템 이중화이다. 이 글에서 최종 구축하는 인프라 아키텍쳐는 아래와 같다.VPC에 가용 영역을 2개로 설정하고, 각 가용 영역에 퍼블릭, 프라이빗 ..
![[AWS] VPC(Virtual Private Cloud)](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fu0v6O%2FbtsNHg1xdZv%2Fl7pkFTNz5GdOOmDzFI26N0%2Fimg.png)
이 글은 인프런의 지식 공유자 박재성님의 강의를 듣고 개인적으로 정리하는 글임을 알립니다.VPC의 개념VPC를 쓰는데 여러가지 이유가 있지만, 핵심적인 이유는 딱 한가지 보안 때문이다.VPC란 가상의 네트워크 공간을 의미한다. VPC를 활용하면 외부에서 직접 접근할 수 없는 독립적인 네트워크 환경을 구성할 수 있어서, 보안적으로 안전하게 리소스(EC2, RDS 등)를 사용할 수 있다. 예를 들어, EC2 인스턴스 2대가 있다고 가정하자. 그런데 1대의 인스턴스는 인터넷에 자유롭게 접근하면서 사용하고 싶고, 나머지 1대는 좀 더 안전하고 비공개로 사용하고 싶을 수 있다. 이럴 때 VPC를 활용하면 된다. VPC는 가상의 네트워크 공간이다.따라서 네트워크 공간의 크기를 정해야한다.AWS에서 EC2, RDS..