본문 바로가기

DevOps

(36)
[AWS] AWS CLI로 보안그룹 연결된 리소스 확인 보안그룹 인바운드 규칙을 정리하기 전에 어디에 어떻게 영향을 미칠지 확인하기 위해 연결된 리소스를 확인하고자 했다. (전에 그런 거 안 보고 정리했다가 데이터팀에서 사용하는 Redshift가 갑자기 접근이 안 돼서 추적당했는데 범인은 나였다....) 방법 1. AWS CLI 로그인 2. 보안 그룹과 연결된 네트워크 인터페이스 조회 aws ec2 describe-network-interfaces --filters Name=group-id,Values=sg-0d421ca99b077b6cc --region ap-northeast-2 --output json 연결된 리소스 있을 때 연결된 리소스 없을 때 참고 https://aws.amazon.com/ko/premiumsupport/knowledge-center..
[Elastic] Elastic APM 도입기 APM 도입 계기 1월 초 여느 때처럼 기술 사이트들을 둘러보다가 아래 글을 보게 되었다. https://dev.to/statuspal/15-devops-and-sre-tools-you-should-know-about-in-2023-h1f?utm_source=oneoneone 15 DevOps and SRE Tools you Should Know About in 2023 With the constantly evolving landscape of technology, professionals in the DevOps and SRE fields need... dev.to Elastic APM을 보고 바로 이거야~! 하고 서버팀에 글을 공유하고, 바로 로컬 테스트 해보고, 바로 CTO님한테 개발 서버에 도입해..
[Jenkins/Java17] Jenkins Java 17 프로젝트 배포(JDK 추가, Jib image JDK) 회사는 CI/CD 툴로 젠킨스를 사용 중이다. 이번에 신규 프로젝트는 java 17을 사용했는데 젠킨스 배포 중 예상치 못한 오류를 발견했다. 젠킨스 jdk는 기본으로 11이라서 프로젝트 build가 되지 않았다. 혹시나 jdk를 따로 적용하기 위해 젠킨스 서버나 도커를 새로 띄워야 하나 생각했는데 알아보니 젠킨스에 jdk를 추가하는 방법이 있어 기존 젠킨스 서버를 그대로 쓸 수 있었다. Jenkins JDK 추가 그대로 따라했다. https://medium.com/devops-with-valentine/jenkins-how-to-use-a-different-java-jdk-version-in-jenkinsfile-d1f0f2d04bcf Jenkins: How to Use a Different Java ..
[AWS/ECS] ECS 서비스 검색 통합 활성화 기능 ECS 서비스를 생성하다 보면 서비스 검색 통합 활성화 옵션이 있다. 결과적으로 이 기능은 Route53에 프라이빗 도메인을 생성해준다. ecs의 경우 계속해서 새로운 작업이 배포될 때마다 아이피가 변경되는데 private subnet에 있는 서비스에 도메인을 적용해서 같은 VPC에 있는 서비스들끼리는 해당 도메인을 사용해 통신할 수 있다. 나는 게이트웨이에서 private subnet에 등록된 서비스들을 라우팅하기 위한 주소를 설정해주기 위해 적용했다. 설정 주의사항 동일한 이름의 도메인이 있을 때 호출하는 서비스의 VPC에 속하는 프라이빗 네임 스페이스를 먼저 검색한다. 설명하기 어렵다. https://docs.aws.amazon.com/ko_kr/Route53/latest/DeveloperGu..
[AWS/ECS] ECS Fargate(2) - 서비스 운영을 위한 각종 설정 기록(outbound 고정 IP, Route53 적용) ECS Outbound 고정 IP 할당하는 법 ecs task의 private ip를 고정 ip로 설정할 수는 없지만 외부 api를 호출할 때의 외부 ip를 고정 IP를 설정할 수 있다. - 고정 IP를 적용하고자 하는 서비스는 private subnet에 위치해야 한다. - 탄력적 IP를 할당 받는다. - NAT 게이트웨이에 탄력적 IP를 적용한다. - 라우팅 테이블을 수정한다. 퍼블릭 서브넷은 인터넷 게이트웨이를 연결시키고 프라이빗 서브넷에는 NAT 게이트웨이를 연결시킨다. ECS Route53으로 도메인 적용 외부 접속을 위해 route53을 이용해 도메인을 적용하고자 한다면 ALB를 route53에 연결해주면 된다. 참고 https://aws.amazon.com/ko/premiumsupport/k..
[AWS/ECS] ECS Fargate(1) - 서비스 시작을 위한 각종 설정 기록(eureka client 등록, health check) 회사에서 EC2를 이용한 서버 운용 비용이 너무 많이 들어 ECS로 전환하기로 했다. 운이 좋게 리소스가 남는 내가 작업하게 되었다. 거의 3주를 ECS 구성하는 데 헤매서.. 까먹지 않기위해 ECS에 관한 것을 최대한 기록하려고 한다. ECS 배포까지의 작업 순서 VPC 생성 이번에 VPC를 새로 생성하면서 모든 서비스가 한 VPC 안에 있도록 했다. Subnet 생성 유레카, 게이트웨이, config 서버는 public subnet 서비스들은 private subnet에 배치했다. Application Load Banlancer 추가 로드밸런서를 추가하면서 연결한 target group은 리스너에서 제거한다. ecs 서비스를 생성하면서 target group을 생성하기 때문에. ECS cluster를..
[AWS/Jenkins] Spring Boot Jenkins+ECR+ECS를 이용한 CI/CD 회사의 CI/CD 방식을 아예 개편하게 되었다. CodePipeline+Beanstalk -> Jenkins+ECR+ECS 이렇게. 배포 과정1. 개발자가 push를 하면 jenkins의 webhook이 발동되어 ci/cd job이 실행. 2. jenkins는 git code를 pull 받아 Jib을 통해 docker image를 생성해 ecr에 push. 3. 그 후 ecs update service 명령어를 이용해 ecs가 새로운 배포를 시작. 사전준비1. 깃허브 접근을 위한 ssh-key와 aws 접근을 위한 aws-key를 추가해준다. 2. github settings -> webhooks에 jenkins webhook url을 추가해준다.jenkins-url/github-webhook/을 적어주..
[AWS/RDS] RDS MySQL 슬로우쿼리 모니터링 -> 슬랙 알림 진행 순서 1. RDS 파라미터 변경 2. RDS 느린 쿼리 로그 내보내기 설정 3. Lambda 함수 생성(1) - cloud watch log 테스트 4. Lambda 함수 생성(2) - log 파싱 후 슬랙 전송 5. CloudWatch 로그 그룹 > 구독 필터 생성 RDS 파라미터 변경 - slow_query_log 1로 변경 슬로우쿼리 저장하겠다. - long_query_time 5로 변경 5초 이상부터 슬로우쿼리다. - log_output FILE로 변경 TABLE로 설정하면 mysql.slow_query 테이블에 저장되고 FILE로 해야 cloud watch 로그 그룹에 파일이 생성됩니다. 파라미터를 변경해 준 후 파라미터 그룹을 변경해줍니다. DB 인스턴스 재부팅 해줘야 반영됩니다. RDS..