일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 프론트엔드
- 웹
- VUE
- 블록체인
- 쿠버네티스
- 솔리디티
- next.js
- TypeScript
- 컴퓨터공학
- kubernetes
- 이슈
- BFS
- AWS
- CSS
- 클라우드
- docker
- 파이썬
- HTML
- 백엔드
- 타입스크립트
- 백준
- es6
- 이더리움
- react
- 알고리즘
- 자바스크립트
- k8s
- JavaScript
- 가상화
- 리액트
- Today
- Total
목록📖 ☁️ 클라우드 (28)
즐겁게, 코드
1. IAM 기초 IAM : Identity and Access Management, 리전이 구분되지 않는 글로벌 서비스 AWS에 가입하면 루트 계정이 생성되는데, 루트 계정은 계정을 생성할 때만 사용되어야 한다. 사용자 는 조직 에 속하며, 하나 이상의 그룹에 속할 수 있다. 그룹에는 사용자만 속할 수 있으며, 하위 그룹은 존재할 수 없다. 그룹을 분리하는 이유는 *정책 때문이다. (*정책 = 사용자의 권한을 정의하기 위한 JSON 문서) Least Privilege Principle : 필요로 하는 정책 이상으로 부여하면 안된다. 2. IAM 정책 상속 사용자가 그룹에 속하면 그룹이 갖는 정책(= 권한)을 상속받게 된다. 사용가 그룹에 속하지 않아도 inline 정책을 적용해 사용자 개별적으로 정책을..
바쁘다는 핑계로 지식을 정리하는 일에 너무 소홀했던 것 같아요 😅 퇴사 후 여유가 생기면서 서버리스 이제는 AWS Lambda로 간다 라는 책을 1/3 정도 읽을 수 있었는데요, 이번 글에서는 새로 배운 내용과 느낀 점을 간단히 적어보고, 새로운 람다 함수를 함께 배포해보도록 하겠습니다. 서버리스 프레임워크 혹시 IaC (Infrastructure as a code) 에 대해 들어 보셨나요? 요즘은 퍼블릭 클라우드 인프라를 Ansible, CloudFormation, Terraform 등의 IaC 툴을 통해 관리하는 것 같은데요, IaC를 활용하면 개발자가 GUI나 CLI 콘솔을 매번 입력할 필요 없이 코드나 설정 파일을 통해 인프라를 관리할 수 있게 됩니다. 예시 : 주어진 조건대로 EC2 인스턴스를..
@kubernetes/client-node 라이브러리를 통해 웹 콘솔로 쿠버네티스를 제어할 수 있는 프로젝트를 계획중이었는데, 약 일주일간의 데모 스크럼 이후 결과적으로 불가능에 가깝다는 결론을 내리게 되어 이번 글에서 그 이유를 정리해보려 합니다. 프로젝트 기획 배경 쿠버네티스의 학습 난이도와 더불어 개인적으로는 쿠버네티스를 GUI로 지원하는 툴이 아직 많이 부족하다고 느꼈습니다. 또한 공식 쿠버네티스 대시보드와 lens 역시 리소스의 조회만을 지원하고, 생성은 불가능한 것으로 파악해 CRUD를 모두 지원하는 어플리케이션은 충분히 수요가 있을 것이라 생각했습니다. @kubernetes/client-node @kubernetes/client-node 라이브러리는 쿠버네티스에서 제공하는 공식 SDK로, 쿠..
쿠버네티스에서는 노드가 드레인되거나 노드의 가용 자원이 부족한 등의 이유로 파드가 종료되는 일이 비일비재한데요, 이 때 마치 두꺼비집을 내리는 것처럼 한순간에 모든 프로세스를 종료한다면 중요한 데이터나 네트워크 연결이 그대로 유실될 위험이 존재합니다. 이번 글에서는 사용자에게 미칠 영향과 복구 소요를 최소화하기 위한 컨테이너의 정상 종료(Graceful Termination) 방법을 소개합니다. TL;DR 파드 종료 시 kubelet에서 SIGTERM 신호를 송출하고, 컨테이너는 SIGKILL를 수신할 때까지 정상 종료를 위해 대기한다. (컨테이너 종료 시작 - SIGTERM 수신 - 정상 종료 동작 - SIGKILL 수신 - 컨테이너 강제 종료) 컨테이너에서 SIGTERM 신호를 수신하지 못하는 경우를..
AWS에서는 대상의 상태를 확인하기 위해 Route53이나 ELB가 제공하는 상태 검사(Health Check) 를 활용할 수 있었는데요, 쿠버네티스에서는 이와 유사한 "프로브" 라는 기능을 통해 상태 검사를 수행할 수 있습니다. 이번 글에서는 컨테이너의 상태를 검사할 수 있는 3가지 프로브를 정리해보고자 합니다. Liveness Probe Liveness Probe는 컨테이너가 동작 중인지를 검사하는 역할로, 컨테이너 상에서 특정 동작을 수행하거나 엔드포인트로 네트워크 요청을 보냄으로써 해당 컨테이너가 정상적으로 기동중인지를 검사합니다. HTTP 요청을 통해 상태를 검사하는 예시 (httpGet 사용) livenessProbe: httpGet: path: / port: 80 initialDelaySec..
쿠버네티스에서 파드 내 컨테이너의 이미지 이름만 알아내고 싶었던 경우가 있었습니다. 이를 위해 --ouput 플래그를 활용해 결과값을 json 또는 yaml로 포맷팅해 상세 정보를 확인할 수도 있지만, 대부분의 템플릿은 너무나도 방대한 양의 정보를 담고 있어 원하는 정보를 찾기 쉽지 않습니다. 디플로이먼트를 yaml 포맷으로 출력할 경우 apiVersion: apps/v1 kind: Deployment metadata: ... spec ... template: metadata: creationTimestamp: null labels: app: first-app spec: # 약 50줄 가까이의 yaml 템플릿 안에서 찾는 내용을 발견해야 합니다. containers: - image: spacesangso..
CLI 환경에서 쿠버네티스를 조작하다 보면 불편한 점이 종종 생기는데요, 오늘은 쿠버네티스를 조금이라도 더 간편하게 사용하기 위한 방법들을 소개해보려 합니다. 리소스 이름 축약어 사용하기 리소스 이름은 축약어를 사용할 수 있습니다. 자주 사용되는 리소스 축약어 목록 node → no pod → po deployment → deploy service → svc namespace → ns configmap → cm 추가적으로 필요한 리소스들의 축약어 목록은 공식 문서 - 리소스 타입 에서도 확인해볼 수 있습니다. 커맨드 앨리어스 지정하기 kubectl 커맨드를 매번 입력하는 대신 .zshrc 또는 .bash_profile 등의 에디터 설정 파일에서 앨리어스를 지정하면 보다 편하게 커맨드를 작성할 수 있습니다..