본문 바로가기

IT/AWS26

AWS 쿠버네티스에 EFK(Elasticsearch, Fluentd, Kibana) STACK 구축하기 이번 글에서는 AWS 쿠버네티스 클러스터를 모니터링하기 위해 EFK(Elasticsearch + Fluentd + Kibana) STACK을 구축해보도록 하겠다. 우선 Elasticsearch와 Kibana는 AWS EC2 인스턴스에 설치할 것이고(클러스터 구성이 아닌 단일 인스턴스에 구성할 것이다), Fluentd는 쿠버네티스 클러스터에 Pod로 띄워 로그를 수집하도록 하겠다. 만약 Fluentd와 Elasticsearch, Kibana를 모두 쿠버네티스 Pod로 띄우고 싶다면 다음 글을 참고하길 바란다(AWS EKS에서 로그 트레이싱 환경 구축하기(1) - EFK 스택 구성하기). 이번 글에서 구축하는 EFK STACK 구성도는 다음과 같다. 이 글은 다음과 같은 순서로 진행된다. 1. EFK(Ela.. 2020. 3. 24.
AWS CodePipeline에 Slack 알람 적용(Lambda, CloudWatch Events 연동) 이번 글에서는 CI/CD 파이프라인(CodePipeline)과 Slack 알람을 연동하는 방법에 대해서 알아볼 것이다. CodePipeline(CodeCommit & CodeBuild) 시작/종료(성공/실패) 시 Amazon CloudWatch Events에서 해당 이벤트를 감지한 후 AWS Lambda로 트리거 신호를 보내면 AWS Lambda에서 Slack채널로 알람을 보내는 프로세스다. 글의 순서는 다음과 같다. Amazon CloudWatch Events, AWS Lambda란? 실습 전 준비사항 Slack Webhook 생성 AWS Lambda 함수 생성 AWS CloudWatch Events 생성 테스트 위와 같은 방식으로 구축을 하면 최종 프로세스는 다음 그림과 같다 (우리가 이 글에서 진행.. 2020. 3. 18.
AWS kops 쿠버네티스 클러스터에 Ingress 적용하기 이번 글에서는 AWS에 kops로 구축한 쿠버네티스 클러스터에 Ingress를 적용하는 방법에 대해 알아볼 것이다. 글의 순서는 다음과 같다. Ingress란 무엇인가? 실습 전 준비사항 쿠버네티스 클러스터에 Ingress 적용하기 Ingress 테스트 1. Ingress란 무엇인가? 쿠버네티스 Ingress란 HTTP(S) 기반의 L7 로드밸런싱 기능을 제공하는 컴포넌트이다. Ingress는 외부에서 쿠버네티스 내부로 들어오는 네트워크 요청을 어떻게 처리할지 결정하며, 쉽게 말해 외부에서 쿠버네티스에서 실행중인 Deployment와 Service에 접근하기 위한 관문과 같은 역할을 담당한다. 쿠버네티스 서비스는 기본적으로 L4 레이어로 TCP 단에서 Pod를 로드밸런싱한다. 그런데 MSA(마이크로 서비.. 2020. 3. 8.
AWS kops 쿠버네티스 클러스터에 CI/CD 파이프라인(Pipeline) 만들기(CodeCommit, CodeBuild 활용) 이번 글에서는 kops로 구축한 AWS 쿠버네티스 클러스터에 AWS CodeCommit, AWS CodeBuild, AWS CodePipeline, AWS ECR을 활용하여 CI/CD 파이프라인(Pipeline)을 만들어보도록 하겠다. 이 글의 순서는 다음과 같다. 실습 전 준비사항 CI/CD 파이프라인 만들기 CI/CD 파이프라인 테스트 1. 실습 전 준비사항 CI/CD 파이프라인 실습을 하기 위해서는 사전에 AWS에서 kops를 활용해서 쿠버네티스 클러스터 구축이 필요하다.(https://twofootdog.tistory.com/43 참고) 2. CI/CD 파이프라인 만들기 그럼 본격적으로 CI/CD Pipeline을 만들어보도록 하자. 우선 CI/CD Pipeline을 만드는 순서는 다음과 같다. .. 2020. 3. 6.
AWS kops 쿠버네티스 관련 에러 정리(진행 중) 1. codebuild 배포 시 에러 문제 : [Container] 2020/03/05 16:56:46 Running command kubectl apply -f ./k8s/k8s-deployment.yaml The Deployment "toy-project-deployment" is invalid: spec.selector: Invalid value: v1.LabelSelThe Deployment "toy-project-deployment" is invalid: spec.selector: Invalid value: v1.LabelSelector{MatchLabels:map[string]string{"app":"toy-project"}, MatchExpressions:[]v1.LabelSelectorRe.. 2020. 3. 6.
AWS에 kops로 쿠버네티스 클러스터 구축하기 이번 글에서는 kops를 활용하여 AWS 내에 쿠버네티스 클러스터를 구축하는 실습을 해볼것이다. 처음에는 쿠버네티스 클러스터를 public network로 구축해 볼 것이고, 그 다음에는 private network로 구축하고 바스티온(bastion) 인스턴스를 만들어서 클러스터에 접근해 볼 것이다. 이 글의 순서는 다음과 같다. kops란 무엇인가? 실습 전 준비사항 kops로 AWS에 쿠버네티스 클러스터 구축하기(public) 쿠버네티스 private 클러스터 구축 후 바스티온 서버 구축하기 쿠버네티스 클러스터 테스트 1. kops란 무엇인가? kops(Kubernetes Operation)이란 쿠버네티스 생성 및 관리를 쉽게 하도록 도와주는 오픈소스 툴로서, 프로덕션 레벨의 쿠버네티스 클러스터를 간.. 2020. 2. 29.
AWS RDS 생성 후 EC2 인스턴스 내 서비스와 연동 이번 글에서는 AWS RDS(Relational Database Service)를 MariaDB로 생성 후 EC2 인스턴스 내에 있는 스프링부트 서비스에서 해당 RDS를 호출하도록 할 것이다. 이 글의 순서는 다음과 같다. RDS란 무엇인가? 실습 전 준비사항 RDS(MariaDB) 생성 후 로컬PC 및 EC2 인스턴스와 연동하기 EC2 인스턴스 내 스프링부트 서비스에서 RDS 연동 1. RDS란 무엇인가? Amazon Relational Database Service(Amazon RDS)는 AWS 클라우드에서 관계형 데이터베이스를 더 쉽게 설치, 운영 및 확장할 수 있는 웹 서비스다. Amazon RDS는 업계 표준 관계형 데이터베이스에 필요한 용량을 제공하면서 비용이 효율적이며 크기 조정이 가능하고 .. 2020. 2. 20.