본문 바로가기

Infra/AWS5

ECS-ElasticWatch-OpenSearch 계기 사내 서비스에서 로그를 확인할 때 elasticWatch로 확인하고 있었다. 특정 로그를 확인하기 위해 검색을 하면 find 하는 시간이 상당 시간이 걸린다. 로그 인사이트로 확인을 하면 조회가 빨리 되지만 쿼리를 짜기 위해 로그 인사이트 쿼리를 공부해야 한다. 이러한 점들에서 디버깅하는데 시간이 오래걸리고 트래킹 추척이 비효율적이라서 AWS OpenSearch service를 도입하기로 했다. 과정 OpenSearch 도메인 생성 -> ElasticWatch 로그 그룹 선택 -> 구독 필터 선택 -> Opensearch 선택 -> 로그 형식 취향에 맞게 선택후 패턴 지정하고 스트리밍 시작 알아야 될 사항 Lambda 로 OpenSearch에 로그를 넣어주기 때문에 역할(IAM) 생성 필요 생성한 .. 2022. 5. 19.
EC2 volume 축소 EBS 계기 현재 사이드 프로젝트에 CI/CD 를 적용 시켜놨다. travisCi - s3 - Codedeploy - EC2 이런식으로 흐름이 흘러간다. 근데 갑자기 EC2에 docker image 가 안바뀌는걸보고 Codedeploy 에 배포 history 를 보았다. 배포 실패가 떠있었으며 공간이 부족하다고 나와있었다. df -h 로 확인할결과 남은 메모리 공간 없이 100프로 다 사용중이며 어떤 데이터들때문에 메모리가 차있는지 의문이었다. 우선 추후에 알아볼려고하였고 급한대로 볼륨을 늘였는데 생각없이 늘리다가 과하게 늘려 버렸다. 그래서 다시 축소를 하는데 증가 만 되고 축소는 되지않았다. 이러한 이유로 EC2 볼륨 축소 시키는데 필요한 지식들을 검토하고 적용 해보았다. 과정 A => 루트 볼륨의 크기를 .. 2022. 3. 1.
ECS 기본 개념 계기 자사 인프라가 ECS(fargate) 서비스를 사용하고 있어 알아보게 되었다. ECS란? AWS에서 제공하는 컨테이너 오케스트레이션 서비스로 여러 어플리케이션 컨테이너를 쉽고 빠르게 실행하고, 컨테이너를 적절하게 분배 및 확장 & 축소 할 수 있도록 도와주는 서비스입니다. 주요개념 Fargate EC2 인스턴스의 서버나 클러스터를 관리할 필요 없이 컨테이너를 실행하기 위해 Amazon ECS || EKS*를 위한 기술입니다. 컨테이너를 실행하기 위해 가상 머신 클러스터를 프로비저닝, 구성 및 확장할 필요가 없습니다. 서버 유형을 선택하거나, 클러스터를 확장할 시점을 결정하거나, 클러스터 패킹을 최적화할 필요가 없습니다. 서버 또는 클러스터에 대해 고민하거나 상호 작용할 필요가 없습니다. 애플리케이션.. 2022. 2. 17.
IAM,RDS, CodeDeploy 간단한 설정방법 Rds 서브넷 그룹 ec2 인스턴스 와 같은 vpc 설정 가용영역 지정 파라미터 그룹 korean 지원되게 변경 char~ , collatcion~ 관련된 설정들을 ut8,utf8_general_ci 로 바꿔준다. 퍼블릭 액세스 예 외부의 접근가능 (ex 로컬 서버) 보안그룹 ec 내부에 쓸거면 ec2 ip주소 인바운드 그룹에 지정 아니요 같은 VPC 내부에있는 ec2인스턴스 만 연결가능 IAM 역할 생성 codedeploy (codedeploy 에 지정) codedeployrole ec2 (시작탬플릿에 지정 Or EC2 인스턴스에 지정) AmazonEC2RoleforAWSCodeDeploy Codedeploy 배포 그룹 생성 배포유형 현재위치 환경 구성 Amazon EC2 Auto Scaling 그룹 .. 2021. 10. 16.
nest.js docker-tarvisCi-Aws(codeDeploy-Ec2-Rds) 자동화배포 개발 환경 - Nest.JS -> Mysql(도커 파일 작성) -> 도커-컴포즈 생성후 개발 환경 테스트 배포 환경 - Nest.Js(도커파일 수정) -> 도커-컴포즈 수정 -> iam 생성후 키 파일 저장 -> EC2 인스턴스 생성(보안그룹 (rds용까지생성)) -> s3 버킷생성 -> rds(서브넷,파라미터그룹 생성) 생성 -> 인스턴스 연결후 rds 연동 테스트 -> codeDeploy (애플리케이션 , 배포그룹 생성) -> travisCi.yml 최종 작성 -> git push 순으로 되는거같다.! nest.js 코딩을 하던중 자동화 배포를 해보고싶었따. 내가 생각하기에는 인프라를 먼저 셋팅 후에 서비스를 구현하는게 더 나을 거같았다. - 여러 모듈을 사용하고 복잡해진 코드위에 인프라 셋팅시 오류.. 2021. 9. 4.