728x90

전체 글 67

Terraform으로 helm chart 배포하기

Terraform으로 helm chart 배포하기 Terraform을 사용해서 helm chart를 배포하는 방법에 대해서 설명합니다. AWS EKS 클러스터에 metrics-server를 배포하는 예제입니다. 아래의 예제를 실행하려면 우선 terraform을 실행하는 user 또는 role에 EKS 클러스터의 권한설정을 해야합니다. # vi main.tf data "aws_eks_cluster" "test" { name = "eks-test" } data "aws_eks_cluster_auth" "test" { name = "eks-test" } provider "helm" { kubernetes { host = data.aws_eks_cluster.test.endpoint token = data.aw..

Terraform 2022.09.20

Kubernetes ServiceAccount로 kubeconfig 파일 생성

Kubernetes ServiceAccount로 kubeconfig 파일 생성 kubernetes에서 ServiceAccount를 생성하여, kubeconfig 파일을 생성하는 방법입니다. ServiceAccount를 사용하여 kubernetes 클러스터 외부에서 접근시 활용할 수 있습니다. ServiceAccount 생성 아래의 명령어를 사용하여 ServiceAccount를 생성합니다. ServiceAccount를 생성하면 service-account-token이 secret에 생성됩니다. # serviceaccount 생성 $ kubectl create sa test-sa -n default # serviceaccount 조회 $ ktest get sa test-sa -n default -o yaml..

Kubernetes 2022.09.20

Amazon EBS CSI driver

Amazon EBS CSI driver kubernetes에서 AWS EBS 사용을 위해 기본적으로 제공하는 storage class 타입은 io1, gp2, sc1, st1 입니다. gp3, io2 타입의 EBS를 사용하기 위해서 Amazon EBS CSI driver 를 설치해야합니다. EKS 1.23 버전부터는 무조건 EBS CSI Driver만 사용해야합니다. Install helm을 사용하여 설치합니다. AWS의 IAM Role을 생성하고, policy 를 참고하여 권한설정을 해야합니다. # values.yaml controller: replicaCount: 3 region: ap-northeast-2 serviceAccount: create: true name: ebs-csi-controlle..

Kubernetes 2022.09.19

AWS EC2 Instance Type 지원되는 가용영역 찾기

AWS EC2 Instance Type 지원되는 가용영역 찾기 AWS EC2 Instace Type에 따라 사용할 수 있는 리전 및 가용영역 다르므로, awscli를 통해서 확인할 수 있습니다. $ aws ec2 describe-instance-type-offerings \ --location-type availability-zone \ --filters Name=instance-type,Values=t3a.large \ --region ap-northeast-2 --output table ------------------------------------------------------------ | DescribeInstanceTypeOfferings | +-------------------------..

AWS 2022.09.19

AWS EBS operational issue 해결방법

AWS 콘솔에 갑자기 미해결된 문제라고 하여 EBS operational issue 이슈가 발생하였습니다. 일반적인 웹서버이면 해당 EC2 인스턴스를 terminate하고, 다시 만들면 됩니다. 하지만 제가 겪은 문제는 데이터스토어 관련된 어플리케이션이 설치된 EC2 인스턴스에서 발생한 문제라 EC2를 terminate하고 다시 생성할 수 없었습니다. EBS operational issue 라고 하여 가이드된 문서에는 여러가지 해결방법들을 설명해줍니다. AWS의 문서대로 재부팅도 해보고, 중지하고 다시시작도 해봤습니다. 하지만 인스턴스 스크린샷에는 no bootable device 메세지만 계속 출력되고, 해결되지 않았습니다. 생각보다 간단한 방법으로 이슈가 처리되었씁니다. AWS 콘솔에서 EBS ope..

AWS 2019.09.30

AWS S3를 이용한 gzip 압축전송 활용방법

AWS S3를 이용한 gzip 압축전송 활용방법 AWS 클라우드의 리소스를 가지고 정적 웹파일을 서비스하고 싶을 경우 CloudFront와 S3 조합을 가장 많이 사용하긴 합니다. CloudFront의 gzip 압축전송을 제공하긴하나 파일크기 제한이 있습니다. 파일 크기는 1,000 ~ 10,000,000 byte 사이여야 합니다. 파일크기가 10,000,000 byte가 넘어가면 CloudFront 설정에 gzip 압축전송을 enable 시켜도 gzip 압축전송이 되지 않는걸 확인할 수 있습니다. 이럴 경우엔 S3에 파일 업로드하기전에 해당파일을 gzip을 이용해서 미리 압축하여 업로드하고, 메타데이터에 Content-Encoding: gzip 으로 설정 하시면 됩니다. 참고자료 압축된 파일 제공 - ..

AWS 2019.08.14

AWS RDS Aurora For PostgreSQL 이전하기

AWS RDS Aurora For PostgreSQL 이전하기 그동안 On-Premises로 RDMBS인 PostgreSQL 9.6을 운영하고 있었습니다. 하지만 On-Premises로 데이터베이스를 운영하다보니 여러가지 문제점이 발생하였고, 이런 문제점들을 해결하고자 Aurora For PostgreSQL로 이전결정을 하였습니다. Aurora For PostgreSQL은 PostgreSQL과 완벽하게 호환되고, RDS의 PostgreSQL보다 퍼포먼스 및 여러가지 장점을 가지고있습니다. 단, PostgreSQL에서 지원하는 Extension은 모두 지원하지만, 리눅스 패키지를 설치하여 추가된 Extension은 지원하지 않으니 주의하셔야합니다. 그리고 Aurora For PostgreSQL Server..

AWS 2019.08.09

Jenkins의 모든 프로젝트 disable 상태로 만들기

Jenkins의 모든 프로젝트 disable 상태로 만들기 Jenkins에서 제공하는 API를 이용하여 모든 프로젝트를 disable 상태로 수정하는 python 스크립트입니다. import sys import json import requests from requests.auth import HTTPBasicAuth JENKINS_HOST = 'https://jenkins.com' JENKINS_USER = 'user' JENKINS_PASSWORD = 'password' JOS_DISABLE_STATUS = 'disabled' crumb_req = requests.get(JENKINS_HOST+'/crumbIssuer/api/json', auth=HTTPBasicAuth(JENKINS_USER, JE..

Jenkins 2019.08.02
728x90