IAM json 문법 Effect enum: Allow | Deny 허용한다는 규칙인지, 불허한다는 규칙인지 구분 Action string | Array 하나 혹은 여러 개의 Action을 지정할 수 있습니다. AWS 서비스에 사용되는 작업, 리소스 및 조건 키 각 서비스별로 고유의 서비스 접두사(예: DynamoDB는 dynamodb)가 있습니다. 위 설명서에서 각 서비스를 선택해서 들어가면 XX에서 정의한 작업이라는 단락에 작업 목록이 있습니다. Action은 (서비스 접두사):(작업) 형식으로 작성합니다. 예: dynamodb:DeleteItem, s3:GetObject 등 Resource Statement의 주제가 되는 리소스를 한정(qualify)합니다. 서비스에 따라서 이렇게 해당 서비스에 속..

가상머신(Virtual Machine)이란 ? 물리적인 컴퓨터 상에 소프트웨어를 이용해 논리적으로 만든 컴퓨터이다. 하나의 물리 자원(컴퓨터)에 하나의 운영 환경(OS)만을 사용하는 방식에서 가상화 기술을 사용해 다양한 OS를 사용할 수 있도록 하는 기법이다. → 하나의 컴퓨터를 여러명의 사용자가 동시에 사용할 수 있도록 여려대의 작은 컴퓨터로 분할 사용하거나, 운영체제나 하드웨어 등의 구성을 달리해 운영하고자 할 때 주로 사용한다. 장점 1) 사용자는 온전한 시스템을 가지고 혼자 사용하고 있는 것처럼 느낀다. 2) 가상머신이라는 별도의 고유하고 안전한 환경으로 분할해 사용한다면 바이러스 문제로부터 자유롭다. 가상머신에서 컨테이너로 가상머신에서 컨테이너 개념이 등장한 이유는 무엇일까 ? 가상머신을 사용하..
쿠버네티스 클러스터의 컴포넌트 마스터 컴포넌트 etcd 쿠버네티스 클러스터 구성을 유지하는 분산 KVS. 데이터를 Key-Value형으로 관리한다. 어떤 파드를 어떻게 배치할지와 같은 정보를 갖고 있어서 API Server가 이를 참조한다. 매니페스트의 내용이 저장되어 있다고 생각하면 좋을 것이다. 분산 시스템에서 노드 사이의 상태를 공유하는 합의 알고리즘 중 하나인 raft 알고리즘을 구현한 것. 쿠버네티스에서는 필요한 모든 데이터를 저장하는 데이터베이스 역할을 한다. 마스터 서버에서 분리시킬 수도 있다. kube-apiserver 쿠버네티스 클러스터의 API를 사용할 수 있도록 하는 컴포넌트 쿠버네티스의 리소스 정보를 관리하기 위한 프런트엔드 REST API. 각 컴포넌트로부터 리소스 정보를 받아 데..

클러스터 구성에는 세가지 옵션이 있다. 1) 싱글 클러스터 노드 2) 클러스터 모드 없이 Replication만 지원 (클러스터 모드 X) 3) 클러스터 모드와 Replication 모두 지원 (클러스터 모드 O) Redis는 주 노드(Primary Node)와 복제 노드(Replica Node)로 구성하는게 일반적이며, 이런 구성을 shard로 여러번 준비해 Data Partiotioning을 수행하는 것이 Cluster Mode이다. Redis의 쓰임새에 맞게 위 구성 중 하나를 선택해야 한다. 선택의 기준은 최종 애플리케이션의 신뢰성, 사용성, 확장성에 기인한다. 주 노드에 문제 발생 → Replica Node 사용 → 복제 지연으로 인해 일부 데이터의 손실 가능 특정 가용 영역에 문제 발생 → M..
![[네트워킹] 웹소켓(WebSocket)](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb8rEZF%2Fbtst86YJKX8%2FXVoktQNS7YPkGsvT9GVnk1%2Fimg.png)
웹 소켓이란 ? 클라이언트(사용자의 브라우저)와 서버 사이에 socket connection을 유지해서 언제든 양방향 통신 또는 데이터 전송이 가능하도록 하는 기술이다. Real-time application 구현을 위해 널리 사용된다. (SNS app, LoL 같은 멀티플레이어 게임, 구글 Doc, 증권거래, 화상채팅 등) 웹 소켓 사용 이유 http 프로토콜에서는 클라이언트가 서버에서 데이터를 받기 위해 초단위로 빠른 렌더링이 필요했다. 사용자 입장에서는 화면이 매번 새로고침되는 느낌을 받아 UX에 대한 만족이 낮아지게 된다. WebSocket을 사용하면 주기적으로 렌더링하지 않아도 실시간으로 서버와 양방향 통신이 가능하다. 웹 어플리케이션의 기존 통신은 대부분 HTTP를 통해 이루어졌으며 HTTP는..
CDN이란 ? Content Delivery Network의 약자인 CDN은 지리적 제약 없이 전 세계 사용자에게 빠르고 안전하게 콘텐츠를 전송할 수 있는 콘텐츠 전송 기술을 의미한다. 넷플릭스, 왓챠, 유튜브, 틱톡 등 콘텐츠 홍수 속에서 전례 없는 호황기를 맞은 OTT 서비스 및 AI, IoT, 자율 주행 등 대용량의 데이터를 주고받는 신기술이 등장하고 있다. 이렇게 폭발적으로 증가한 데이터를 지연 없이 처리하기 위해서는 데이터를 분산해서 전달하는 기술이 필수적이다. CDN은 서버와 사용자 사이의 물리적인 거리를 줄여 콘텐츠 로딩에 소요되는 시간을 최소화한다. CDN은 각 지역에 캐시 서버(PoP, Points of presence)를 분산 배치해, 근접한 사용자의 요청에 원본 서버가 아닌 캐시 서버..