Devops50 Elemental MediaConvert 사용기 with FastAPI, S3 Presigned URL 안녕하세요.사이드 프로젝트로 챌린지 관련 프로젝트를 진행하고 있습니다. 사용자들은 챌린지를 수행했다는 인증 영상을 촬영해서 업로드하고, 관리자는 그 영상을 보고 승인 여부를 기록 합니다.여기서 든 생각은 사용자들은 갤럭시, 아이폰 등을 사용하여 영상을 촬영할 것이고, 촬영한 영상을 업로드 한다면 보통 4K 30~60fps, HEVC(H.265)로 S3에 저장될 것 입니다. 스토리지 비용이 많이 발생할 것으로 생각되어 많은 고민을 한 결과 MediaConvert를 이용해서 트랜스코딩 해서 영상 화질과 비트레이트를 낮추는 걸로 결정했습니다.Media Convert란?클라우드 기반 비디오 트랜스코딩(Transcoding; 사이즈와 압축(Codec)) 서비스즉 ,한 가지 포맷의 영상 → 다양한 포맷/코덱/해상도.. Devops/AWS 2025. 8. 30. 앤서블(Ansible) 이란? 안녕하세요.Ansible이 무엇인지 그리고 더 나아가 어떻게 쓰이는 지에 대해 알아보겠습니다.Ansible 이란? 공식문서에 설명되어 있는 내용을 가져와 보면 아래와 같습니다.'Ansible은 복잡성을 줄이고 어디에서나 실행되는 오픈 소스 자동화를 제공합니다.''Ansible을 사용하면 거의 모든 작업을 자동화할 수 있습니다.'즉, 인프라를 자동화 한다는 것 입니다. 어, 인프라를 자동화 한다? Terraform 도 인프라를 자동화하지 않나?간단히 Ansible 과 Terraform의 차이에 대해 알아보겠습니다.항목AnsibleTerraform목적구성 관리(Configuration Management)인프라 프로비저닝(Infrastructure Provisioning)상태 관리상태를 따로 저장하지 않음 .. Devops 2025. 6. 25. AWS EC2 OOM-killer 문제로 프로세스 강제 종료, swapfile 로 개선 안녕하세요. 프로젝트를 하다 보면 이유 모를 이유로 프로세스가 종료되는 경우가 종종 있습니다. 그 이유를 물론 쉽게 찾을 수도 있겠지만, 범위가 너무 광범위 합니다. 문제를 찾기 위해 로그를 먼저 확인해보겠습니다. journalctl 란? systemd의 서비스로 로그를 확인할 수 있습니다. systemd-journald.service에 의해서 systemd의 정보들을 분석합니다. 옵션 -r: 최신항목이 먼저 표시되도록 역순으로 출력 -u: unit으로 systemctl list-units에서 출력되는 첫번 째 항목 ethereum geth code=killed, status=9/KILL $ sudo journalctl -ru geth journalctl 을 이용하여 이더리움 geth 로그를 보다가 이상.. Devops/AWS 2024. 2. 19. AWS EC2 사용자 데이터가 작동하지 않을 때 로그 보는 방법 안녕하세요. 사용자 데이터(user-data)가 작동하지 않을 때 로그를 보는 방법을 알려드리겠습니다. 사용자 데이터란? 인스턴스를 시작할 때 매개변수나 스크립트를 사용자 데이터로 저장할 수 있습니다. 사용자 데이터의 모든 스크립트는 인스턴스를 시작할 때 실행됩니다. IMDS(Instance Metadata Service)를 통해 인스턴스의 사용자 데이터를 볼 수 있습니다. 즉, "EC2 시작과 동시에 만든 스크립트가 돌아간다" 입니다. 사용자 데이터 로그 보는 방법 EC2 안에 들어와서 로그보는 방법은 아래와 같습니다. $ cat /var/log/cloud-init-output.log 감사합니다. Devops/AWS 2024. 2. 1. Docker --oom-kill-disable, --oom-score-adj 에 대해 알아보자 오늘은 일을 하다가 처음보는 옵션이기도 해서 궁금해서 가져왔습니다. 도커의 경우 Env, Port, Volume 보통 이정도만 설정해도 큰 불편함 없이 사용할 수 있습니다. --oom-kill-disable, --oom-score-adj 는 어떤 상황에 사용해야 되는지 알아보겠습니다. OOM Killer(Out of Memory Killer) 일부 컨테이너에 할당된 가용 메모리의 한계가 초과되어 시스템이 해당 컨테이너를 강제로 종료시키는 상황 도커에서는 파라미터로 oom-killer에 의한 프로세스 종료를 예방할 수 있습니다. 옵션 설명 --oom-kill-disable default: false, Disable(비활성화) OOM Killer --oom-score-adj default: 0, Tune h.. Devops/AWS 2024. 1. 27. AWS 보안 그룹 default 를 이용해서 EC2 연결 #2 안녕하세요. https://newbiecs.tistory.com/414 AWS 보안 그룹 default 사용 지양...왜? #1 안녕하세요. 보안상 사용하지 말라는 default 에 대해서 알아보겠습니다. 보안그룹이란? AWS 보안 그룹은 인스턴스 또는 리소스에 대한 인바운드 및 아웃바운드 트래픽을 제어하는 가상 방화벽 역 newbiecs.tistory.com 저번 글에서는 default 가 하는 역할이 뭔지 그리고 단점만 있다는 것 보단 장점도 있다는 걸 알아봤습니다. default 보안 그룹을 사용하여 배포한다는 건 사실 불가능 합니다. 그 이유에 대해서 알아보고, 그럼 어떻게 하면 배포까지 연결할 수 있는지 알아보겠습니다. 이 글은 VPC 를 만들고, EC2 만드는 글들은 많기 때문에 보안 그룹 설.. Devops/AWS 2024. 1. 25. AWS 보안 그룹 default 사용 지양...왜? #1 안녕하세요. 보안상 사용하지 말라는 default 에 대해서 알아보겠습니다. 보안그룹이란? AWS 보안 그룹은 인스턴스 또는 리소스에 대한 인바운드 및 아웃바운드 트래픽을 제어하는 가상 방화벽 역할을 합니다. 그 중에서도 'default' 보안 그룹은 특정 보안 그룹이 지정되지 않은 경우 적용되는 기본 보안 그룹입니다. default 특징 전체 트래픽 허용: 'default' 보안 그룹은 모든 인바운드 트래픽을 허용하고 모든 아웃바운드 트래픽을 허용합니다. 즉, 인스턴스 간에 통신은 가능하며, 외부와의 통신도 모든 포트로 허용됩니다. 자동 생성: AWS 계정을 만들면 'default' 보안 그룹이 자동으로 생성되며 모든 EC2 인스턴스에 자동으로 할당됩니다. 수정 가능: 'default' 보안 그룹은 수.. Devops/AWS 2024. 1. 24. AWS 보안 그룹(SecurityGroup) 사용 시 8가지 모범 사례 안녕하세요. 오늘 배워볼 내용은 AWS 보안 그룹(SecurityGroup) 모범 사례에 대해 알아보고 모범 사례를 바탕으로 적용해보는 것을 해보도록 하겠습니다. https://www.jit.io/blog/best-practices-for-aws-security-groups 8 Best Practices When Using AWS Security Groups | Jit While AWS is generally secure, the configurations and security settings need to be defined. Discover best practices for AWS Security Groups from Jit. www.jit.io 링크 에서는 8가지 모범 사례를 설명하지만, 필요한 .. Devops/AWS 2024. 1. 9. Kubernetes 인 액션 8장 애플리케이션에서 파드 메타데이터와 그 외 리소스에 액세스하기 다루는 내용 컨테이너에 정보를 전달하기 위해 Downward API 사용 쿠버네티스 REST API 살펴보기 인증과 서버 검증을 kubectl proxy 에 맡기기 컨테이너 내에서 API 서버에 접근하기 앰배서더 컨테이너 패턴을 이해 쿠버네티스 클라이언트 라이브러리 사용 특정 파드와 컨테이너 메타데이터를 컨테이너로 전달하는 방법과 컨테이너 내에서 실행 중인 애플리케이션이 쿠버네티스 API 서버와 통신해 클러스터에 배포된 리소스의 정보를 얻는 것이 얼마나 쉬운지를, 더 나아가 이런 리소스를 생성하거나 수정하는 방법을 다룰 것이다. 8.1 Downward API 로 메타데이터 전달 파드의 IP, 호스트 노드 이름 또는 파드 자체의 이름과 같이 실행 시점까지 알려지지 않은 데이터의 경우는 어떨까? 파드의 레이.. Devops/Kubernetes 2023. 6. 20. Kubernetes 인 액션 7장 컨피그맵과 시크릿: 애플리케이션 설정 다루는 내용 컨테이너의 주 프로세스 변경 애플리케이션에 명령줄 옵션 전달 애플리케이션에 노출되는 환경변수 설정 컨피그맵으로 애플리케이션 설정 시크릿으로 민감한 정보 전달 7.1 컨테이너화된 애플리케이션 설정 왜 환경변수를 사용하는 것이 컨테이너에서 널리 사용될까? 도커 컨테이너 내부에 있는 설정 파일을 사용하는 것은 약간 까다롭다. 설정 파일을 컨테이너 이미지 안에 포함하거나 파일이 포함돼 있는 볼륨을 컨테이너에 마운트해야 하기 때문이다. 설정 데이터를 저장하는 쿠버네티스 리소스를 컨피그맵(ConfigMap) 이라고 한다. 컨테이너에 명령줄 인수 전달 각 컨테이너를 위한 사용자 정의 환경변수 지정 특수한 유형의 볼륨을 통해 설정 파일을 컨테이너에 마운트 자격증명, 개인 암호화 키, 보안을 유지해야 하는 .. Devops/Kubernetes 2023. 6. 19. Kubernetes 인 액션 6장 볼륨: 컨테이너에 디스크 스토리지 연결 다루는 내용 다중 컨테이너 파드 생성 컨테이너 간 디스크 스토리지를 공유하기 위한 볼륨 생성 파드 내부에 깃 리포지터리 사용 파드에 GCE 퍼시스턴트 디스크와 같은 퍼시스턴트 스토리지 연결 사전 프로비저닝된 퍼시스턴트 스토리지 퍼시스턴트 스토리지의 동적 프로비저닝 파드는 내부에 프로세스가 실행되고 CPU, RAM, 네트워크 인터페이스 등의 리소스를 공유하는 논리적 호스트와 유사하다고 했다. 프로세스가 디스크 또한 공유할 수 있을 것이라 예상하겠지만 사실은 그렇지 않다. 파드 내부의 각 컨테이너는 고유하게 분리된 파일시스템을 가진다 파일시스템은 컨테이너 이미지에서 제공되기 때문이다. 6.1 볼륨 소개 Kubernetes Volume은 파드의 구성 요소로 컨테이너와 동일하게 파드 스펙에서 정의된다. Volu.. Devops/Kubernetes 2023. 5. 28. Kubernetes 인 액션 5장 서비스: 클라이언트가 파드를 검색하고 통신을 가능하게 함 참고 NodePort vs LoadBalancer vs Ingress 다루는 내용 단일 주소로 파드를 노출하는 서비스 리소스 만들기 클러스터 안에서 서비스 검색 외부 클라이언트에 서비스 노출 클러스터 내에서 외부 서비스 접속 파드가 서비스할 준비가 됐는지 제어하는 방법 서비스 문제 해결 파드는 일시적이다. 파드가 다른 파드를 위한 공간을 확보하려고 노드에서 제거하거나, 누군가 파드 수를 줄이거나, 클러스터 노드의 장애로 언제든 다른 노드로 이동할 수 있다. Kubernetes는 노드에 파드를 스케줄링 한 후 파드가 시작되기 바로 전에 파드의 IP 주소를 할당한다. 따라서 클라이언트는 서버인 파드의 IP 주소를 미리 알 수 없다. 수평 스케일링은 여러 파드가 동일한 서비스를 제공할 수 있음을 의미한다. 각.. Devops/Kubernetes 2023. 5. 24. 이전 1 2 3 4 5 다음 💲 추천 글