DevOps(32)
-
[Kubernetes in Action] Pods
Kubernetes in Action 2nd Edition을 정리한 글입니다. Overview 쿠버네티스의 Basic Building Block인 Pod의 정의와 동작원리에 대해 설명합니다. 또한 쿠버네티스에서 권장하는 Pod사용방식에 대해 안내하며 JSON, YAML 포맷을 통해 파드를 생성하고 종료하는 방법에 대해 설명합니다. 마지막으로 namespace & label등과 같은 개념에 대해서 설명합니다. Introducing Pods 파드(Pod)는 쿠버네티스의 Basic Building Block으로써 컨테이너들을 포함합니다.(일반적으로 1개의 파드에 1개의 컨테이너를 넣는 것을 권장하지만, 경우에 따라서 하나의 파드안에 여러 개의 컨테이너들을 넣을 수 있습니다.) 컨테이너를 하나씩 배포하는 도커와..
2021.09.25 -
[Kubernetes in Action] First Steps with Docker And Kubernetes
Kubernetes in Action 2nd Edition을 정리한 글입니다. Overview 도커와 쿠버네티스를 사용하여 간단한 애플리케이션을 Deploy 해보는 Chapter입니다. 간단한 애플리케이션을 컨테이너화 하고 쿠버네티스를 통해 배포해보면서 쿠버네티스의 동작 원리를 이해합니다. MacOS환경에서 진행되었으며 Docker, Kubernetes 등의 설치와 관련된 내용들에 대해서는 다루지 않습니다. Busybox Example 우선 도커 플랫폼이 어떻게 동작하는지 알아보기 위해 이미 만들어져있는 Busybox이미지를 사용해서 실행시켜 보도록 하겠습니다. # docker run : # tag를 명시하지 않으면 latest tag의 이미지를 찾습니다. docker run busybox:latest ..
2021.09.23 -
[Kubernetes in Action] Introducing Kubernetes
Kubernetes in Action 2nd Edition 을 정리한 글입니다. Overview Introduction Chapter인 만큼, Kubernetes 이전의 서비스 구조와 배포방법과 그에 따른 쿠버네티스의 필요성을 안내합니다. 그리고 쿠버네티스의 구성, 쿠버네티스를 알기 위해 반드시 알아야 하는 리눅스 컨테이너 시스템에 대해 설명하며, 리눅스 컨테이너 시스템을 활용한 대표적인 컨테이너 플랫폼인 도커(Docker)에 대해 살펴봅니다. Moving from monolithic apps to microservices 요즘, 거대한 monolithic application은 각각 그 도메인별로 나누어 작고 독립적인 단위로 배포가 됩니다. 이렇게 작게 나누어져 독립적으로 배포되고 기능하는 컴포넌트들을..
2021.09.21 -
[ELB] Connection Draining
Usecase 한 기술 회사에서 운영하는 서비스는 ELB(Elastic Load Balancer)뒤에 EC2 인스턴스를 두고 부하를 분산하는 방식을 사용하고 있습니다. 이때, EC2가 health check에 실패하여 unhealthy상태로 들어가게 되면 진행중이던 in-flight Request가 끊어지는 이슈가 발생하게 됩니다. 이를테면, 특정 EC2 인스턴스로부터 수십초가 걸리는 파일 다운로드를 수행중이라고 했을 때, 파일을 다운로드받는 도중, 해당 인스턴스가 unhealthy상태로 바뀌게 되면 커넥션이 끊어지면서 파일 다운로드에 실패하게 되는 것입니다. 이러한 상황을 막기 위해 취할 수 있는 방법에는 어떤 것이 있습니까? Connection Draining When Connection Draini..
2021.07.28 -
[SQS] Long Polling & Short Polling
Usecase 자사의 메세지 큐를 AWS의 SQS로 대체하려는 서비스 회사가 있다고 가정합니다. 이 회사가 SQS로의 마이그레이션을 고려할 때 가장 중요하게 생각하는 요소가 '비용'이라고 할 때, 고려할 수 있는 옵션은 어떤 것이 있나요? Short Polling 기본적으로 SQS(Simple Queue Service)는 대기열에서 메세지를 수신하기 위해 Short Polling을 사용합니다. Short Polling의 경우 SQS로 보내는 쿼리(ReceiveMessage)에 메세지가 없는 경우에도 즉시 응답을 전송하며, SQS서버의 부분 집합(Weighted Random Distribution Method를 통해 선정한 전체 서버 노드들의 일부)에서 메세지를 꺼내어 Response를 리턴합니다. 따라서..
2021.07.27 -
[Global Accelerator] Introduction & Usecases
AWS Global Accelerator에 대한 개요 및 기타 기능은 AWS 공식 문서에 자세하게 나와있으므로 이를 참고하시는 것이 좋습니다 Usecase 마이크로 서비스 아키텍처(MSA)를 사용해 서비스를 구성하는 회사(이를테면 게임회사)가 있다고 가정합니다. 이 회사는 글로벌 서비스를 지원하기 위해 Multi Region에 퍼져 있는 ALB(Application Load Balancer)를 통해 각각의 마이크로 서비스들을 제공합니다. 서비스의 규모가 커지면서 여러 서비스들이 추가되는데, 서비스를 추가한다는 것은 곧 엔드포인트(Endpoint)를 추가한다는 의미이고, 이는 보안을 위한 방화벽 설정, 트래픽 라우팅 로직들을 서비스를 추가 / 제거할 때마다 수행해야 한다는 것을 의미합니다. 과정을 단순화하..
2021.07.25