티스토리

Adım Kim
검색하기

블로그 홈

Adım Kim

adimkim900.tistory.com/m

Adım Kim 님의 블로그입니다.

구독자
0
방명록 방문하기

주요 글 목록

  • AWS) 관계형 데이터베이스 서비스 - RDS 설정해보기 실습 환경 : AWS Console (2022/11) 실습 목적 : 아마존 관계형 데이터베이스 서비스 RDS 를 구성해본다. RDS (Relational Database Service) 란? 클라우드에서 관계형 데이터베이스를 간편하게 설치, 운영 및 확장할 수 있는 서비스 Aurora, MySQL, MariaDB, PostgreSQL, Oracle, SQL Server와 같은 6개의 데이터 베이스 엔진을 제공한다. 즉, 기존에 사용하던 데이터 베이스를 RDS에서 사용할 수 있다. 다중 AZ 배포 옵션을 사용하면 다른 가용영역 (Availability Zone, AZ) 의 예비 인스턴스에 기본 DB의 복사본을 생성하고 RDS에 내장된 자동 장애 조치기능과 고가용성으로 치명적인 상황을 미연에 방지할 수 있다.. 공감수 1 댓글수 0 2022. 11. 21.
  • Cloud) On-premise와 Cloud On-premise와 Cloud On-premise 환경 물리적환경에서 직접 인프라를 구축하는방식 클라우드 기술이 나오기 전에 주로 사용하던 인프라 구축방식 Cloud 환경 Cloud Service 제공 업체의 H/W, S/W 환경을 빌려 사용하는 방식 On-premise 와 Cloud 비교 구분 On-premise Cloud 초기 도입 비용 초기 구축시 많은 비용예산 소모 사용한 만큼 요금 지불 인력 운영비 시스템 엔지니어 업무 증대 시스템 엔지니어 업무 감소 활용성/효율성 최대용량을 산정한 설계가 이루어져 자원낭비 요소가 있음 운영에따라 서버 시스템을 증설할 수 있음 구축기간 장비 수급과 기타 인프라 조건에 의해 구축기간이 길어질 수 있다. 1일내 시스템 변경 및 구축이 가능하다 확장성/민첩성 클라우.. 공감수 0 댓글수 0 2022. 11. 21.
  • Kubernetes) Ingress 학습 목표 : 4계층에서 사용되는 Service와 다르게 7계층에서 사용되는 Ingress를 알아본다. Ingress 란? 클러스터 외부에서 내부로 접근하는 요청들을 어떻게 처리할지 정의해둔 규칙모음. 클러스터 외부에서 접근할 URL, 트래픽 로드밸런싱, SSL 인증서 처리, 도메인 기반 가상 호스팅 등 규칙들을 제공한다. Ingress는 Deployment와 Service에 접근하기 위한 일종의 Gateway같은 역할을 담당한다. # ingress.yaml apiVersion: extensions/v1beta1 kind: Ingress metadata: name: my-ingress spec: backend: serviceName: other servicePort: 8080 rules: - host: .. 공감수 0 댓글수 0 2022. 10. 30.
  • Kubernetes) Service Object 학습 목표 : 클러스터 내부의 Pod가 외부와 통신하기 위한 Service의 유형을 알아본다. Service 란? 클러스터 안에서 동적으로 변하는 Pod들을 고정적으로 사용하기 위한 방법으로 k8s의 Service를 사용한다. Service는 클러스터 안의 Pod를 고정 주소를 주어, 외부 네트워크와 통신할 수 있도록 하는 진입점 부여 역할을 한다. Service를 정의하고 생성할 때는 .spec.ports 속성 아래에 연결하고자 하는 항목별로 2개씩 Port지정 가능하다. # service.yaml apiVersion: v1 kind: Service metadata: name: my-service spec: type: ClusterIP # 서비스 타입 설정 clusterIP : 10.0.10.10 # .. 공감수 0 댓글수 0 2022. 10. 30.
  • Kubernetes) Kubernetes Deployment 학습 목표 : k8s의 Replicaset 를 관리하기 위한 Deployment 에대해 알아본다. Deployment 란? ReplicaSet을 관리하며 앱 배포에 특화되어있다. Pod 실행 개수를 유지시키는것 뿐만 아니라, Rolling Update나 Rollback 등 유용한 기능을 가지고 있다. Deployment 사용 예 apiVersion: apps/v1 kind: Deployment metadata: name: deployment-nginx labels: app: deployment-nginx spec: replicas: 3 # pod 실행개수 지정, ReplicaSet과 마찬가지로 .spec.replicas 필드에 지정 selector: matchLabels: app: nginx-pods #.. 공감수 0 댓글수 0 2022. 10. 27.
  • Kubernetes) Application 배포 학습 목표 : 몇가지 Application 배포 방식에 대해 알아본다. Application 배포(Update) 방식 기본적인 Application 배포는 Application을 중단하고 업데이트를 진행하여 서비스가 중단되는 시점(downtime)이 생긴다. downtime을 극복하기위한 무중단 배포방식이 사용된다. Rolling Update (Rolling 배포) - 무중단 방식의 가장 기본적인 방식으로 사용중인 인스턴스 내에서 새버전을 점진적으로 교체한다. - 장점 - 인스턴스마다 차례로 배포를 진행하여 상황에따라 쉽게 Rollback이 가능하다. - 추가적인 인스턴스를 늘리지 않아도 되고 간편하게 관리가 가능하다. - 단점 - 사용중인 인스턴스에 트래픽이 몰릴 수 있다. - 배포중에 신버전과 구버전.. 공감수 0 댓글수 0 2022. 10. 24.
  • Kubernetes) Kubernetes ReplicaSet 학습 목표 : k8s의 서비스가 지속되도록하는 ReplicaSet에 대해 알아본다. ReplicaSet 이란? 쿠버네티스 프로젝트 초기부터 있던 Replication Controller의 발전형 정해진 개수의 pod가 항상 실행상태가 되도록 관리한다. 노드나 pod에 이상이생겨 사용할수 없을 때, 동일 cluster안의 다른 노드의 pod를 생성하고 실행한다. YAML 파일을 통해 사용자가 요구하는 상태가 되도록 pod를 관리할 수 있다. ReplicaSet 사용해보기 replicaset 설정 (replicaset-nginx.yaml) apiVersion: apps/v1 kind: ReplicaSet metadata: name: replicaset-nginx # name - replicaset 이름 설정.. 공감수 0 댓글수 0 2022. 10. 21.
  • Kubernetes) AWS 기반 쿠버네티스 H.A 구축 프로젝트 2편 실습 환경 : AWS console (2022/10), Visual Studio Code 실습 목적 : stacked etcd 방식의 고가용성(HA) 쿠버네티스 클러스터를 구성해본다. 참고1 : kubectl 자동완성 설정 source > ~/.bashrc 5. MasterNode2, MasterNode3 제거하기 # 버전 업그레이드 전에 노드를 2개만 남겨두고 하기 위해 제거 (실습을 위한 제거) # 필요할 때 클러스터에 연결된 노드를 제거하는 방법으로 사용할 수 있다. (1) Taint 해제 kubectl taint node --all node-role.kubernetes.io/master- kubectl taint node --all node-role.kubernetes.io/contorl-plan.. 공감수 1 댓글수 1 2022. 10. 18.
  • Kubernetes) AWS 기반 쿠버네티스 H.A 구축 프로젝트 1편 실습 환경 : AWS console (2022/10), Visual Studio Code 실습 목적 : stacked etcd 방식의 고가용성(HA) 쿠버네티스 클러스터를 구성해본다. 1. 템플릿 생성과 Node 생성 (1) 템플릿 생성하기 - AWS Ec2메뉴 인스턴스 > 시작 템플릿, 시작 템플릭 생성 버튼 클릭 # 1. 시작 템플릿 이름/설명 설정하기 # 2. 애플리케이션 및 OS 이미지에서 Ubuntu, Ubuntu Server 20.04LTS 선택 # 3. 인스턴스 유형은 t3.large, 키페어는 기존 키페어를 사용 # 4. 서브넷은 기존 서브넷 사용, 연습용으로 모든 트래픽을 허용하는 보안그룹 생성 # 5. 리소스 태그에 Name 태그 추가 (2) Masternode 생성하기 - 인스턴스 >.. 공감수 4 댓글수 0 2022. 10. 18.
  • Kubernetes) Kubernetes Volume 학습 목표 : k8s의 volume이 어떻게 사용되는지 알아본다. Kubernetes 에서 Volume 이란? Volume은 Pod의 일부분으로 정의되는 요소로서 Pod와 동일한 생명주기를 갖는다. Volume은 독립적인 리소스가 아니므로 자체적으로 생성/삭제할 수 없다. Pod에 여러개의 container를 갖는 경우 모든 container가 Volume을 공유할 수 있다. Volume은 Pod의 모든 container에서 사용 가능하며 사용시 container에서 mount해야 사용할 수 있다. 각 container 파일 시스템의 어느 경로에도 mount 할 수 있다. Volume 유형 emptyDir : 일시적인 데이터를 저장할 때 사용하는 빈 디렉토리 hostPath : 워커 노드의 파일 시스템을.. 공감수 0 댓글수 0 2022. 10. 13.
  • Kubernetes) Kubernetes Pod 학습 목표 : k8s의 pod 특징과 생명주기, 생성방법을 알아본다. Pod 란? Pod는 kubernetes에서 하나의 독립적인 서비스를 제공할 수 있는 container 들을 모아서 관리하는 최소 배포단위다. Pod 단위로 container의 작성, 시작, 정지, 삭제 등과 같은 조작을 수행한다. Pod 의 특징 동일한 Pod의 container는 반드시 동일한 node상에서 동시에 deploy된다. Pod 안에서 container의 Port는 중복될 수 없다. Pod안의 여러 container에서 가상 NIC(Private IP)를 공유하는 구성을 취하기 때문에 container 끼리 localhost를 경유하여 통신할 수 있다. Pod가 생성될 때 고유 IP가 할당되며 cluster 내에서만 접근.. 공감수 0 댓글수 0 2022. 10. 13.
  • Kubernetes) Kubernetes namespace 알아보기 학습 목표 : kubernetes namespace사용하기위해 Kubernetes Object를 알아보고 namespace를 생성해본다. Kubernetes Object 란? Kubernetes는 Object(Resource)와 Object를 관리하는 Controller로 나뉜다. Object는 Kubernetes 시스템에서 영속성을 갖는다. Object를 생성하면 Kubernetes 시스템은 개발자/운영자가 원하는 상태를 보장하기위해 지속적으로 동작한다. Object는 cluster 상태를 나타내기위해 사용한다. Controller는 status와 spec이 일치하도록 Object를 관리한다. status : Kubernetes 시스템과 component에 의해 제공되고 업데이트된 Object의 현재상.. 공감수 0 댓글수 0 2022. 10. 12.
  • Kubernetes) kubectl 명령어를 알아보기 학습 목표 : kubernetes의 cluster를 사용하기위한 kubectl명령어에 대해 알아본다. kubctl 이란? Kubernetes 상태를 확인하고 원하는 상태로 요청하는 client 명령 Kubernetes cluster에 명령을 내린다. CLI 형태로 사용한다. kubeconfig 파일 kubectl 명령 동작시 $HOME/.kube 디렉토리에서 config file을 찾는다. KUBECONFIG 환경변수를 설정하거나 --kubeconfig flag를 사용하여 다른 kubeconfig 파일을 사용할 수 있다. kubectl 명령어 kubectl [command] [Type] [NAME] [flags] (1) command - 하나 이상의 리소스(object)에서 수행하려는 동작지점 - cre.. 공감수 1 댓글수 0 2022. 10. 12.
  • Kubernetes) Kubernetes cluster 이해 학습 목표 : kubernetes의 cluster 구성요소와 Kubernetes 동작에대해 알아본다. cluster 구성요소 Master node (Control plane) 대규모 container를 운영하기위해 worker node의 가용리소스 현황을 고려하여, 최적의 container 배치 및 모니터링을하고 container에 대한 효율적인 추적관리를 수행한다. Master node가 수행하는 container 및 worker node관리는 Control Plane Component를 통해 수행한다. Worker node 각기 다른 목적과 기능으로 세분화된 컨테이너들이 실제로 배치되는 노드 각 node에서 Pod와 container를 구동시키고 관리하기위해 Node Component가 필요하다. C.. 공감수 0 댓글수 0 2022. 10. 11.
  • Kubernetes) KubeAdm 으로 Kubernetes 구성해보기 2편 실습 환경 : AWS console (2022/10), Visual Studio Code 실습 목적 : kubeadm을 이용하여 Kubernetes 환경을 구성해본다. KubeAdm을 이용하여 Kubernetes 환경구성하기 (Docker) kubeadm, kubectl, kubelet 설치 # kubeadm : 클러스터를 부트스트랩 하는 명령 # kubectl : 클러스터와 통신하기 위한 CLI # kubelet : 클러스터의 모든 머신에서 실행되는 Pod와 Container 시작과 같은 작업을 수행하는 component 1. 쿠버네티스 apt repository를 사용하는데 필요한 패키지 설치 sudo apt-get update sudo apt-get install -y apt-transport-ht.. 공감수 6 댓글수 0 2022. 10. 8.
  • Kubernetes) KubeAdm 으로 Kubernetes 구성해보기 1편 실습 환경 : AWS console (2022/10), Visual Studio Code 실습 목적 : kubeadm을 이용하여 Kubernetes 환경을 구성해본다. KubeAdm을 이용하여 Kubernetes 환경구성하기 Master node(Control plane) 서버 생성 (1) Master node 생생하기 # 설정사항 1. 이름 및 태그 - K8s-master 2. 애플리케이션 및 OS 이미지 - Quick Start, Ubuntu 선택 3. 인스턴스 유형 - t2.medium (2vCPU, 4GiB 메모리) 4. 키페어 - 기존 사용중인 키페어 선택 5. 네트워크 설정 VPC - 기존에 사용중인 VPC 선택 퍼블릭 IP 자동할당 - 활성화 방화벽 - 기존 보안 그룹 선택 > ssh 관련 .. 공감수 1 댓글수 0 2022. 10. 7.
  • Kubernetes) CNI 란? 학습 목표 : CNI에대해 알아본다. CNI 란? CNCF 에서 관리되는 프로젝트 CNI는 container가 네트워크 플러그인을 실행하기 위한 공통의 인터페이스 규칙이다. 컨테이너의 네트워크를 연결한다. 컨테이너 삭제시 할당된 자원을 제거한다. 다양한 형태의 container runtime과 orchestration 사이의 네트워크 계층을 구현한다. Kubernetes에서는 포드간 통신을 위해 사용한다. CNI는 Calico, Weavent, AWS CNI등 다양한 종류가 있다. docker0 브릿지 인터페이스를 통해 container간 통신을 하려 하지만 두 컨테이너의 IP가 동일해서 문제가 발생 CNI가 브릿지 인터페이스를 생성해 container 네트워크 대역대를 나누어 라우팅 테이블을 생성한다... 공감수 0 댓글수 0 2022. 10. 7.
  • Kubernetes) CRI-O 란? 학습 목표 : CRI-O를 알아보기위해 CRI의 배경과 OCI에 대해 알아본다. CRI (container Run-time Initiative) 배경 Kubernetes는 Docker를 기반으로 구성되어있다. Kubelet이 명령을 받으면, Docker runtime을 통해 container를 생성하거나 시작하는 생명주기 관리구조를 갖는다. Docker 이외의 다양한 container 기술을 적용한 Kubernetes구조는 다양한 container runtime을 지원한다. 그에따라kubele의 코드를 수정하는 문제가 발생하곤 한다. CRI는 해당 문제를 개선하기위해 kubelet 수정없이 다양한 container를 지원하는 kubernetes 구조를 제공하는 통일된 인터페이스 스펙이다. OCI (Ope.. 공감수 0 댓글수 0 2022. 10. 7.
  • Kubernetes) Kubernetes 환경구성 Kubernetes 환경구성요소 마스터노드 CRI (Container Run-time Initiative) Kubeadm Kubectl Kubelet CNI (Container Network Interface) 워커노드 Kubelet Kubernetes 환경구성 종류 KubeAdm Kubernetes에서 제공하는 클러스터 생성/관리 도구 KubeSpray Kubernetes 클러스털르 배포하는 오픈소스 다양한 형식으로 Kubernetes 클러스터 구성가능 on-premise에서 상용서비스 클러스터 운영시 유용함 다양한 CNI를 제공한다. MiniKube Local 시스템에 설치가 가능하며, 설치가 간단하고 Kubernetes가 제공하는 기능을 사용가능하다. 개발 도구와 연계가 가능하다. 단일노드(워커노드.. 공감수 3 댓글수 0 2022. 10. 7.
  • Kubernetes) Kubernetes 개요 Application Archetecture Monolithic Architecture application 전체가 하나의 운영체제 프로세스로 실행된다. 하나의 객체로 개발, 배포, 관리를 담당한다. 하나의 변경 사항을 적용하기 위해 전체를 다시 빌드/테스트/배포 해야한다. Microservice Architecture 각 micro service는 독립적인 프로세스로 실행되며 API로 다른 miocro service와 통신한다. 새로 추가되거나 변경 사항이 발생하면, 해당 서비스만 빠르게 빌드/테스트/배포 할 수 있다. resource가 더 필요한 서비스만 별도 확장 가능하다. Microservice Architecture의 구성요소는 독립적인 방식으로 개발한다. 각 기능이 micro service 단.. 공감수 0 댓글수 0 2022. 10. 7.
  • Docker) Amazon ECR 실습해보기 실습 환경 : AWS console (2022/10), Visual Studio Code 실습 목적 : Amazon ECR (Elastic Container Registry)를 사용해본다. Amazon ECR 이란? Amazon ECR ( Elastic Container Registry) AWS 완전 관리형 컨테이너 이미지 레지스트리 서비스 구성 요소로 레지스트리, 사용자권한토큰, Repository, Repository 정책, 이미지가 있다. Amazon ECR 실습해보기 1. AWS CLI 사용자 등록 - AWS CLI 설치 ubuntu -sudo apt install awscli - aws configure 명령으로 AWS CLI 자격증명 등록 aws configure - AWS IAM 서비스에서 .. 공감수 0 댓글수 0 2022. 10. 6.
  • Docker) Docker Hub Registry 실습해보기 실습 환경 : AWS console (2022/10), Visual Studio Code 실습 목적 : docker hub의 registry를 사용해본다. Docker Hub Registry 실습해보기 1. hub.docker.com 에서 repository 생성 - 기본적으로 hub.docker.com에 가입하면 사용자ID명의 repository가 생성되어있다. - create repository를 선택하여 repository를 생성할 수 있다. 2. repository에 저장할 image 생성 docker tag calc-httpd:0.2 khsouh/calc-httpd:0.2 # docker tag : : 3. docker hub 로그인 - docker login 명령 후, DockerHub Use.. 공감수 1 댓글수 0 2022. 10. 6.
  • Docker) Docker Compose 실습해보기 실습 환경 : AWS console (2022/10), Visual Studio Code 실습 목적 : Docker Compose의 실행 절차를 알아보고 명령을 실습해본다. Docker Compose 작업 절차 각각의 image 생성을 위한 Dockerfile 작성 Docker Compose에서 사용할 YAML파일 작성 Docker Compose 명령을 이용하여 container 생성 Docker Compose 명령으로 container 삭제 Docker Compose 명령어 1. Docker Compose 버전확인 (version) docker compose version 2. docker compose로 container 생성 (up) - docker compose로 생성되는 service netwo.. 공감수 0 댓글수 0 2022. 10. 6.
  • Docker) Docker Compose 알아보기 container orchestration 배경 기존 Docker를 이용한 Application 배포방식은 하나의 container를 생성하는 경우에 큰 문제는없다. 하지만 서로 연관된 여러 container로 서비스를 제공하는 경우, container의 생성순서 나 연관 관계를 처리하기 위해서 container orchestration 도구(Docker Compose, Kubernetes 등)를 필요로 한다. Docker Compose 란? 공통성을 갖는 container application stack을 YAML 코드로 정의한 정의서이며, 정의서를 실행하는 다중 container 실행 도구를 IaC도구라고 한다. 공통의 목적을 갖는 application stack을 Docker Compose YAML.. 공감수 0 댓글수 0 2022. 10. 6.
  • Docker) Docker Network 실습해보기 실습 환경 : AWS console (2022/10), Visual Studio Code 실습 목적 : Docker Network의 명령어와 bridge, host, none network을 실습해본다. Docker Network 명령어 1. Docker Network 목록 (ls) docker network ls 2. Docker Network 생성 (create) - -d 옵션을 지정하지 않으면 default 상태인 bridge network로 설정된다. docker network create -d bridge my-net docker network create my-net2 3. Docker Network 삭제 (rm) docker network rm my-net my-net2 4. Docker N.. 공감수 2 댓글수 0 2022. 10. 6.
  • Docker) Docker Network 알아보기 Docker Network docker container 및 서비스는 Docker Network를 통해 격리된 container간 network연결뿐만 아니라 Docker 외의 다른 application 워크로드와도 연결 가능하다. Docker Network의 하위 시스템 연결을 위해 Docker Network Driver를 사용하여 상호통신한다. 가상 이더넷 브리지(virtual ethernet bridge) 네트워크인 docker0가 격리된 container들과 상호간 통신을 제공한다. 기본적으로 모든 container는 docker0 브리지에 연결하여 172.17.0.0/16 CIDR 범위로 IP주소를 할당한다. Network Interface docker0 Docker 설치시 기본적으로 제공되는 .. 공감수 1 댓글수 0 2022. 10. 5.
  • Docker) Docker Volume Nginx container 실습해보기 실습 환경 : AWS console (2022/10), Visual Studio Code 실습 목적 : Nginx container에 volume(bind mount)을 통해 log정보와 web application 정보 관리 해보기 1. volume (bind mount) 으로 사용할 디렉토리 생성 (1) web application 정보관리 디렉토리 생성 mkdir webapp-log # webapp-log 디렉토리는 container와 마운트되어 web application 정보 로그를 저장한다. (2) webapplication 저장 디렉토리 생성 mkdir calc-web # calc-web 디렉토리는 container의 web application을 저장한다. 2. container 생성 (1.. 공감수 2 댓글수 0 2022. 10. 4.
  • Docker) Docker Volume 실습해보기 실습 환경 : AWS console (2022/10), Visual Studio Code 실습 목적 : Docker Volume의 사용 방법에 대해 알아보고 실습해본다. Docker Volume Docker는 Union File System을 사용한다. 하나의 이미지로부터 여러 container를 만들수 있는 방법을 제공한다. 제공하는 서비스의 로직과 데이터는 반드시 분리되어야한다, application에서 발생한 여러가지 데이터에 영향을 주지않고 언제든 다른 container로 이전할수 있게 하여 운영자가 데이터를 안전하게 관리하고 운영할 수 있다. Docker Volume은 container에서 생성, 재사용할 수 있고 host운영체제에서 직접전근 가능하다. 보존되어야 하는 데이터를 유지하기 위한 매.. 공감수 1 댓글수 0 2022. 10. 4.
  • Docker) Dockerfile 실습해보기 실습 환경 : AWS console (2022/10), Visual Studio Code 실습 목적 : Docker Image를 생성하는 방법중, Dockerfile을 통해 conatiner를 생성 이전 게시글의 DockerFile 내용 Docker) Docker Image 생성 실습해보기 실습 환경 : AWS console (2022/10), Visual Studio Code 실습 목적 : Docker Image를 통해 conatiner를 생성 Docker Image Docker Image는 container를 생성하기 위한 목적으로 사용한다. Docker Hub를 통해 미.. adimkim900.tistory.com Dockerfile로 이미지 생성하기 Dockerfile # Dockerfile 부가.. 공감수 0 댓글수 0 2022. 10. 4.
  • Docker) Docker Image 생성 실습해보기 실습 환경 : AWS console (2022/10), Visual Studio Code 실습 목적 : Docker Image를 통해 conatiner를 생성 Docker Image Docker Image는 container를 생성하기 위한 목적으로 사용한다. Docker Hub를 통해 미리 작성된 Docker Image를 다운로드 하는것이 일반적이다. 사용자가 원하는 형태의 Image를 별도로 생성할 수 있고, 필요하다면 registry를 통해 배포할 수도 있다. Docker Image 생성하기 Dockerfile # Dockerfile은 image 생성 내용을 기술한 텍스트 파일이다. # Dockerfile을 빌드하여 image를 생성한다 # Dockerfie 주요 명령어 - FROM -- 생성하려는.. 공감수 0 댓글수 0 2022. 10. 4.
    문의안내
    • 티스토리
    • 로그인
    • 고객센터

    티스토리는 카카오에서 사랑을 담아 만듭니다.

    © Kakao Corp.