IaaS/퍼블릭클라우드 110

EKS, GKE 비용 절감을 위한 Scaling 스케쥴러 개발

Public Clous가 제공하는 Managed Kubernetes Cluster를 사용할때 비용절감 방안도 중요하다 이때는 사용자가 많은 시간대에 NodePool(WorkerNode Group)을 Scale Out 하고 사용자가 없는 시간대에 NodePool(WorkerNode Group)을 Scale In 하는 방식으로 야간 동안의 Cost를 절감할 수 있다. 이를 구현하기 위해서는 AWS Lambda, GCP CloudFunction 를 통하여 Cloud Developer SDK를 활용하면 된다. 그리고 이 FaaS를 GCP Cloud Schduler 또는 AWS EventTrigger로 주기적으로 실행시켜주면 된다. 아래는 GCP 예제를 담았다.아래와 같이 ClusterManagerClient 를..

AWS) ECS와 Fargate Computing에 영구볼륨 추가

ECS에 DBMS를 올려야하는경우 종종 영구볼륨이 필요한데, 좀 까다롭다. 영구볼륨으로 사용할 수 있는 리소스는 EFS이다. 1. EFS는 NFS로 동작하는 파일시스템이다. 따라서 이에 걸맞는 보안그룹을 정의한다. 2. EFS 파일시스템을 생성한다. 적절한 VPC와 서브넷을 할당한다. 3. 파일시스템의 네트워크를 정의한다. 이때 보안그룹에 방금 정의한 EFS 통신이 가능한 보안그룹을 적용한다. 4. 엑세스 포인트를 정의한다. 이때 루트디렉토리 경로란 마운트할 대상의 경로를 말한다. 파일소유자 권한을 Root, 755로 정의한다.(이건 옵션일수도 있다.) 5. 태스크 정의 시 볼륨을 할당한다. 이때 사전정의한 EFS를 선택하기만 하면된다. 전송암호화는 체크해야한다. 6. 탑재지점을 정확하게 지정한다. 7...

AWS) 다른 Region에 리소스 생성 못하도록 IAM 정책만들기

미연의 사고를 방지하기 위해 다른 리전에 리소스 생성을 제어할 필요가 있다. 필자의 경우 IAM 정책을 만들어서 운영중이다. 글로벌 리소스를 제외하고는 SEOUL 리전 외 생성을 금지하겠다. { "Version": "2012-10-17", "Statement": [ { "Sid": "DenyAllOutsideRequestedRegions", "Effect": "Deny", "NotAction": [ "cloudfront:*", "iam:*", "route53:*", "support:*" ], "Resource": "*", "Condition": { "StringNotEquals": { "aws:RequestedRegion": [ "ap-northeast-2" ] } } } ] }

GKE사용시 kube-system Namespace에 프로비저닝 되는 모듈

Essentail event-exporter-gke, fluentbit-gke : 컨테이너 로그와 시스템 로그의 경우, GKE는 기본적으로 컨테이너 로그를 읽고 유용한 메타데이터를 추가한 다음 Cloud Logging에 저장하는 노드별 로깅 에이전트를 배포합니다. GKE 로깅 에이전트는 다음 소스에서 컨테이너 로그를 확인합니다. 컨테이너화된 프로세스의 표준 출력 및 표준 오류 로그 kubelet 및 컨테이너 런타임 로그 VM 시작 스크립트 등 시스템 구성요소의 로그 gke-metrics-agent : GKE는 시스템 구성요소에서 내보낸 Metric을 수집합니다. GKE 클러스터에서 Cloud Monitoring으로 Metric을 전송합니다. ip-masq-agent : IP 매스커레이딩은 다대일 IP 주..

(GCP) BigQuery 에 대해서

BigQuery란? BigQuery 는 확장성이 뛰어난 구글의 기업용 서버리스 기반의 데이터 웨어하우스 입니다. 관리할 인프라가 없기 때문에 데이터 분석에 집중할 수 있으며, 인프라 및 데이터를 관리할 관리자도 필요하지 않습니다. BigQuery는 ANSI:2011을 준수하는 표준 SQL을 지원하기 때문에 기존에 SQL을 알고 있는 사용자도 손쉽게 이용할 수 있는 장점이 있으며, ODBC 및 JDBC 드라이버를 제공하여 데이터를 쉽고 빠르게 통합할 수 있습니다. BigQuery는 몇 초 만에 기가바이트급에서 페타바이트급에 이르는 데이터를 대상으로 초고속으로 SQL쿼리를 실행할 수 있습니다. 매월 무료로 최대 1TB 상당의 데이터를 분석하고 10GB의 데이터를 저장할 수 있습니다. BigQuery는 스토리..

(GCP) Cloud SQL 이란?

AWS의 RDS와 유사하다. Cloud SQL Cloud SQL은 크게 MySQL과 PostgreSQL을 제공합니다. MySQL과 MySQL용 Cloud SQL의 차이 일반적으로 Cloud SQL인스턴스에서 제공하는 MySQL 기능은 로컬에서 호스팅 되는 MySQL과 기능은 동일하지만 몇가지 차이점이 있습니다. - 지원되지 않는 기능 사용자 정의 함수 InnoDB memchached 플러그인 Federated Engine SUPER 권한 - 지원되지 않 명령문 - 지원되지 않는 클라이언트 프로그램 LOAD DATA INFILE이 제한되기 때문에 --local 옵션을 사용하지 않는 mysqlimport는 지원되지 않습니다. 원격으로 데이터를 로드해야 하는 경우 Cloud SQL import 함수를 사용해야..

(GCP) 공유 VPC란

AWS와 GCP의 주요한 다른점 하나는 Project 개념인것 같다. 그러다 보니 VPC도 Project별로 따라가는 리소스가 되어, 공유 VPC라는 개념이 나온것 같다. 공유 VPC를 사용하면 조직에서 여러 프로젝트의 리소스를 공통 VPC 네트워크에 연결할 수 있습니다. 때문에 해당 네트워크의 내부 IP를 사용하여 서로 안전하고 효율적으로 통신할 수 있습니다. 조직내 여러 프로젝트 가운데 중심이 되는 하나의 프로젝트를 '호스트 프로젝트'로 지정합니다. 이후 하나 이상의 다른 서비스 프로젝트를 여기에 연결합니다. 이때 호스트 프로젝트의 VPC 네트워크를 공유 VPC 네트워크에 연결된 다른 프로젝트들은 '서비스 프로젝트'라고 합니다. 이렇게 공유 VPC를 사용하면 조직 관리자가 서브넷, 경로, 방화벽 같은..

(GCP) GCP IAM에 대하여

GCP IAM은 전반적으로 AWS와 유사한 컨셉을 갖고 있다. GCP IAM의 정책 상속은 상→하 수준으로 내려갑니다. 즉, 리소스는 프로젝트에서 정책을 상속하고, 프로젝트는 폴더에서 정책을 상속하며, 폴더는 조직에서 정책을 상속합니다. Cloud IAM 정책 계층 구조는 GCP 리소스 계층 구조와 동일한 경로를 따릅니다. 리소스 계층 구조를 변경하면 정책 계층 구조도 변경됩니다. 예를들어, 프로젝트를 조직으로 옮기면 프로젝트의 Cloud IAM 정책이 해당 조직의 Cloud IAM 정책을 상속하도록 업데이트 됩니다. 하위 정책은 상위 수준에서 허용된 엑세스 권한을 제한할 수 없습니다. 기본역할 소유자, 편집자, 뷰어로 소유자 역할에는 편집자 역할의 권한이 포함되며, 편집자 역할에는 뷰어 권한이 포함됩니..

(GCP-GKE) LoadBalancer 로 GKE 서비스 외부로 노출하기

관련링크 : https://cloud.google.com/kubernetes-engine/docs/concepts/ingress?hl=ko 애플리케이션 부하 분산기용 GKE 인그레스 | Google Kubernetes Engine(GKE) | Google Cloud 이 페이지에서는 애플리케이션 부하 분산기용 인그레스가 무엇인지와 Google Kubernetes Engine(GKE)에서 어떻게 작동하는지에 대해 설명합니다. cloud.google.com Public Cloud 내에서 K8S 컨테이너 서비스가 어떻게 서비스되어야 하는지 프로토타입을 제시코자 한다. 위 구성은 AWS 도 마찬가지다. 국내 Public Cloud는 ALB Ingress Controller가 없는 경우도 있어 해당이 안되겠지만, ..

(GCP-GKE) VPC 기반 Private k8s 클러스터 만들기

지난 번에 구축한 VPC를 기반하여 GKE클러스터를 구축하려한다. https://armyost.tistory.com/446 GCP VPC 구축하기 (Public/Private Subnet 구축하기) 필자가 만들고자 하는 VPC는 다음과 같다. AWS에서는 Subnet이 Internet-gateway가 연결되어 있으면 Internet-facing되었다고 생각하고 public subnet이라고 단정짓는다. 하지만 GCP는 private-subnet에 대한 개념이 armyost.tistory.com 그리고 GKE 클러스터 노드들은 보안상 Private Network 구간에 배치토록 하겠다. ※ 관련링크 : https://cloud.google.com/kubernetes-engine/docs/how-to/pri..