전체 글 137

CodePipeline ECR Rolling Update를 위한 TaskDefinition Update Lambda 코드

CodePipelin 구성 시, 빌드과정 없이 ECR -> ECS 에 바로 배포한다면 TaskDefinition 파일을 업데이트 해줘야 한다. 그러자고 Codebuild를 쓰자니, 파일 만드는데 몇초면 끝나는데, 비용도 비용이고 codebuild는 무겁다 ㅠ (이거 돌리는데 4분걸린다..) lambda로 하면 30초면 끝나니 이렇게 해보는것을 추천한다. =========================================== Source ------> Def-Step ------> ECS (rolling update) [ECR] [Lambda] =========================================== import json import boto3 import zipfile imp..

[Aurora Postgresql] Max_connections

aurora postgresql max_connections AuroraPostgresql의 경우 인스턴스의 메모리를 기준으로 max_connections 를 할당합니다. (파라메터에서 수정 가능) 계산식: DBInstanceClassMemory/9531392 예) 인스턴스의 메모리가 4GiB인 경우, 4*1024*1024*1024/9531392 = 450 쿼리문: select * from pg_settings where name = 'max_connections'; 계산식하고 쿼리문으로 나온 값하고 차이가 있는데, 이것은 이진수때문이리라.. 인스턴스 타입 vcpu 메모리 계산식-커넥션수 쿼리문-커넥션수 db.t3.medium 2 4 450 405 db.t3.lage 2 8 901 844 db.r6i.l..

[CodePipeline] ECR을 소스로 해서 CodeDeploy로 ECS 배포하기

안녕하세요 :) 오래간만의 포스팅입니다. 오늘은 ECR에 이미지가 Push 되면, ECS서비스 배포 방식(blue/green, rolling)에 따라 ECS에 배포하는 방법을 작성합니다. 그냥, ECR 레포지토리에 latest 태그를 가진 도커이미지가 push 되면, 바로 배포되게끔... 구성합니다. AWS 공식 문서는 여기를 참조할 수 있으며, ECS 서비스가 이미 구성 되어있다고 가정합니다. 📌 아키텍쳐 📌 Step 1) CodeCommit 구성 codecommit이 아니어도 괜찮습니다. Github, Bitbucket도 가능합니다. 코드커밋 리포지토리를 생성합니다. 블루/그린 배포를 사용할 경우 appspec.yaml, taskdef.json 두개의 파일이 필요합니다. 롤링 배포를 사용할 경우 im..

CI/CD 공부 노트 #2

https://www.youtube.com/watch?v=3WZoVkvLE4A 3. 개발환경 및 CI/CD의 기본 동작 이해 개발 환경의 종류 개발자의 로컬 환경 통합테스트 QA환경 실유저 프로덕션 개발 프로세스 개발자가 자신의 PC에서 개발을 진행한다. 다른 개발자가 작성한 코드와 차이가 발생하지 않는지 내부 테스트를 진행한다. 진행한 내용을 다른 개발자들과 동유하기 위해 git 같은 SCM에 올린다 -> dev 브랜치 Dev브랜치의 내용을 개발 환경에 배포하기 전에 Lint등 코드 포멧팅을 한다 배포하기 위한 빌드 과정을 거친다 코드를 배포한다 테스트를 진행한다 위 과정을 Dev, QA, PRD환경에서 모두 하고 각각 맞는 환경에 배포한다. 여러 배포환경의 관리 여러 배포환경의 관리에서 핵심은 인프라..

CI/CD 공부 노트 #1

https://www.youtube.com/watch?v=JPDKLgX5bRg&t=24s 1. CI/CD란 무엇인가? Continuous Integration : 여러 개발자들의 코드베이스를 계속해서 통합하는것 Continuous Delivery : 사용자에게 제품/서비스를 지속적으로 제공, 코드베이스가 항상 배포 가능한 상태를 유지하는것 Continuous Deployment : 코드베이스를 사용자가 사용가능한 환경에 배포한느것을 자동화 하는것 즉, 코드 빌드&테스트&배포 자동화! 각 단계를 하나의 파이프라인으로 정의 코드 작성 빌드: webpack, 타입스크립트 컴파일, 자바스크립트 컴파일 테스트: Jest, Junit 배포: ... 2. 젠킨스의 기본 개념과 동작 방식 젠킨스가 뭐야? 귀찮은 작업(..

[k8s] 학습노트 #2 쿠버네티스 알아보기

초보를 위한 쿠버네티스 안내서를 보고 학습한 내용을 정리했습니다. 설명 진짜 짱짱👍 # 쿠버네티스 구성/설계 (Architecture) 👉 발음정리 용어 발음 master 마스터 node 노드 k8s 쿠버네티스, 케이에잇츠, 케이팔에스 kubectl 큐브컨트롤, 큐브시티엘, 큐브커들 etcd 엣지디, 엣시디, 이티시디 pod 팟, 파드, 포드 istio 이스티오 helm 헬름, 핾(ㅋㅋ🤣), 햄 knacive 케이네이티브 👉 쿠버네티스란? (Kubernetes = k8s = kube) - 컨테이너화된 애플리케이션을 자동으로 배포, 스케일링 및 관리 -> 사람이 직접 하던 작업을 자동화 함 - 컨테이너를 쉽게 관리하고 연결하기 위해 논리적인 단위로 그룹화 -> Pod, Node, Replica set, N..

카테고리 없음 2022.02.26

[k8s] 학습노트 #1 쿠버네티스 시작하기

초보를 위한 쿠버네티스 안내서를 보고 학습한 내용을 정리했습니다. 설명 진짜 짱짱👍 ​# 학습 목표 구성요소를 이해하고, 동작 원리를 파악하고, 기본적인 사용을 익혀보자! # 컨테이너 오케스트레이션이란? 복잡한 컨테이너 환경을 효과적으로 관리하기 위한 도구 # 컨테이너 오케스트레이션이 제공하는 기능 1. Cluster: 중앙제어, 네트워킹 2. State: 상태관리 3. Scheduling: 배포관리 4. Roll out & Roll back : 배포 버전관리 5. Service Discovery: 서비스 등록 및 조회 6. volume: 볼륨 스토리지 # 컨테이너 오케스트레이션 종류 엄청 많다...! DEIS, RANCHAR, MESOS, NOMAD, SWARM, K8s # 그중에서도 왜? 쿠버네티스인..

k8s 빠르게 설치하기

이번 포스팅은 단일노드에 쿠버네티스를 설치합니다. 참고 * 설치 OS: centos-release-7-9.2009.1.el7.centos.x86_64 1. kube 설치 아래의 순서에 따라 명령어를 쭉 입력해줍니다. 하나라도 빠트리면 kubeadm init에 오류가 나오기 때문에 빠트리는 것 없이 잘 따라오세요!🥲 # 런타임 docker 설치 sudo yum install -y yum-utils device-mapper-persistent-data lvm2 sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo sudo yum update -y && sudo yum install -y contain..

[k8s] ERROR - The connection to server was refused

정말 오래간만에 쿠버네티스 공부하는데... 아주 오래간만이라 또 오만가지 오류 시작입니다 🥲.... 삶이란..삶은...달걀이다... 오류를 살펴봅시다. [root@ip-10-77-110-113 docker]# kubectl run myapp --image=myapp-image --port=8080 The connection to the server localhost:8080 was refused - did you specify the right host or port? 이 오류는 저는 이렇게 해결했습니다. 1) kube init 명령어를 사용해서 kubectl 초기 설정을 해봅시다. 애초에 kubectl 명령어는 마스터 노드에서만 사용할 수 있으니까요.! kubeadm init 2) 설정파일을 옮겨줍시다..

728x90