본문 바로가기

전체 글

[k8s]서비스 디스커버리 쿠버네티스의 목적 쿠버네티스는 컨테이너화 된 워크로드와 서비스를 관리하기 위한 이식성이 있고, 확장 가능한 오픈소스 플랫폼이다. 즉 대량의 컨테이너를 쉽게 관리하기 위한 도구이다. 이 쿠버네티스의 파드는 컨테이너를 실행하는 가장 작은 작업단위이다. 파드에 직접 접근하지 않도록 파드는 노드와 클러스터로 감싸져있다. 이는 서비스 간의 강한 의존성을 제거하기 위한 Decoupling과정으로, 이것의 장점은 앞서 배운 MSA와 비슷하다. 서비스 파드를 네트워크 상에 노출시킬 수 있게 만드는 리소스 파드 접근 정책을 정의하는 추상적 개념 spec.selector가 결정한다. 서비스 디스커버리 마이크로서비스 사이에서 서로가 서로를 호출하는 방법(IPC: Inter-Process Communication)이다. 동기.. 더보기
[JS]Object관련 문법 JavaScript에서 Object는 많이 쓰이고 중요한 클래스이다. 시간 많을 때 꼭 Object관련 문서를 읽어보자. Object에 property 넣는 방법 Object는 property로 구성되어 있고 object.property와 object['property']를 통해서 접근할 수 있다. Object의 key, value를 순회(loop)하는 방법 for...in Loop 가장 직관적 const user = { name: 'John Doe', email: 'john.doe@example.com', age: 25, dob: '08/02/1989', active: true }; // iterate over the user object for.. 더보기
[k8s]쿠버네티스 개념 쿠버네티스(Kubernetes, k8s)란 오픈소스로 만들어진 컨테이너 오케스트레이션 도구 컨테이너화된 애플리케이션을 자동으로 배포, 스케일링하는 등의 관리 기능을 제공 각기 다른 환경(온프레미스 서버, VM, 클라우드)에 대응 가능 무엇을 오케스트레이션 하나? orchestrate의 사전적 의미는 다음과 같다. to plan and organize something carefully and sometimes secretly in order to achieve a desired result 아키텍처가 모놀리식에서 마이크로 서비스화되어 필요한 컨테이너가 증가하고, 확장성을 높이기 위해 스케일링을 할 경우 더욱 많은 컨테이너가 필요하다. 이 때 쿠버네티스는 수 많은 컨테이너를 더 잘 관리할 수 있는 도구이다.. 더보기
[Terraform]Full Stack 애플리케이션 구성 위 아키텍처를 terraform을 이용해 작성해볼 것이다. 순서는 다음과 같다. IaC 코드를 작성하는 순서 AWS Management Console을 이용해 최종 인프라 상태를 만든다 잘 작동하는지 확인한다. 리소스를 하나씩 terraform 코드로 옮긴다. VPC 생성 아키텍처를 본다. 한 VPC 안에 두 개의 가용영역이 존재한다. 각 가용영역에는 하나의 퍼블릭 서브넷과 하나의 프라이빗 서브넷이 있다. 그 중 퍼블릭 서브넷에 EC2 인스턴스가 존재하고 프라이빗 서브넷에 RDS가 존재한다. Loadbalancer와 auto scaling group은 나중에 처리한다. 콘솔을 활용해 다음과 같이 VPC를 구성한다. 클릭 몇 번이면 되므로 편하다. 손쉽게 구성했지만, 되게 많은 것들이 생성되었고, 서로 .. 더보기
[JS]Array관련 문법 타입 확인 const object = { name: 'Steve' } typeof object //object const array = [100, 200, 300] typeof array //object Array.isArray(object) //false Array.isArray(array) //true typeof로 확인한 배열의 타입은 'object'이다. 'Array.isArray()' 를 통해 배열을 구분할 수 있다. 길이 확인 function getLastElement(arr) { if (arr === []){return undefined} else { return arr[arr.length -1] } } let output = getLastElement([1, 2, 3, 4]) console.. 더보기
[AWS]Public, Private subnet과 VAT, internet gateway AWS.. 너무 어렵다.. 테라폼을 이용하여 인프라 구축을 하기 위해서 AWS를 잘 모르기에 다시 공부하러 왔다. 아키텍처를 보자. 보안을 강화하기 위해 보통 웹 서버는 퍼블릭 서브넷에 두고 데이터베이스 서버는 프라이빗 서브넷에 둔다. 근데 직접 VPC를 구성하다 보니 의문이 든다. 뭐가 다를까? 차이점 퍼블릭: 인터넷에 바로 아웃바운드 트래픽을 전송할 수 있음 프라이빗: NAT 게이트웨이(퍼블릭 서브넷에 있는)를 통해 인터넷에 액세스 가능 그저 서브넷을 사용하는 사람입장에서는 프라이빗 서브넷이 바로 인터넷에 액세스 불가능하다는 것 정도는 알고 있다. 그런데 인프라를 구성해야 하는 입장에서는 좀 더 알아야 한다. 차이점은 극명하다. 서브넷이라는 것은 VPC의 IP 주소 범위로써, 생성된 각 서브넷은 자동.. 더보기
[IaC]Terraform의 tfstate파일에 관하여 Terraform은 어떻게 인프라를 코드로 관리할 수 있는 것일까? 항상 클라우드 상에 있는 리소스를 최신상태로 유지하고 변동사항을 추적하는 모습을 보이는데, 그것이 가능한 이유가 궁금했다. 그 이유는 tfstate파일의 존재 때문이었다. tfstate파일이 무엇인지 알아보고 작동원리를 알아볼 수 있는 간단한 실습을 해볼 것이다. tfstate 상태파일 최신 테라폼 상태 정보를 담고 있는 파일 현재 시점에서 존재하는 인프라 상태를 보장 x 인프라의 실제 상태와 비교할 대상으로 사용됨 이것이 상태 파일의 정의와 특징인데 잘 와닿지 않는다. 이를 잘 이해하기 위해서는 3가지 관점에서 바라보아야 한다. Code, State, Infra. 위 세 가지가 일치하도록 유지하는 것이 테라폼 운영의 목적이다. 즉 정상.. 더보기
[IaC]Terraform에 관하여 클라우드 서비스가 대중화되면서, 기존의 온프레미스 방식의 서버 운영하던 방법과는 많이 달라졌다. 이제 하드웨어적인 관리는 AWS와 같은 클라우드 벤더사가 담당하고 개발자들은 서버 인프라를 소프트웨어처럼 다룰 수 있게 되었다. 즉, Infrastructure를 code로 다룰 수 있게 되었는데 그것이 바로 IaC이다. IaC의 등장 배경 실제 클라우드 서비스의 콘솔은 정말 잘되어있다. 마우스 클릭만으로 모든 서비스를 동작할 수 있다. 그러나 많은 서비스들이 있고 복잡한 아키텍처를 통해 관리를 하다보면 다음과 같은 유지보수 문제를 만나곤 한다. 서버를 내릴 수 없다. 장애가 나지 않으면 굳이 설정이나 구성을 바꾸지 않는다. 이상한 설정이 있어도 개선하지 않는다. 누가 변경을 해도 알기가 어렵다. 어떤 리소스.. 더보기