전체 글 208

DocumentDB mongo셸로 DB 접근 및 Fail-over(장애 조치)

Mongo 셸 통해 DB 접근 참고 문서: https://docs.aws.amazon.com/ko_kr/documentdb/latest/developerguide/connect-ec2.html#connect-ec2.connect Amazon Linux에서 mongo 셸 설치 리포지토리 파일 생성 echo -e "[mongodb-org-5.0] \nname=MongoDB Repository\nbaseurl=https://repo.mongodb.org/yum/amazon/2/mongodb-org/5.0/x86_64/\ngpgcheck=1 \nenabled=1 \ngpgkey=https://www.mongodb.org/static/pgp/server-5.0.asc" | sudo tee /etc/yum.repo..

AWS/Project 2024.02.09

AWS Backup

AWS Backup 백업 계획 백업 시간과 백업 대상 리소스 등을 정의하는 정책 표현식이다. AWS Backup은 자동으로 백업 계획에 따라 자동으로 백업을 작성하고 유지한다. 유의할 점은 Daily 백업과 Monthly 백업을 함께 지정할 경우, Monthly 백업은 실행되지 않고, Daily 백업만 실행된다. 백업 볼트 백업에 대한 메타 데이터 저장소이다. 정상적인 백업 내역을 확인할 수 있는 부분이다. 유의할 점은 백업 계획당 백업 볼트 하나만 지정할 수 있으므로 백업 대상 리소스가 1개 초과일 경우에는 리소스별 백업 계획 및 백업 볼트를 각각 구성하는 것을 권장한다. 운영팀 입장에서, 모든 리소스에 대한 백업 내역을 한 대시보드로 관리하기는 어렵기 때문이다. 리소스 할당 IAM 기본 역할로 백업 ..

AWS/Service 2024.02.09

EC2의 user data를 사용해 Init Script 작성

참고 블로그: https://velog.io/@_woogie/EC2%EC%8B%9C%EC%9E%91%ED%95%A0-%EB%95%8C-%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8A%B8-%EC%9E%90%EB%8F%99%EC%8B%A4%ED%96%89%ED%95%98%EC%97%AC-%EC%84%9C%EB%B2%84-%EB%B0%B0%ED%8F%AC%ED%95%98%EA%B8%B0feat.-pm2 https://docs.aws.amazon.com/ko_kr/AWSEC2/latest/UserGuide/user-data.html서버 재부팅시 자동으로 서비스 올라가는 스크립트를 작성할 것이다. ssh password 로그인 활성화#!/bin/bashsudo -ised -i 's/PasswordA..

Script/Bash 2024.02.09

Security Group(보안그룹)

공통 Source IP들을 대상으로 여러 포트를 Open해야할 경우, Source IP들을 리스트로 만들면 보안그룹을 만들때마다 일일이 지정하지 않고 한 번에 지정할 수 있어 편리하다. 이는 SG in SG 으로는 불가하고, Prefix List 를 생성하여 지정해야 했다. Managed Prefix List(관리형 접두사 목록) 접두사 목록의 최대 항목이 30인데, 처음에 생성될 때 접두사 목록을 2개만 작성해도 최대 사이즈인 30으로 잡히므로 접두사 목록 크기 조정으로 조정이 필요하다. 접두사 목록이 5개 항목이 있다고 가정할 경우, 단점은 보안그룹을 생성할 때, 규칙 하나에 포트와 접두사 목록을 연결한다면 규칙이 5개 (포트* 접두사 항목 수)로 카운팅 된다는 것이다. 그래서 보안그룹 내 규칙 갯수..

AWS/Service 2024.02.09

AWS ALB (Application LoadBalancer)

ALB 규칙을 사용해 http를 https로 리다이렉션다음은 ALB 리스너 및 규칙이다.크게 HTTP:80과 HTTPS:443으로 리스너를 구성하였다http로 들어온 트래픽은 https로 리다이렉션하기 위해 http:80으로 들어온 트래픽은 https로 리다이렉션한다. 다음은 HTTPS:443 리스너 규칙이다.기본값은 고정 응답 코드 200을 반환하도록 구성한다.400으로 구성할 경우, ALB HealthCheck할 때 정상적으로 확인이 안되므로 유의한다. ALB TargetGroup HealthCheck보통 개발자들에게 healthcheck 용 더미(웹페이지)를 제공 받는다.상태 검사 경로는 상대경로이다.서버 내 해당 트래픽 포트로 돌고 있는 응용 프로그램의 루트 경로에서부터 healthcheck 페이..

AWS/Service 2024.02.09

서비스 API 카테고리(LoadBalancer)

서비스 API 카테고리 컨테이너를 외부에 공개하는 엔드포인트를 제공하는 리소스 - 서비스 - ClusterIP - ExternalIP (ClusterIP의 한 종류) - NodePort - LoadBalancer - Headless (None) - ExternalName - None-Selector - 인그레스 LoadBalancer 쿠버네티스 클러스터 외부의 로드밸런서에 외부 통신이 가능한 가상 IP를 할당할 수 있다. GCP/AWS/Azure/OpenStack을 비롯한 클라우드 프로바이더가 LoadBalancer 서비스를 사용할 수 있는 환경을 제공하고 있다. NodePort나 ExternalIP는 하나의 쿠버네티스 노드에 할당된 IP주소로 통신하기 때문에 그 노드가 단일 장애점(SPoF)가 되어버린..

Kubernetes 2024.02.08

서비스 API 카테고리(ExternalIP, NodePort)

서비스 API 카테고리 컨테이너를 외부에 공개하는 엔드포인트를 제공하는 리소스 - 서비스 - ClusterIP - ExternalIP (ClusterIP의 한 종류) - NodePort - LoadBalancer - Headless (None) - ExternalName - None-Selector - 인그레스 ExternalIP ClusterIP 클러스터 내부 로드밸런서의 리스너 포트와 대상 서버의 포트 지정 으로 부하분산 ExternalIP 클러스터 외부(노드)의 IP 및 리스너 포트 그리고 클러스터 내부 로드밸런서의 리스너 포트와 대상 서버의 포트 지정 근데 보통 노드에 안붙이고 클라우드의 로드밸런서 IP로 붙으려 한다. NodePort ExternalIP는 지정한 쿠버네티스 노드의 IP 및 리스너..

Kubernetes 2024.02.07

서비스 API 카테고리(ClusterIP)

작성중... 서비스 API 카테고리 컨테이너를 외부에 공개하는 엔드포인트를 제공하는 리소스 - 서비스 - ClusterIP - ExternalIP (ClusterIP의 한 종류) - NodePort - LoadBalancer - Headless (None) - ExternalName - None-Selector - 인그레스 쿠버네티스 클러스터 네트워크와 서비스 파드 # 쿠버네티스 API에 접속할 수 있도록 쿠버네티스 서비스가 생성됨 $ kbuectl get services NAME TYPECLUSTER-IPEXTERNAL-IPPORT(S) AGE kubernetes ClusterIP10.3.240.1 443/TCP 5d10h sample-clusterip ClusterIP 10.3.251.192 8080..

Kubernetes 2024.01.20

서비스 API 카테고리(서비스)

참고 사이트: https://computing-jhson.tistory.com/106 작성중.. 서비스 API 카테고리 컨테이너를 외부에 공개하는 엔드포인트를 제공하는 리소스 - 서비스 - ClusterIP - ExternalIP (ClusterIP의 한 종류) - NodePort - LoadBalancer - Headless (None) - ExternalName - None-Selector - 인그레스 쿠버네티스 클러스터 네트워크와 서비스 파드 내부에는 여러 컨테이너가 존재할 수 있고, 같은 파드 내 컨테이너들은 동일한 IP 주소를 할당받는다. 따라서 같은 파드의 컨테이너로 통신하려면 localhost로 통신하고, 다른 파드에 있는 컨테이너와 통신하려면 파드의 IP 주소로 통신한다. 쿠버네티스 클러스..

Kubernetes 2024.01.20

워크로드 API 카테고리(크론잡)

워크로드 API 카테고리 컨테이너 실행에 관련된 리소스 - 파드 - 레플리케이션 컨트롤러 - 레플리카셋 - 디플로이먼트 - 데몬셋 - 스테이트풀셋 - 잡 - 크론잡 크론잡(cronjob) 크론잡과 잡의 관계는 디플로이먼트와 레플리카셋의 관계와 비슷하다. 즉, 크론잡이 잡을 관리, 잡이 파드를 관리하는 3계층 구조라고 할 수 있다. 크론잡 생성 spec.schedule에는 Cron과 같은 형식으로 시간을 지정할 수 있다. apiVersiion: batch/v1beta1 kind: CronJob metadata: name: sample-cronjob spec: schedule: "*/1 * * * *" concurrencyPolicy: Allow startingDeadlineSeconds: 30 succes..

Kubernetes 2024.01.20