전체 글 794

테라폼 시리즈 4편. 테라폼의 시작 Provider 설정

안녕하세요. 이 글은 테라폼스터디 1주차 내용을 정리했습니다. 1. Provider란? 테라폼을 사용하기 위해 Provider 설정이 필요합니다. provider는 코드를 어떤 인프라 환경에 반영할 것인가를 설정합니다. 참고: [테라폼 용어](https://malwareanalysis.tistory.com/425)챕터 아래 예제는 aws에 코드를 반영하기 위해 aws provider를 설정했습니다. 그리고 region, access_key, secret_key를 설정했습니다. # 참고자료: https://registry.terraform.io/providers/hashicorp/aws/latest/docs cat

연재 시리즈 2022.10.19

테라폼 시리즈 3편. 테라폼 설치

테라폼 설치는 간단합니다. 테라폼 바이너리를 다운로드 받으면 됩니다. 공식문서에(https://learn.hashicorp.com/tutorials/terraform/install-cli) 리눅스, 윈도우, 맥 운영체제에 테라폼 바이너리가를 설치하는 방법을 친절히 설명합니다. 저는 MAC을 사용하고 있어 homebrew로 설치 했습니다. brew tap hashicorp/tap brew install hashicorp/tap/terraform 테라폼 바이너리가 정상적으로 인식되면 terraform 명령어를 실행할 수 있습니다. 아래 예제는 테라폼 바이너리 버전을 출력합니다 terraform --version

연재 시리즈 2022.10.19

테라폼 시리즈 2편. 테라폼 공부를 시작할때, 알면 좋은 용어

안녕하세요. 이 글은 테라폼스터디 1주차 내용을 정리했습니다. 1. 용어 테라폼을 사용할 때 가장 당황스러운 것 중 하나가 익숙하지 않은 단어였는데요. 그래서 알면 좋을 용어 몇가지를 정리했습니다. 1.1 Provider 코드를 인프라로 변경해주는 모듈을 Provider이라고 합니다. 테라폼은 AWS Provider 등 매우 많은 Provider을 제공합니다. 각 Provider은 대상의 API를 이용하여 코드를 인프라로 반영합니다. 예를 들어 AWS Provider은 AWS API를 이용하여 코드를 인프라로 반영합니다. 1.2 Provisioning Provider가 코드를 인프라로 반영되는 과정을 provisioning라고 합니다. 1.3 HCL과 tf파일 테라폼이 작업할 코드는 HCL라는 언어로 작..

연재 시리즈 2022.10.19

테라폼 시리즈 1편. IAC 정의와 테라폼

안녕하세요. 이 글은 테라폼스터디 1주차 내용을 정리했습니다. 1. IAC란? 테라폼은 IAC도구입니다. 그러므로 IAC가 무엇인지 이해하는게 중요합니다. IAC(Infrastructure as Code, IaC)는 코드로 인프라를 관리하는 방법입니다. 코드로 인프라를 관리한다는 말이 무엇일까요? 사용자는 생성/수정/삭제하고 싶은 인프라 자원을 코드로 작성합니다. 그리고 사용자가 IAC도구를 실행하면, IAC도구가 코드를 해석해석 인프라 자원을 반영시킵니다. 그렇다면 코드로 어떻게 인프라를 생성/수정/삭제 작업을 할 수 있을까요? 정답은 인프라를 제공하는 환경에서 코드관리 기능을 지원하기 때문입니다. 모든 인프라를 코드로 관리할 수 없고 코드관리기능을 지원하는 환경에서만 사용가능합니다. 대표적으로 가상머..

연재 시리즈 2022.10.17

Typescript 에러 - default import when using the 'esModuleInterop' flag.

오류 원인 Typescript가 import하여 사용하는 모듈이 CommonJS문법으로 가져오게 설정되어 있는데, ES6문법으로 가져올때 생기는 오류입니다. 오류해결 방법 typescript설정파일(tsconfig.json)에 compilerOptions필드를 설정하여 오류를 해결할 수 있습니다. esModuleInterop필드를 true로 설정하면 오류가 해결됩니다. { "compilerOptions": { "lib": [ "es5", "es6" ], ... "esModuleInterop": true, ... } }

ArgoCD 8편 - Non Cascade 삭제

영상: https://youtu.be/PxLJMM_8hxs 개념 ArgoCD Application을 삭제할 때, 쿠버네티스 리소스는 그대로 두고 Application만 삭제하는 옵션입니다. 디폴트는 ArgoCD Application을 삭제하면 Application에 연결된 쿠버네티스 리소스 전부 삭제됩니다. 예제 HelloWorld예제(https://malwareanalysis.tistory.com/405)글을 참고하여 ArgoCD Application을 생성합니다 kubectl get po,svc | grep argocd Application을 Non Cascade옵션으로 삭제해보겠습니다. Delete버튼을 클릭하면 삭제옵션이 있습니다. 세번째 옵션인 Non Cascade를 선택합니다. Applicat..

연재 시리즈 2022.10.08

Configmap From File

configmap from file이란? 참고자료: https://kubernetes.io/docs/tasks/configure-pod-container/configure-pod-configmap/#create-configmaps-from-directories 파일을 configmap으로 관리하는 방법입니다. 언제 사용할까? 파일을 쿠버네티스 노드 또는 서버에 저장하지 않고 쿠버네티스로 파일을 관리하고 싶을 때 사용합니다. 노드 또는 파일서버에 존재하는 파일을 마운트해서 사용하는 경우가 종종 있습니다. pod에서는 파일을 마운트해서 사용하려면 hostpath 또는 NFS 등 프로토콜을 사용해야 합니다. hostpath를 사용하면 nodeAffinity등 같은 스케쥴 설정이 필요합니다. NFS 등 프로토콜..

쿠버네티스 Replica 설정 시 주의사항

안녕하세요. 이번 시간에는 쿠버네티스에 운영중인 pod에서 Replica를 수정할 떄 주의사항을 소개합니다. 영상: https://youtu.be/d_GTfuwOUWM Replica가 애플리케이션 영향을 어떻게 주는지 쿠버네티스가 아닐지라도 애플리케이션 운영에서 가장 중요한 것은 아키텍처 이해라고 생각합니다. 애플리케이션 아키텍처가 인스턴스 수정할 때 기존 환경에 영향 있다면, 쿠버네티스 쿠버네티스 또한 Replica를 수정할 때 영항이 있습니다. MSA 아키텍처, 분산 아키텍처 등이 대표적인 예입니다. 분산 아키텍처 예 분산 아키텍처의 대표적인 애플리케이션은 데이터베이스입니다. Redis, MongoDB, ElasticSearch, Hadoop 등이 해당됩니다. 분산 아키텍처를 가진 데이터베이스는 여러..

Dockerfile 변수 ARG

영상: https://youtu.be/3GnWXTCKTEM Dockerfile 변수 Dockerfile도 프로그래밍 함수처럼 변수를 사용할 수 있습니다. 변수선언 키워드는 ARG입니다.사용방법은 = 입니다. 선언한 변수는 리눅스 변수처럼 달러로 접근할 수 있습니다. 아래 예제 Dockerfile는 tmp라는 변수를 선언하고 디폴트 값을 a로 초기화했습니다. 그리고 echo명령어로 tmp변수 값을 출력했습니다. FROM busybox ARG tmp=a RUN echo $tmp 외부 초기화 Dockerfile ARG로 선언된 변수는 외부에서 값을 초기화할 수 있습니다. docker build명령어를 실행할 때, build-arg로 초기화합니다. docker build --build-arg tmp=hellow..