전체 글
-
Terraform | Terraform StateIac 2022. 1. 23. 21:38
테라폼은 인프라가 변경될 때마다 형상을 tfstate파일에 기록함으로써 현재 생성되어 있는 인프라 형상을 관리합니다. 따라서 테라폼으로 인프라를 생성하면 현재 디렉터리에 terraform.tfstate라는 파일이 생성되는 것을 확인할 수 있습니다. terraform backend 로컬에서 state파일을 사용할 경우 다른 개발자와 tfstate파일을 공유하기에는 번거로움이 있습니다. 이러한 문제를 해결하고자 테라폼에서는 backend라는 기능을 제공합니다. terraform backend라는 것은 생성되는 tfstate파일을 AWS의 S3, kubernetes 등 따로 저장되도록 하여 여러 사용자들에게 공유할 수 있도록 하는 것입니다. AWS를 사용하고 있기 때문에 terraform backend로 S3..
-
Terraform | Terraform 버전관리Iac 2022. 1. 21. 22:19
Terraform을 사용하면서 여러 Terraform버전을 사용해야 할 때가 있습니다. 그럴 때마다 각각의 버전을 다운로드하는 것은 비효율적이고 귀찮습니다. 따라서 tfenv를 이용하여 Terraform버전을 관리하는 내용을 정리하려고 합니다. tfenv tfenv를 이용하면 여러 가지의 테라폼 버전을 다운로드할 수 있고 원하는 버전을 선택하여 사용할 수 있습니다. 그리고 생각보다 간편합니다. 설치 방법 설치방법은 tfenv에서 확인할 수 있습니다. Mac인 경우 brew install tfenv Linux인 경우 git clone ~/.tfenv echo 'export PATH="$HOME/.tfenv/bin:$PATH"' >> ~/.bash_profile ln -s ~/.tfenv/bin/* /usr..
-
Terraform | Terraform 이란Iac 2022. 1. 20. 21:57
테라폼은 Hashicorp에서 만든 Iac(Infrastructure as Code) 도구입니다. 간단하게 설명하자면 AWS상에서 콘솔에 접속하여 클릭으로 생성하던 클라우드 인프라를 코드로 작성하고, 작성된 코드에 맞게 클라우드 인프라를 생성해주는 기능을 합니다. 여기서 말하는 코드는 HashiCorp에서 개발한 언어인 HCL을 사용하게 됩니다. Terraform 설치 간단하게 Terraform을 사용해보기 위해서는 2가지(Terraform, aws계정)가 필요합니다. 테라폼 설치는 다음을 통해서 할 수 있습니다. 테라폼 설치 Terraform 명령어 간단한 예제를 실행해보기 전에 Terraform의 몇 가지 개념들에 대해서 정리하고 넘어가도록 하겠습니다. Terraform은 크게 init plan ap..
-
Docker | 도커 이미지 종류docker 2021. 12. 26. 19:05
Docker Image를 작성하고 사용하였지만 대부분 alpine으로만 작성하고 있었습니다. 다시 돌아보니 다른 이미지 버전들에 비해 어떤 장점이 있는지 생각을 많이 해보지 않고 사용한것 같아 Docker Image 종류에 대해서 정리를 해보려고 합니다. 이미지 종류 name:version name:version-stretch name:version-buster name:version-jessie name:version-slim name:verseion-alpine name:version 기본적으로 Docker는 name:version에 해당하는 버전을 사용합니다. (Base 이미지) 해당 버전의 이미지는 가장 최근의 안정적인 데비안 운영 체제 릴리스를 기반으로 합니다. ex) python:3.8.3 n..
-
쿠버네티스 | 리소스 AWS S3 백업kubernetes 2021. 12. 18. 23:34
쿠버네티스 클러스터를 운영하면서 운영 중인 리소스들을 백업하는 방법에 대해서 정리합니다. (현재 쿠버네티스 클러스터가 설치되었다는 가정하에 진행합니다. => 쿠버네티스 설치) Velero Velero는 Kubernetes 클러스터 리소스 및 영구 볼륨을 백업 및 복원하는 도구를 제공합니다 https://velero.io/docs/v1.5/index.html velero cli를 이용하여 백업을 진행할 것이기 때문에 공식 홈페이지에서 설치 후 진행하도록 하겠습니다. Velero 설치 페이지 로컬 환경에 설치가 되었다면 먼저 백업받을 저장소(AWS S3)를 생성합니다. 버킷과 IAM 생성은 Terraform을 이용하여 생성합니다. https://github.com/bobjeong/no-easy-blog/tr..
-
Jenins | Jenkins에 Node추가하기jenkins 2021. 12. 14. 23:08
docker container exec -it worker1 /bin/bash이전에는 Jenkins를 Container로 띄워 파이프라인을 실행해보는 예제를 해봤습니다. 하지만 여기서 생각해볼 점이 있습니다. 우리가 띄운 Jenkins(master라고 하겠습니다.)는 파이프라인 수행뿐만 아니라 설정 정보도 관리하기 때문에 부하 분산을 위해 주로 Job만을 실행시키기 위한 Node를 따로 사용하게됩니다. 다음 그림과 같이 Jenkins Master로 요청이 오면 Node(Slave)에서 Job이 실행되어 파이프라인이 동작하게 되는 방식입니다. 그럼 이전의 코드에 Node를 추가하는 방법에 대해서 정리하도록 하겠습니다. (기존 Master Jenkins가 띄워져 있다고 가정하에 진행하도록 하겠습니다 Jenk..
-
Jenkins | Jenkins 설치jenkins 2021. 12. 8. 00:08
Jenkins를 처음 시작하는 부분에 있어서 가장 쉽게 시작할 수 있는 방법은 Docker Image를 이용하는 것이라고 생각합니다. Docker Hub의 Image를 통해 쉽게 설치하여 테스트를 진행해볼 수 있습니다. (위 과정은 PC에 Docker가 설치되어 있다고 가정하고 진행합니다.) Jenkins 먼저 우리는 만들어진 Docker Image를 사용할 것이기 때문에 다음과 같이 docker-compose.yaml파일을 작성합니다. # docker-compose.yaml version: "3" services: master: container_name: master image: jenkins/jenkins:lts ports: - 9000:8080 volumes: - ./master_jenkins_h..
-
Jenkins | Jenkins란jenkins 2021. 11. 15. 23:13
우리 회사는 CI CD를 젠킨스를 이용해서 진행하고 있습니다. 사용하고 있는 만큼 간단하게 설명한다고 생각하고 Jenkins에 대해서 정리를 해보려고 합니다. Jenkins는 보통 CI도구로 알려져 있습니다. Jenkins에 대해서 알아보기 전에 CI란 무엇일까요?? CI(Continuous Integration)란 구글에 CI란 이라고 검색을 해보면 지속적 통합(continuous integration) 이러한 단어를 확인할 수 있습니다. 하지만 이러한 단어를 만났을 때 바로 와닿지 않을 수 있습니다. (나 또한 그랬다...) 따라서 지속적 통합(CI)을 간단한 예시를 통해 설명해 보려고 합니다. 예시로 Spring Boot로 Api를 개발한다고 가정을 해봅시다. 우리가 어플리케이션을 개발한다고 했을 ..