전체카테고리 468

Netflix의 Cosmos Platform에 대해

원문링크https://netflixtechblog.com/the-netflix-cosmos-platform-35c14d9351ad The Netflix Cosmos PlatformOrchestrated Functions as a Microservicenetflixtechblog.com Cosmos 소개Cosmos는 마이크로서비스의 장점과 비동기식 워크플로우 및 서버리스 기능을 결합한 컴퓨팅 플랫폼입니다. 그 장점은 몇 분에서 몇 년까지 지속되는 복잡한 계층적 워크플로우를 통해 조정되는 리소스 집약적 알고리즘을 포함하는 애플리케이션입니다. 한 번에 수십만 개의 CPU를 사용하는 높은 처리량 서비스와 인간이 계산 결과를 기다리는 대기 시간에 민감한 워크로드를 모두 지원합니다. Cosmos 탄생 배경Netfl..

Programming/MSA 2024.06.09

Kubernetes용 생성 AI: K8sGPT 오픈 소스 프로젝트

원문링크https://www.cncf.io/blog/2024/06/07/generative-ai-for-kubernetes-meet-k8sgpt-open-source-project/ Generative AI for Kubernetes: Meet K8sGPT Open Source ProjectLearn more about K8sGPT, an open source project that uses generative AI to give Kubernetes superpowers to everyone.logz.io  요약Kubernetes 환경 내에서 무슨 일이 일어나고 있는지에 대한 모든 데이터를 수집하고, 무엇이 잘못되었는지, 심지어 해결 방법까지 알려줄 수 있는 마법 같은 인공 지능 자문가가 있다면 어떨까요..

AI * ML 2024.06.09

AWS) ECS와 Fargate Computing에 영구볼륨 추가

ECS에 DBMS를 올려야하는경우 종종 영구볼륨이 필요한데, 좀 까다롭다. 영구볼륨으로 사용할 수 있는 리소스는 EFS이다. 1. EFS는 NFS로 동작하는 파일시스템이다. 따라서 이에 걸맞는 보안그룹을 정의한다. 2. EFS 파일시스템을 생성한다. 적절한 VPC와 서브넷을 할당한다. 3. 파일시스템의 네트워크를 정의한다. 이때 보안그룹에 방금 정의한 EFS 통신이 가능한 보안그룹을 적용한다. 4. 엑세스 포인트를 정의한다. 이때 루트디렉토리 경로란 마운트할 대상의 경로를 말한다. 파일소유자 권한을 Root, 755로 정의한다.(이건 옵션일수도 있다.) 5. 태스크 정의 시 볼륨을 할당한다. 이때 사전정의한 EFS를 선택하기만 하면된다. 전송암호화는 체크해야한다. 6. 탑재지점을 정확하게 지정한다. 7...

Gitlab-CI) AWS CLI 사용을 위한 인증 방법

ECR에 이미지를 Push하거나 할때 AWS Configure가 미리 선행되어 있어야 한다. Gitlab CI는 관련한 Action을 이미 정형화 해서 서비스 제공을 하는데... 1. AWS IAM에서 사용자를 추가한다. 그리고 Access Token을 발행한다. 2. 위 사용자에 Policy를 부여한다. 해당 Poilcy는 아래의 JSON과 같이 정의한다. { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ecr:CompleteLayerUpload", "ecr:GetAuthorizationToken", "ecr:UploadLayerPart", "ecr:InitiateLayerUpload", "ecr:BatchCheck..

PaaS/CI CD 2024.03.11

AWS) 다른 Region에 리소스 생성 못하도록 IAM 정책만들기

미연의 사고를 방지하기 위해 다른 리전에 리소스 생성을 제어할 필요가 있다. 필자의 경우 IAM 정책을 만들어서 운영중이다. 글로벌 리소스를 제외하고는 SEOUL 리전 외 생성을 금지하겠다. { "Version": "2012-10-17", "Statement": [ { "Sid": "DenyAllOutsideRequestedRegions", "Effect": "Deny", "NotAction": [ "cloudfront:*", "iam:*", "route53:*", "support:*" ], "Resource": "*", "Condition": { "StringNotEquals": { "aws:RequestedRegion": [ "ap-northeast-2" ] } } } ] }

Github Actions) 나의 Github 계정에서 수행된 Actions History를 모두 수집해보자

본 과제는 Github Actions 사용 추이 통계를 작성하는 과정에서 필요한 데이터를 얻기 위해 추진한 내용이다. Github API에서는 특정 Repository에 대한 Github Actions 이력을 보여준다. 예시로 https://api.github.com/repos/armyost/testPagePy/actions/runs 와 같이 조회하게 되면 아래와 같은 JSON 데이터 가 나온다. { "total_count": 106, "workflow_runs": [ { "id": 8049570541, "name": "Python application", "node_id": "WFR_kwLOFs44Vs8AAAAB38qy7Q", "head_branch": "master", "head_sha": "3120..

PaaS/CI CD 2024.03.03

GKE사용시 kube-system Namespace에 프로비저닝 되는 모듈

Essentail event-exporter-gke, fluentbit-gke : 컨테이너 로그와 시스템 로그의 경우, GKE는 기본적으로 컨테이너 로그를 읽고 유용한 메타데이터를 추가한 다음 Cloud Logging에 저장하는 노드별 로깅 에이전트를 배포합니다. GKE 로깅 에이전트는 다음 소스에서 컨테이너 로그를 확인합니다. 컨테이너화된 프로세스의 표준 출력 및 표준 오류 로그 kubelet 및 컨테이너 런타임 로그 VM 시작 스크립트 등 시스템 구성요소의 로그 gke-metrics-agent : GKE는 시스템 구성요소에서 내보낸 Metric을 수집합니다. GKE 클러스터에서 Cloud Monitoring으로 Metric을 전송합니다. ip-masq-agent : IP 매스커레이딩은 다대일 IP 주..

Github Actions) Workflow 자동실행 조건에 Tag와 Branch 모두 걸기

이놈의 Workflow가 하나의 Commit의 일부이다 보니까, 여기저기 Branch에서 조건만 맞으면 돌아간다.. Tag조건이 원래 아래와 같은데 이게 문제가.. Branch안따지고 걍 Tag push하면 돌아간다는거다.. on: push: tags: - 'v*' 그래서 Tag를 붙이는 Target이랑 같이 And 조건을 걸면 훨씬 안정적인데, 이게 쉽지 않다. 결국 Release condition으로 가야한다. on: workflow_dispatch: release: types: [published] jobs: deploy: if: github.event.release.target_commitish == 'prod' uses: ./.github/workflows/deploy-application.ya..

PaaS/CI CD 2024.02.20

Github Actions) 성능제고를 위한 방안 cache

의존성 다운로드가 있을때는 Cache가 상당히 효과가 있다. https://github.com/actions/cache GitHub - actions/cache: Cache dependencies and build outputs in GitHub Actions Cache dependencies and build outputs in GitHub Actions - actions/cache github.com - name: Load cached node_modules uses: actions/cache@v3 with: path: node_modules key: ${{ runner.os }}-node-modules-${{ hashFiles('**/package.json') }} 이러한 프로세스 후에 npm in..

PaaS/CI CD 2024.02.20