본문 바로가기

반응형

전체 글

(152)
[SpringBoot] 개념, 구조, 동작 방식 Sprint Boot는 Java를 기반으로 한 Web Application FrameWork이다. SprintBoot가 나오기 전 Spring 프레임워크를 사용하였지만, 초기 환경 설정에 시간이 많이 할애가 된다는 문제점이 존재하였다. 이로 인해 나온 것이 SpringBoot이며, 특징을 알아보자. 1. Maven이든 Gradle이든 Dependency에 따라 셋팅에 필요한 라이브러리들을 미리 정의해 둔 원격 저장소에서 알아서 다운로드 받아와 세팅해준다. 2. 버전 관리를 자동적으로 해주기 때문에 버전에 맞지 않아 발생할 수 있는 오류를 사전에 예방할 수 있다는 장점이 존재한다. 3. 내장 톰캣이 존재하여 별도의 Tomcat을 서버 내에 설치하지 않아도 된다. 4. servlet-context, root..
[Lambda] CW Logs 구독 필터와 Lambda 연결, Slack으로 인스턴스 스케줄러 동작 내역 확인하기 1. 배경 AWS Instance Scheduler로 EC2와 RDS를 정해진 시간에 Start하고, Stop한다고 가정해보자. 관리자들은 어떠한 서버들이 주기적으로 켜지고 꺼지는지 알아야 할 필요성이 있다. 만약 이러한 내용들을 Slack을 통해 Notification을 받고 싶다면 어떻게 해야 할까? Keyword : CloudWatch Logs, Subscription filter, Lambda, Slack 2. 아이디어 및 아키텍처 우선, 인스턴스 스케줄러는 CloudFormation으로 간단하게 EC2와 RDS를 스케줄링 할 수 있도록 도와주는 툴?이다. AWS 측에서 개발하였으며, Lambda와 CloudWatch, DynamoDB 등을 활용하여 사용자가 정의한 대로 스케줄링 하도록 도와준다...
[WEB] Apache Log 포맷 기본 정리 (+ Client의 IP를 보고 싶을 경우) 웹 서버 중 많이 사용되는 아파치의 로그 포맷을 수정하는 방법에 대해서 정리해본다. Apache 관련 설정은 conf 파일에 보통 존재한다. 만약 아파치를 컴파일하여 설치하게 된다면 /usr/share/... 혹은 별도 운영 관리자가 설정한 디렉터리 내에 존재할 것이며, 단순 yum 등의 패키지 매니저를 통해 간단하게 설치하였을 경우 /etc/httpd/conf 디렉터리 내에 httpd.conf 파일에서 설정할 수 있을 것이다. conf.d 파일 내에서 별도의 log.conf 등의 파일을 만들어서 관리해도 되고, httpd.conf 파일에서 관리해도 무방하다. Apache는 Module 기반으로 동작하기 때문에 특정 기능을 사용하기 위해서는 1) Module을 Load하고, 2) 정의된 설정 값을 기입해..
[EKS] EKS 환경에서 ArgoCD 설치, 배포, 롤백 Ref : https://www.s-core.co.kr/insight/view/%EB%8D%B0%EB%B8%8C%EC%98%B5%EC%8A%A4%EC%9D%98-%ED%99%95%EC%9E%A5-%EB%AA%A8%EB%8D%B8-%EA%B9%83%EC%98%B5%EC%8A%A4gitops-%EC%9D%B4%ED%95%B4%ED%95%98%EA%B8%B0-2/ GitOps란 DevOps를 실천하는 방법 중 하나이다. 그 중에서도 Cloud Native한 Application을 대상으로 CD(Continuous Deployment)에 초점을 두고 있다. Application 배포와 운영에 관련된 모든 요소를 코드화하여 Git에서 관리(Ops)하는 개념을 GitOps라고 한다. 그렇다고 IaC와 유사하지만 같..
[EKS] Jenkins로 CI 수행하기 - Maven Build 및 Image ECR Push 전체적인 과정은 다음과 같다. 1. Git -> main 브랜치에서 Push 이벤트가 발생하면 Webhook이 발생한다. 2. Webhook은 Jenkins 서버에게 POST로 날린다. 3. Jenkins는 기 설정된 Trigger 조건(Github hook trigger for GITScm polling)에 의거하여 Trigger가 되며, Jenkins Pipeline을 수행하게 된다. 4. Jenkins 서버 내에서 Pipeline에 정의된 대로 작업들을 수행한다. 1) Git Checkout (소스 코드를 받아온다.) 2) Maven으로 Springboot 프로젝트를 Build하여 JAR 파일로 떨군다. 3) Docker를 이용하여 Image 파일로 생성하고, ECR 컨테이너 레지스트리로 Push한..
[EKS] Amazon EBS CSI Driver 설치 및 사용하기 EBS CSI드라이버에서는 Amazon EKS 클러스터가 영구 볼륨을 위해 Amazon EBS 볼륨의 수명 주기를 관리할 수 있게 해주는 CSI 인터페이스를 제공한다. ⇒ EBS CSI 드라이버를 EKS 클러스터에 배포하고 제대로 동작하는지 확인 순서 1. IRSA를 위한 IAM Policy 생성 (EBS CLI Controller 파드를 위한 정책 생성) 2. 기 생성한 IAM 정책을 IAM Role에 연결 a. IAM Role의 신뢰 관계는 EKS의 OIDC b. Condition에는 ebs-csi-controller-sa 서비스어카운트만 허용한다. 3. EBS CSI Driver 설치 4. 동작 테스트 및 Log 확인 IAM Policy (JSON) to Terraform data block => ..
[EKS] External DNS 설치 및 사용하기 External DNS란 Ingress 리소스를 생성함과 동시에 Route 53 ↔ ALB ↔ Node ↔ Pod로 트래픽이 단번에 라우팅될 수 있도록 한다. => ALB가 생성될 때 자동으로 Route53 Record에 등록되기 위함이다. 관련 자료 https://github.com/kubernetes-sigs/external-dns/blob/master/docs/tutorials/aws.md https://kubernetes-sigs.github.io/aws-load-balancer-controller/v2.2/examples/echo_server/#setup-external-dns-to-manage-dns-automatically + Security Context 관련 트러블슈팅 자료 https:/..
[EKS] Terraform으로 EKS Cluster 생성 실습용으로 EKS Cluster를 생성하여 이것 저것 해보고 싶지만 생성할 때마다 Web Console로 만들면 반복 작업인데 반해 시간이 다소 소요되고 계속 만들어놓으면 비용이 발생하기 때문에 Terraform으로 필요할 때마다 Apply 하여 리소스를 생성하고 필요가 없어지면 Destroy를 하여 리소스를 삭제하면 어떨까 하여 Terraform으로 EKS Cluster를 생성하게 되었다. 아래 작성한 Terraform Code 외에 추가로 고려해야 할 사항들에 대해서 정리 1. EKS의 Worker Node는 Launch Template으로 생성하는 방법과 Managed Worker Node로 생성하는 방법 2가지가 있다. 만약 자사 보안상 Worker Node 내부에 여러가지 보안 솔루션이 설치되어..

반응형