분류 전체보기 216

Kubernetes

쿠버네티스의 논리적인 구성요소로는 어떤 것들이 있고, 무슨 역할을 하나요? Pod: 역할: 쿠버네티스에서 가장 작은 배포 단위이며, 하나 이상의 컨테이너 그룹을 포함합니다. 동일한 Pod 내의 컨테이너는 동일한 호스트에서 실행되며, 네트워크 및 스토리지 리소스를 공유합니다. ReplicaSet: 역할: ReplicaSet은 여러 개의 Pod 인스턴스를 관리하는 역할을 합니다. 지정된 수의 Pod 인스턴스를 유지하고, 실패한 Pod 인스턴스를 복구하거나 확장하여 스케일링하는 등의 작업을 수행합니다. Deployment: 역할: Deployment는 애플리케이션 배포와 롤링 업데이트를 관리합니다. 원하는 상태(예: 특정 버전의 애플리케이션)를 유지하고, 빠른 롤백 및 롤아웃 기능을 제공하여 애플리케이션의 배..

AWS, 애플리케이션 설계

AWS VPC란 무엇인가요? VPC는 가상 개인 클라우드(Virtual Private Cloud)의 약자입니다. VPC는 클라우드 컴퓨팅 환경에서 프라이빗 네트워크를 구성하기 위해 사용되는 가상 네트워킹 기술입니다. 일반적으로 VPC는 공용 클라우드 제공 업체(예: Amazon Web Services의 Amazon VPC)가 제공하는 클라우드 환경에서 사용됩니다. VPC를 사용하면 사용자는 가상의 네트워크를 생성하고, IP 주소 범위, 서브넷, 라우팅 테이블 등을 정의하여 네트워크를 사용자의 요구에 맞게 구성할 수 있습니다. VPC를 사용하면 사용자는 가상 서버(인스턴스), 데이터베이스, 로드 밸런서 등을 네트워크 내에 배치하여 애플리케이션을 실행할 수 있습니다. 이 가상 서버 및 리소스는 외부에서 접근..

Linux, DevOps

Linux 리눅스 커널은 무슨 역할을 하나요? 리눅스 커널은 운영 체제의 핵심이 되는 소프트웨어입니다. 커널은 컴퓨터 하드웨어와 소프트웨어 간의 인터페이스 역할을 담당하며, 시스템 자원의 관리와 프로세스 스케줄링, 장치 드라이버 제공, 보안 등 다양한 기능을 수행합니다. 리눅스 커널은 다음과 같은 주요 기능을 수행합니다: 시스템 자원 관리: 리눅스 커널은 시스템의 메모리, 프로세서, 디스크 공간 등과 같은 자원을 효율적으로 관리합니다. 이를 통해 다중 사용자 및 다중 작업 환경에서 자원의 공정한 분배를 가능하게 합니다. 프로세스 스케줄링: 리눅스 커널은 실행할 프로세스들을 관리하고, 프로세스 스케줄링을 수행합니다. 이는 여러 프로세스가 동시에 실행될 수 있도록 하며, 우선순위와 시간 할당 등을 조절하여 ..

젠킨스 CI

https://narup.tistory.com/228 [Docker] 도커 안에 젠킨스 설치 (도커 인 도커, Docker In Docker, D in D) 1. 개요 젠킨스와 같이 CI/CD 툴을 컨테이너에 설치하고 젠킨스에서 프로젝트를 생성하고, 프로젝트에서 컨테이너를 관리하는 환경을 구축하고 싶을 때 도커 인 도커라고 불리우는 방법을 사용해 narup.tistory.com 이후 ECR로 업로드 https://velog.io/@suhongkim98/jenkins-docker-build-%ED%9B%84-amazon-ECR%EB%A1%9C-%EC%9D%B4%EB%AF%B8%EC%A7%80-%EC%97%85%EB%A1%9C%EB%93%9C%ED%95%98%EA%B8%B0 [jenkins] docker b..

Docker, 네트워크

Docker 컨테이너에 대해서 설명해 주세요. Docker 컨테이너는 다양한 운영 체제 및 프로그래밍 언어와 호환될 수 있습니다. 각 컨테이너는 필요한 모든 라이브러리, 종속성 및 실행 파일을 포함하고 있으며, 호스트 시스템과 격리되어 독립적으로 실행됩니다. 이를 통해 응용 프로그램을 여러 환경에서 일관되게 실행할 수 있으며, 이식성이 향상됩니다. Docker 컨테이너는 가상화 기술을 사용하여 격리된 환경을 제공합니다. 컨테이너는 호스트 운영 체제의 리소스를 공유하지만, 각 컨테이너는 격리되어 독립적인 파일 시스템, 네트워크 인터페이스 및 프로세스 공간을 가지고 있습니다. 이를 통해 여러 개의 컨테이너를 동시에 실행하고 각각을 관리할 수 있습니다. Docker는 컨테이너 이미지를 사용하여 컨테이너를 생성..

CS 질문

1. 데이터베이스 주 서버와 부 서버의 역할은 어떻게 다른가요? 주 서버 (Primary Server): 주 서버는 데이터베이스의 중앙 관리자 역할을 담당합니다. 주 서버는 읽기 및 쓰기 작업을 처리하고, 데이터베이스의 일관성과 무결성을 유지합니다. 주 서버는 데이터베이스의 기본 복제본을 가지며, 모든 업데이트 작업은 주 서버에서 수행됩니다. 주 서버의 장애 시 부 서버 중 하나가 새로운 주 서버로 승격될 수 있습니다. 부 서버 (Secondary Server): 부 서버는 주 서버의 복제본으로, 주 서버의 데이터를 복제하여 가지고 있습니다. 부 서버는 읽기 작업을 처리하는 데 사용될 수 있습니다. 읽기 작업은 주 서버에 영향을 주지 않고 부 서버에서 수행될 수 있으므로 성능을 향상시킵니다. 부 서버는 ..

Terraform module 사용 방법

테라폼 모듈 사용 방법 ● 테라폼 디렉터리 하위에 module로 쓰기 위한 디렉터리 생성 ● 테라폼 모듈이 위치한 경로를 상대 경로로 지정해서 이용할 수 있다. module "mission_link_db" { source = "./modules/database" } ● 테라폼 각 모듈에 있는 자원을 output로 받아와서 다른 모듈에 사용할 수 있다. # modules/vpc/outputs.tf output "vpc_id" { value = aws_vpc.mission_link_vpc.id } ● 테라폼 outputs.tf 파일에 있는 자원을 사용하기 위해 variables.tf 작성 # modules/database/variables.tf variable "vpc_id_db" { description ..

DevOps BootCamp/Iac 2023.07.04

Next.js 사용 방법 및 DynamoDB 연결

Next.js란? Next.js는 리액트를 위해 만든 오픈소스 자바스크립트 웹 프레임워크로, 리액트에는 없는 서버 사이드 렌더링 server-side rendering(SSR), 정적 사이트 생성 static site generation(SSG), 증분 정적 재생성 incremental static regeneration(ISR)과 같은 다양하고 풍부한 기능을 제공한다. express 프레임워크와 다르게 next.js는 req.method 형식을 쓰며, DynamoDB 테이블에 데이터를 넣기 위해서 put형식을 쓴다. ▶ Next.js POST 방식 import AWS from 'aws-sdk'; const docClient = new AWS.DynamoDB.DocumentClient({ region: ..

Final Project 회고

개요 새로운 프로젝트에서는 처음에 어떤 것부터 시작해야 할까? CI/CD 파이프라인에서 보면 'plan - code - build - test - release - deploy - operate - monitering' 순으로 실행된다. 일단 진행할 프로젝트에 대한 주제를 선정하는 것이 필요하다. 또한 주제에 대해서 고객의 요구사항을 반영하는 것이 필요한데, 고객의 요구사항은 대체로 불명확하므로, 구체화시키는 것이 필요하며, 진행하면서 느꼈던 점에 대해 작성해보고자 한다. 최종 ERD와 아키텍처 다이어그램 ✔︎ ERD(An Entity Relationship Diagram) ✔︎ 아키텍처 다이어그램 plan 주제 선정 일단 우리 팀은 컨테이너 기반 시스템을 이용하여 만들 주제를 생각해야 했으며, MSA를..

DevOps BootCamp 2023.06.12

부하 테스트 도구와 활용

부하 테스트 계획 부하 테스트를 진행하기 앞서, 서비스 수준 목표(SLO)를 설정하는 것이 좋습니다. 먼저 척도를 표준화하고, 다음과 같은 목표를 설정합니다. Latency에 중점을 둔 SLO 예시 GET 호출의 90%는 1ms 이내에 완료해야 합니다. GET 호출의 99%는 10ms 이내에 완료해야 합니다. GET 호출의 99.9%는 100ms 이내에 완료해야 합니다. Throughput에 중점을 둔 SLO 예시 결국 Throughput은 순간적으로 요청이 치솟는 피크(peak) 트래픽에서의 처리량을 바탕으로 합니다. 1일 기준으로 RPS를 계산하고자 할 때, 다음과 같은 시나리오를 생각해 볼 수 있습니다. DAU(Daily Active User: 1일 접속자 수): 5만 명 1명당 평균 접속 횟수: ..