Category
-
AWS) 관계형 데이터베이스 서비스 - RDS 설정해보기Cloud/AWS 2022. 11. 21. 12:07
실습 환경 : AWS Console (2022/11) 실습 목적 : 아마존 관계형 데이터베이스 서비스 RDS 를 구성해본다. RDS (Relational Database Service) 란? 클라우드에서 관계형 데이터베이스를 간편하게 설치, 운영 및 확장할 수 있는 서비스 Aurora, MySQL, MariaDB, PostgreSQL, Oracle, SQL Server와 같은 6개의 데이터 베이스 엔진을 제공한다. 즉, 기존에 사용하던 데이터 베이스를 RDS에서 사용할 수 있다. 다중 AZ 배포 옵션을 사용하면 다른 가용영역 (Availability Zone, AZ) 의 예비 인스턴스에 기본 DB의 복사본을 생성하고 RDS에 내장된 자동 장애 조치기능과 고가용성으로 치명적인 상황을 미연에 방지할 수 있다..
-
Cloud) On-premise와 CloudCloud/Cloud 2022. 11. 21. 11:37
On-premise와 Cloud On-premise 환경 물리적환경에서 직접 인프라를 구축하는방식 클라우드 기술이 나오기 전에 주로 사용하던 인프라 구축방식 Cloud 환경 Cloud Service 제공 업체의 H/W, S/W 환경을 빌려 사용하는 방식 On-premise 와 Cloud 비교 구분 On-premise Cloud 초기 도입 비용 초기 구축시 많은 비용예산 소모 사용한 만큼 요금 지불 인력 운영비 시스템 엔지니어 업무 증대 시스템 엔지니어 업무 감소 활용성/효율성 최대용량을 산정한 설계가 이루어져 자원낭비 요소가 있음 운영에따라 서버 시스템을 증설할 수 있음 구축기간 장비 수급과 기타 인프라 조건에 의해 구축기간이 길어질 수 있다. 1일내 시스템 변경 및 구축이 가능하다 확장성/민첩성 클라우..
-
Kubernetes) IngressCloud/Kubernetes 2022. 10. 30. 20:43
학습 목표 : 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: ..
-
Kubernetes) Service ObjectCloud/Kubernetes 2022. 10. 30. 19:10
학습 목표 : 클러스터 내부의 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 # ..
-
Kubernetes) Kubernetes DeploymentCloud/Kubernetes 2022. 10. 27. 00:39
학습 목표 : 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 #..
-
Kubernetes) Application 배포Cloud/Kubernetes 2022. 10. 24. 23:32
학습 목표 : 몇가지 Application 배포 방식에 대해 알아본다. Application 배포(Update) 방식 기본적인 Application 배포는 Application을 중단하고 업데이트를 진행하여 서비스가 중단되는 시점(downtime)이 생긴다. downtime을 극복하기위한 무중단 배포방식이 사용된다. Rolling Update (Rolling 배포) - 무중단 방식의 가장 기본적인 방식으로 사용중인 인스턴스 내에서 새버전을 점진적으로 교체한다. - 장점 - 인스턴스마다 차례로 배포를 진행하여 상황에따라 쉽게 Rollback이 가능하다. - 추가적인 인스턴스를 늘리지 않아도 되고 간편하게 관리가 가능하다. - 단점 - 사용중인 인스턴스에 트래픽이 몰릴 수 있다. - 배포중에 신버전과 구버전..
-
Kubernetes) Kubernetes ReplicaSetCloud/Kubernetes 2022. 10. 21. 02:04
학습 목표 : 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 이름 설정..
-
Kubernetes) AWS 기반 쿠버네티스 H.A 구축 프로젝트 2편Cloud/Kubernetes 2022. 10. 18. 23:14
실습 환경 : 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..
-
Kubernetes) AWS 기반 쿠버네티스 H.A 구축 프로젝트 1편Cloud/Kubernetes 2022. 10. 18. 00:34
실습 환경 : 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 생성하기 - 인스턴스 >..
-
Kubernetes) Kubernetes VolumeCloud/Kubernetes 2022. 10. 13. 23:26
학습 목표 : k8s의 volume이 어떻게 사용되는지 알아본다. Kubernetes 에서 Volume 이란? Volume은 Pod의 일부분으로 정의되는 요소로서 Pod와 동일한 생명주기를 갖는다. Volume은 독립적인 리소스가 아니므로 자체적으로 생성/삭제할 수 없다. Pod에 여러개의 container를 갖는 경우 모든 container가 Volume을 공유할 수 있다. Volume은 Pod의 모든 container에서 사용 가능하며 사용시 container에서 mount해야 사용할 수 있다. 각 container 파일 시스템의 어느 경로에도 mount 할 수 있다. Volume 유형 emptyDir : 일시적인 데이터를 저장할 때 사용하는 빈 디렉토리 hostPath : 워커 노드의 파일 시스템을..