Terraform is an open-source infrastructure-as-configuration software tool created by HashiCorp. Basic concepts of terraform Provider - 테라폼과 외부 서비스를 연결해주는 기능을 하는 모듈, infrastructure provider ex) 테라폼으로 AWS resource를 생성하기 위해서는 aws provider를 먼저 셋업해야한다. AWS, Google Cloud Platform, Microsoft Azure와 같은 범용 클라우드 서비스 또는 Github, Datadog, DNSimple과 같은 특정 기능을 제공하는 서비스, MySQL, Docker와 같은 로컬 서비스 등을 지원한다. - 테라폼 ..
컨테이너화 된 어플리케이션의 관리를 돕는 툴. 로드 밸런싱& 보안 & 자동 롤백 등 관리를 쉽게 해준당 01. 구성 요소 cluster > node > pod > container (물리적 개념) cluster란? control plane, node들로 이루어져 있으며, 쿠버네티스 운영의 가장 큰 단위이다. 컨트롤 플레인은 클러스트의 주요 구성요소들을 배포, 관리하는 역할을 한다. node란? 클러스터 내의 가상 서버로, 컴퓨팅 엔진 단위로 이해하면 된다. 노드는 마스터 노드 / 워커 노드가 있다. 마스터 노드는 컨트롤 플레인을 포함(관리)하며, 워커 노드는 어플리케이션의 실제 실행을 수행한다. 각 노드에는 pod를 구동하기 위한 요소가 존재한다. kubelet: 각 노드에서 API 서버로 들어오는 신호..
CI/CD란? Continuous Integration/Continuous Deployment(or Delivery)의 약자. 어플리케이션 개발 / 통합 / 테스트 / 배포 단계를 자동화하여 개발과 운영의 비용을 줄이고, 유저에게 더욱 짧은 주기로 업데이트를 제공할 수 있음. 이러한 자동화된 일련의 단계를 CI/CD pipeline 이라고 한다. CI(지속적 통합) 어플리케이션의 변경사항이 주기적으로 빌드 및 테스트되어 통합되는 것 → 코드의 빌드, 테스트, 통합 자동화를 통해 달성할 수 있다. 개발자가 작성한 코드 merge를 위해 repo에 공유할 때, 자동으로 빌드 및 테스트가 수행되어 통합된다. 개발자가 push 할 때마다 push한 코드에 테스트가 실행되도록 한다. 👍 변경사항의 문제를 빠르게 ..
Docker란? 컨테이너 기반 가상화 도구의 일종이다. 가상화(Virtualization) 물리적인 컴퓨터 자원을 가상으로 분할하여 여러개의 가상 컴퓨터 환경을 만들어 내는 기술. 대표적으로 다음과 같은 종류가 있다. Docker에서 사용하는 컨테이너 가상화 KVM과 같은 hypervisor 가상화 Virtual Box 같이 host OS에 Guest OS를 올려 사용하는 호스트 가상화 컨테이너(Container) 리눅스 커널의 chroot, namespace, cgroup 등의 기능을 기반으로 만들어진, 프로세스 단위의 격리 환경. 특정 서비스를 실행하는 데에 필요한 라이브러리, 언어와 같은 종속성 항목을 모두 포함하고 있음. VM과 달리 Container와 hostOS는 OS 자원을 공유하며, VM ..