DevOps/Terraform2022. 10. 19. 17:46[Terraform] for_each 구문

테라폼에서 여러 리소스를 한번에 생성하는 방법으로는 count와 for_each가 있다. for_each Terraform에서 정의한 메타 인수이다. 모듈 또는 모든 리소스 유형과 함께 사용할 수 있다. Terraform은 map과 set의 각 구성에 대해 하나의 인스턴스를 생성한다. 예시 1. Map을 사용한 for_each resource "azurerm_resource_group" "rg" { for_each = { a_group = "eastus" another_group = "westus2" } name = each.key location = each.value } 2. Set을 사용한 for_each resource "aws_iam_user" "the-accounts" { for_each = ..

[CI/CD] CI/CD란 ? 지속적 통합과 지속적 서비스 제공
DevOps/CICD2022. 6. 15. 12:43[CI/CD] CI/CD란 ? 지속적 통합과 지속적 서비스 제공

🚀 CI/CD 개발자가 코드를 수정하고 빌드하고 테스트하고 배포까지 한다면 상당히 많은 시간이 소요된다. 하지만 git에 코드를 올리는 것만으로 누군가가 빌드와 테스트, 배포까지 해준다면 일련의 과정에 소요되는 시간을 단축시키고 오롯이 개발에만 더 많은 시간을 투자할 수 있게될 것이다. 이때 등장하는 개념이 CI/CD이다. 다음의 두 이미지를 통해 기존의 전통적인 개발 환경과 CI/CD를 도입한 환경을 한눈에 비교할 수 있다. 🚀 CI CI는 Continuous Integration 즉, 지속적인 통합이라는 의미이다. 지속적인 통합이란, 어플리케이션의 새로운 코드 변경 사항이 정기적으로 빌드 및 테스트되어 공유 레포지토리에 통합되는 것을 의미한다. 📌 CI가 필요한 환경 다수의 개발자가 형상관리 툴을 공..

[Kubernetes] AWS EKS - Fargate로 구성하기
DevOps/Kubernetes2022. 6. 14. 10:09[Kubernetes] AWS EKS - Fargate로 구성하기

🚀 AWS Fargate AWS Fargate - Amazon EKS AWS Fargate는 서버리스형 컨테이너 서비스로서 Amazon EKS 클러스터의 일부로 Kubernetes 파드로 실행되는 컨테이너에 대해 적절한 크기의 온디맨드 컴퓨팅 용량을 제공한다. 컨테이너를 실행하는 리소스 비용만 초단위에 따라 지불하면 된다. Fargate를 이용해 EC2 인스턴스를 사용하지 않고 파드를 실행할 수 있다. 우리가 EKS를 사용할 때 컨트롤 플레인은 AWS에서 관리해주지만 워커 노드들은 오토 스케일링 그룹을 이용해 EC2 인스턴스를 배포해서 사용한다. → 즉, EC2 인스턴스의 관리는 사용자의 몫이다. Fargate는 EC2 인스턴스를 추상화시켰기 때문에 사용자가 관리할 필요가 없다. 사용자는 운영체제 버전 ..

[Kubernetes] AWS EKS - CloudWatch Container Insight
DevOps/Kubernetes2022. 6. 14. 09:49[Kubernetes] AWS EKS - CloudWatch Container Insight

🚀 CloudWatch Container Insight Amazon EKS 및 Kubernetes에서 Container Insights의 빠른 시작 설정 - Amazon CloudWatch 안정적인 서비스의 운영을 위해서는 서비스의 CPU, Memory 등을 모니터링하고 Application Log를 확인하는 것이 중요하다. 쿠버네티스에서도 마찬가지로 Cluster, Namespace, Service, Pod 등에 대한 모니터링과 필요에 따라 Application 로그 수집이 필요하다. AWS에서 제공하는 Container Insights와 로그 수집기인 Fluent Bit로 로그를 수집하고 모니터링 할 수 있다. Container Insights (모니터링) ECS, EKS Cluster에 대하여 CP..

[Kubernetes] AWS EKS - Clustering Autoscaling (클러스터 오토스케일링)
DevOps/Kubernetes2022. 6. 13. 11:04[Kubernetes] AWS EKS - Clustering Autoscaling (클러스터 오토스케일링)

🚀 Cluster Autoscaler AutoScaling - Amazon EKS EKS의 각각의 워커 노드를 EC2 인스턴스로 구성했을 때 파드의 크기가 아주 작다고해도 무한정의 파드를 배치할 수는 없다. 여러명의 개발자가 여러개의 파드를 배치하거나 HPA(Horizontal Pod AutoScaling)에 의해 여러개의 파드가 만들어지면, 노드가 가득 차버려서 파드가 스케줄링 될 수 없어 pending 상태에 머무르는 상황이 발생한다. 이럴 때 사용하는 것이 Cluster Autoscaling(CA)이다. CA는 리소스 부족으로 인해 예약할 수 없는 파드가 있는 경우 클러스터의 크기를 늘린다. 특정 수의 시스템을 초과해 확장 또는 축소하지 않도록 구성할 수 있다. 워커 노드의 확장 결정을 내리는 순서..

[Kubernetes] 쿠버네티스 모니터링 (Monitoring)  - Metrics Server
DevOps/Kubernetes2022. 6. 13. 11:01[Kubernetes] 쿠버네티스 모니터링 (Monitoring) - Metrics Server

🚀 Metrics Server란 ? Kubernetes 지표 서버 설치 - Amazon EKS 쿠버네티스의 Metrics Server란 각 노드에 설치된 kubectl을 통해서 노드 및 파드의 CPU, Memory의 사용량을 수집한다. Linux의 top 명령을 쿠버네티스에서 사용하는 것과 비슷하다. 쿠버네티스 v1.11 이후로 Heapster를 deprecated 시키고 Metrics Server를 모니터링 표준으로 도입하였다. Metircs Server는 Heapster를 간소화한 버전이라고 생각하면 된다. kubectl에서 메트릭 데이터를 수집해서 메모리에 저장한다. 또한 apiserver를 통해 파드나 노드의 메트릭을 조회하는데 사용되는 Metrics API를 제공한다. 쿠버네티스에서 필요한 핵심..

image