본문 바로가기
반응형

aws33

AWS CodePipeLine ECS 배포 구성 AWS Code PipeLine을 사용하여 ECS에 배포하는 구성을 정리해본다. 어플리케이션은 nginx 이미지를 사용한다. 1. 소스 준비(CodeCommit) 배포 테스트를 위해 nginx용 테스트 컨테이너 소스를 작성한다. index.html 파일은 기본 index.hml 파일을 대체하기 위한 테스트용도이다. Docker Container Nginx Dockerfile은 다음과 같이 작성한다. FROM nginx:1.21.1 COPY ./index.html /usr/share/nginx/html/index.html EXPOSE 80 CodeBuild 사용을 위해 buildspec.yml 파일을 작성한다. env 항목의 AWS_ACCOUNT_ID는 각자의 ID로 등록한다. version: 0.2 en.. 2022. 8. 26.
AWS ECS 구성하기 AWS ECS 구성을 테스트하면서 진행했던 과정을 정리해본다. ECS(Elastic Container Service)는 AWS에서 제공하는 완전관리형 컨테이너 오케스트레이션 서비스이다. 최근에 EKS를 많이 사용하는 추세인것 같기는 하지만 컨테이너 관리의 난이도나 복잡도 측면에서 EKS는 직접 관리해줘야 하는 부분이 많아 ECS사용도 고려해볼만 하다고 생각한다. 물론, ECS를 사용하면 EKS 보다는 AWS에 종속성은 많이 생긴다. ECS 주요 구성 요소 - Cluster: 관리할 컨테이너 리소스들의 논리적인 그룹 단위 - Task Definition: 사용할 컨테이너들에 대한 작업 정의, 컨테이너 이미지/CPU/Memory/네트워킹모드/로깅구성/호스팅인프라 등 정의 - Task: Task Definit.. 2022. 6. 4.
AWS ECR SpringBoot Docker Image Push AWS에서 제공하는 Image Repository에 SpringBoot로 작성된 Docker Image를 Push하는 방법을 정리해본다. 1. Dockerfile 작성 먼저 간단한 SpringBoot 어플리케이션에 Dockerfile을 작성한다. Dockerfile 내용은 아래와 같이 작성한다. FROM adoptopenjdk/openjdk11:jdk-11.0.11_9-alpine-slim ARG JAR_FILE_PATH=build/libs/*.jar COPY ${JAR_FILE_PATH} app.jar ENTRYPOINT ["java", "-jar", "app.jar"] 참고로 베이스 이미지를 'FROM adoptopenjdk/openjdk11'로 설정을 했을 때와 'FROM adoptopenjdk/o.. 2022. 6. 1.
Elastic Stack HelloWorld(Elastic Cloud, EC2 filebeat설치) Elastic Stack - Elastic사에서 제공하는 로그관리 오픈소스 제품들의 모음 Beats - 다양한 종류의 데이터를 Logstash, Elasticsearch로 보낼 수 있는 데이터 수집기 - Metricbeat(시스템 지표), Filebeat(로그 파일), Packetbeat(네트워크 데이터) Logstash - Elasticsearch로 데이터 전송 전 가공하는 역할 - ex. Elasticsearch 형식에 맞게 변환, 개인정보 등 민감 데이터 삭제, IP주소 기반으로 지역정보 추가 등 Elasticsearch - Apache Lucene 검색 엔진 기반 데이터 저장, 인덱싱, 데이터 검색, REST API 제공 Kibana - 데이터 시각화(대시보드 등) Elastic Cloud 테스트.. 2022. 3. 13.
AWS CloudWatch Logs 적재(CWAgent) 지표를 통한 모니터링이 아닌 "로그"를 통한 모니터링을 지원 CloudWatch Logs 구성 로그 이벤트 - 독립적인 이벤트로 볼 수 있는 로그 모음 - ex. 클라이언트 요청부터 응답까지 쌓인 여러 줄의 로그를 하나의 이벤트로 볼수 있음 로그 스트림 - 동일한 소스에서 기록된 로그 이벤트들을 시간순으로 모아둔 스트림 로그 그룹 - 여러 로그 스트림을 하나로 모아둔 곳. - ex. 여러 인스턴스에서 발생한 로그들을 모아둔 그룹 CloudWatch Agent를 통한 Nginx Log 적재 * 기존에는 CloudWatch Logs Agent가 별도로 존재했지만 최근에는 CloudWatch Agent가 지표 및 로그를 동시에 처리 할 수 있음 - CloudWatch 로그그룹에서 '로그 그룹 생성' 클릭 - .. 2022. 3. 12.
AWS CloudWatch Alarm(경보) 설정 CloudWatch Alarm 테스트 - CloudWatch에서 '경보 생성' 버튼 클릭 - '지표선택' 클릭 - 테스트로 ELB의 'RequestCount' 를 선택 함 - 지표가 RequestCount(요청량)이니깐 통계를 '합계' 변경하고 다음 - 조건에 10 보다 큼 설정, 데이터포인트는 '1/1' 선택(= 5분내에 RequestCount가 10이 넘는 경우가 1번 이상(1/1) 발생하면 알림 발생 의미) - SNS 주제 설정 및 알림 수신할 이메일 입력, '경보상태'와 '정상' 상태 2개로 구성했음 - 이름 간단히 입력하고 생성 - 수신 이메일로 등록했던 메일을 확인해보면 메일이 왔고, 이메일 Confirm 진행 - ALB를 통해서 요청날려보니 아래와 같이 'ALARM(경보)' 상태 메일 옴 -.. 2022. 3. 12.
AWS CloudWatch Agent 사용(EC2) CloudWatch로 EC2인스턴스에 대한 기본적인 지표들(CPU, 네트워크I/O, 디스크 R/W 등)은 확인 가능하지만, Memory, 디스크 사용량은 기본적으로 제공하지 않음. 이 지표들은 OS내에서만 확인이 가능한데, AWS에서 지표를 위해 사용자들의 OS에 임의로 접근이 불가능 하기 때문이라고 한다. 이 정보들은 CloudWatch Agent를 통해서 기록 가능 CloudWatch Agent로 EC2 메모리, 디스크 사용량 지표 기록 1. EC2 Role(역할) 생성 - IAM에서 '역할만들기' 클릭해서 'AWS서비스'의 'EC2' 선택하고 다음 - 권한(Permission) 정책에서 "CloudWatchAgentServerPolicy" 선택하고 다음 - '역할 이름' 간단히 입력하고 생성 함 2.. 2022. 3. 12.
AWS CloudWatch 사용자 지정 지표(Custom Metrics) 생성 Custom Metrics(사용자 지정 지표) AWS에서 제공되는 지표가 아닌 사용자 임의로 생성하는 지표 AWS CLI 및 SDK를 통해서 기록 가능 AWS CLI를 통한 Custom Metrics 생성 방법 - 기본 EC2 생성 및 접속해서 "aws configure" 설정, 해당 계정은 [CloudWatchEventsFullAccess] 정책을 가지고 있음 - test 디렉토리 및 test.json 파일 생성 mkdir test vi test.json - 아래 데이터 test.json 파일에 입력(출처: https://gist.github.com/deopard/76d334b9c4616c8e5e60429631c0f3b2) "Timestamp" 항목은 테스트하는 시점 2주이내로 변경 [ { "Metri.. 2022. 3. 11.
반응형