본문 바로가기

전체 글

(148)
블로그 운영에 대해서 안녕하세요 aws-diary 블로그 운영자입니다. AWS Cloud SA or DevOps 엔지니어로 일을 하며 아키텍처나 기술들에 대해서 핸즈온 형태로 많이 올리면서 공유하기 위해 노력해왔는데, 개인적인 사정으로 인해 더 이상 핸즈온이나 구체적인 기술 스택에 대한 새로운 글은 작성하기는 어려울 것 같습니다. 하지만 기존 글을 삭제하지는 않을 예정입니다. 따라서 기존에 올라온 게시글이 너무 오래되어서 버전이 안 맞거나 활용하기 어려워지는 부분이 분명 생길텐데 꼭 그러한 부분은 체크하시고 글을 봐주시기 바랍니다. 감사합니다.
Spring Logback -> FluentD -> ES 연동 - 3. FluentD Systemd Service 구성 지난 글에서 아래와 같이 수행하여 AutoScaling의 경우 수행하면 된다고 하였지만, fluentd -c /home/ec2-user/.fluentd-ui/fluentd-ui.conf -d /home/ec2-user/.fluentd-ui/fluentd-ui.pid Systemctl enable로 해놓으면 서버가 켜지면서 수행되기 때문에 신경쓸 필요가 없습니다. 먼저 저는 수행하다보니 .fluentd-ui의 폴더 경로를 찾지 못하는 에러를 발견하여서 /home/ec2-user/fluentd라는 폴더를 만들고 해당 폴더에 conf를 세팅하겠습니다. mkdir fluentd cp .fluent-ui/fluent.conf fluentd/fluentd.conf 해당 폴더에 세팅이 되었으면 아래 경로에 fluen..
Sonarqube - Jenkins 연동 - 2. Sonarqube / Jenkins 세팅 소나큐브에서 로그인을 해줍니다. 초기 설정은 admin/admin 입니다. 로그인 후 Administration 메뉴에서 아래 메뉴를 찾아 Webhooks를 들어갑니다. Create를 해주시고 아래와 같이 입력해주세요 이렇게 하면 소나큐브에서 세팅은 끝납니다. 젠킨스로 들어가서 아래 플러그인을 설치해줍니다. 그 후, 시스템 설정에서 Server URL에 소나큐브 URL을 입력해주시면 끝납니다. Spring 공화국 답게 Spring 기준으로 파이프라인을 보여드리면 아래와 같습니다. stage('Sonarqube Analysis') { when { expression { return env.gitcloneResult ==~ /(?i)(Y|YES|T|TRUE|ON|RUN)/ } } steps { script ..
Sonarqube - Jenkins 연동 - 1. Sonarqube 설치 Jenkins에서 Sonarqube 정적검사를 하고, 퀄리티가 낮으면 배포가 되지 않도록 파이프라인에 넣는 부분을 작성하려합니다. 기존에 Ansible로 Sonarqube를 설치하는 글을 참고하셔서 설치하셔도 무방합니다. 저는 자바 1.8을 기준으로 세팅 할 예정이라 Sonarqube 7.2 버전을 사용하겠습니다. 기본 세팅 sudo amazon-linux-extras install -y epel sudo rm /etc/localtime sudo ln -s /usr/share/zoneinfo/Asia/Seoul /etc/localtime date sudo yum install -y python3 sudo python3 -m pip install --upgrade pip sudo python3 -m pip..
Spring Logback -> FluentD -> ES 연동 - 2. Spring Logback 설정 꽤나 고생한 부분인데, FluentdAppender가 따로있어, 이를 적용하여 사용하였습니다. 일반적인 LogbackSocket을 사용할 경우 아래와 같은 에러가 발생하여, FluentdAppender를 사용하여 처리하였습니다. 먼저 Pom.xml입니다. ch.qos.logback logback-classic 1.2.3 com.sndyuk logback-more-appenders 1.8.3 org.fluentd fluent-logger 0.3.4 org.komamitsu fluency-core 2.4.1 true org.komamitsu fluency-fluentd 2.4.1 true 다음은 Logback.xml입니다. 저희는 zipkin-slueth까지 설정하여 TraceId를 부여하고 있기 때문에 아..
Spring Logback -> FluentD -> ES 연동 - 1.FluentD UI 설치 및 Config 세팅 EKS를 사용하면서, 로그를 어떻게 넘기는 것이 좋을까 고민을 많이하였습니다. Log Stdout을 fluentd ds로 넘기려하다가 각 노드에 ds가 많아지면 노드가 하나 생성될 때, 기본적으로 차지하는 리소스 및 IP수 때문에, 실 서비스만 구동하여 관리하려던 설계와 방향이 맞지 않았습니다. 따라서 Spring Logback에서 부터 FluentD 서버로 FluentD -> ES Service로 시행착오를 거쳐 잘 진행된 부분입니다. 관리를 편하게 하기 위해서 UI가 있는 FluentD UI를 설치해보겠습니다. Amazon Linux2에서 아래 쉘을 통해 루비 및 FluentD를 설치해줍니다. sudo amazon-linux-extras install -y epel sudo amazon-linux-e..
EKS - VPC CNI Udpate CNI는 Container Network Interface로 제가 Secondary IP 리밋을 주는 글을 작성했을 때, Docs 링크와 같이 간단하게 설명을 주었습니다. VPC CNI가 1.6.3 / 1.7.5 두개의 버전을 현재 공식적으로 권유하고 있으며 최근 EKS를 생성할 때는 위의 두 버전 중 하나를 골라 구성할 수 있도록 바뀌었습니다. IP 할당에 관한 이슈들이 생겼을때 AWS에서는 VPC CNI1.7.5로의 업데이트도 권유합니다. 먼저 CNI 버전이 낮다면, 각 클러스터 버전에서 가장 맞는 kube-proxy와 coredns 버전을 맞춰주시기 바랍니다. 아래 Docs를 참조하면 가능하며, 간단하게 그 방법을 소개하겠습니다. docs.aws.amazon.com/ko_kr/eks/latest/u..
AWS CLI - 샘플 이전글에서 query에 대해 이해를 했다면 매우 쉬우나 막상 작성하려면 귀찮으니 가져다 바로 쓸 예시를 업로드합니다. (사실 제가 쓰려고 대충 메모해놓는 용도입니다) ** 20201210 GP2 -> GP3 변환 쉘 추가 ** ** 20201218 S3 각 버킷 사이즈 구하는 쉘 추가 ** 1. 모든 인스턴스에 키 값이 TEST이고, Value가 Y인 태그 넣기 / 지우기 instances=$(aws ec2 describe-instances --query "Reservations[].Instances[].InstanceId") aws ec2 create-tags --resources $instances --tags Key=TEST,Value=Y aws ec2 delete-tags --resources $..