AWS Secrets engine을 통해 AWS의 credentials을 관리하는 방법을 소개합니다. 이번 글에서는 터미널 명령어와 GUI를 함께 보도록 하겠습니다. 여기서 다루는 모든 GUI는 오픈소스 버전입니다. HashiCorp Cloud Platform(HCP) 버전과 상이할 수 있는 점을 참고해 주세요. 그럼 시작합니다.먼저 AWS secrets engine을 활성화합니다.vault secrets enable aws 혹은 GUI에서 아래와 같이 Secrets Engines 메뉴에서 Cloud > AWS를 선택해 주면 됩니다. Secrets Engine이 연결 됐으니 root 계정을 등록해 줘야 하는데요. 여기서 표현하는 root는 AWS의 루트 계정이 아닙니다. Vault를 통해 IAM을 생성하..
AWS에서 spot을 사용해서 컴퓨팅 비용을 절감하는 방식은 너무 유명합니다. 하지만 spot은 언제든 빼앗길 여지가 있는데요. EKS에서 AutoScaler로 카펜터(karpenter)를 사용 중이고 인스턴스 타입으로 spot을 사용 중이라면 NTH(Node Termination Handler) 사용을 고려하셔야 합니다. 마치 애플리케이션이 종료되기 전에 시그널을 받아서 처리(signal handler)하는 것처럼 NTH는 노드가 종료되기 전에 "어떤" 이벤트를 받고 종료 전에 필요한 것들을 처리할 수 있도록 돕습니다.spot 인스턴스는 종료되기 2분 전에 EC2 Spot Instance interruption notice를 수신하는데요. 관련된 내용은 아래와 같이 cloudtrail에서 이벤트 이름을..
우리가 구축한 서비스가 견고한지, 가용성을 보장하는지, 확장성은 어떤지 등 시스템 탄력성을 테스트하기 위한 기법으로 카오스 엔지니어링이 있습니다. AWS Resilience Hub - Fault Injection Service(FIS)는 카오스 엔지니어링을 AWS에서 손쉽게 할 수 있도록 돕습니다. 이 기능을 이해하기 위해서는 aws cli로 접근하는 것보다 콘솔을 이용하시는 게 좋습니다. 어느 정도 기능을 익힌 후에는 터미널에서 마음껏 실행할 수 있을 겁니다.FIS의 기본 콘셉트는 Experiment templates 메뉴에서 실험 템플릿을 만들고, 템플릿을 실행하는 것에서 출발합니다. 템플릿에는 특정 리소스(e.g., EC2)의 ID로 지정해서 이벤트(종료 등)를 보낼 수도 있고, tags 기반으로 ..
Redshift는 Workload management(WLM) 설정을 통해 큐(queue)와 슬롯(slot)이라는 개념을 제공합니다. 넓은 범주에서 이야기하면 한 개에 큐 안에는 여러 개의 슬롯이 존재할 수 있습니다. 그리고 슬롯은 쿼리 실행의 동시성을 나타낸다고 보시면 됩니다. 즉, 슬롯 개수만큼 쿼리가 동시에 실행될 수 있는 거죠. 그렇다고 쿼리 속도가 슬롯에 독립적으로 보장된다는 말은 아닙니다. 클러스터 전체에서 사용하는 메모리를 나눠서 사용하는 구조라서요. 큐는 실행을 기다리는 쿼리 그룹을 나타내는 논리적 구성입니다. 큐 종류는 다음과 같습니다.- 삭제할 수 없는 default queue 1개- 사용자가 추가로 정의할 수 있는 큐 7개- AWS 콘솔 상에 나타나지 않는 superuser를 위한 큐..
CloudFront에서 Distribution을 생성할 때 Origin domain으로 S3 버킷을 지정하는 경우 아래와 같은 화면이 나옵니다. bucket endpoint를 쓰지 말고 website endpoint를 사용하라는 건데요. Origin domain 목록에 website endpoint는 노출되지 않기 때문에 "Use website endpoint" 버튼을 클릭해 줘야 s3 가 s3-website로 변경됩니다. 버튼을 클릭하는 경우 상세 설정의 종류가 변경되기 때문에 무시할 수 없습니다. 더욱이 S3 website endpoint를 추천한다는데 써야겠죠 (...) 테라폼으로 배포할 때 위에 버튼을 클릭하지 못하니 어떻게 처리해야 하나 한참을 끙끙댔습니다. 일단 S3 website endpoi..
안녕하세요. AdTech(Advertising technology) 스타트업 매드업에서 데이터 엔지니어 겸 사이트 신뢰성 엔지니어(SRE, Site Reliability Engineer)로 근무하고 있는 백재연입니다. 이번 글에서는 올해 라스베가스에서 열린 AWS re:Invent를 다녀온 후기를 다루려고 합니다. 키노트나 세션 등 기술과 관련된 콘텐츠는 유튜브와 AWS 공식 블로그에 잘 정리가 되어 있으니 생략하고, 처음 이 행사에 참석했던 입장에서 전반적인 행사 흐름과 체험을 위주로 정리해 봤습니다. 스크롤 압박은 있겠지만 대부분 사진이니 부담 없이 봐주세요! 자, 그럼 시작합니다. # Las Vegas! 현재 매드업과 계약된 MSP를 통해 아시아나항공 전세기로 라스베가스 공항까지 직항으로 갈 수 있..
얼마 전에 자격증 취득 관련 글을 올렸는데 이어지는 글입니다. 이전 글은 AWS 자격증 취득 후기 (SAA, SAP) 에서 확인해 주세요. # intro. 이렇게 된 거 한 개 더 취득해 보자 10월 20일(금) 저녁에 SAP 합격 메일을 받고 기분 좋게 한 잔 했습니다. 주말 동안은 개인적인 일로 좀 바빴습니다. 월요일이 되고 곰곰이 생각해 보니까 뭔가 보유한 자격증에 균형이 맞지 않는 것 같은 생각이 맴돌았습니다. AWS 전체 자격증 중에 아래 두 개를 취득한 상태였는데요. 그래도 위쪽에 있는 다른 초록색도 갖고 있는 게 좋지 않을까? 하는 생각이 들었습니다.. 하.. 이래서 자격증은 차라리 한 개도 없을 때가 속이 편합니다. 어쨌든 머릿속에 맴도는 욕심을 채우고자 DevOps Engineer - P..
이미 인터넷에 많고 많은 후기가 있지만 저만의 의식흐름으로 자격증 취득 후기를 정리합니다. 누군가에게는 도움이 되겠죠? :) 자격증 시험을 준비하는 모든 분들, 좋은 결과 있으시길 바랍니다! # 시험 종류 생전 자격증에 관심이 없었는데 어떤 이유로 자격증이 필요했습니다. 일단 하나만 있으면 될 것 같아서 AWS Certified Solutions Architect - Associate 시험(SAA-C03)을 봤네요. 참고로 AWS 자격증은 Foundational, Associate, Professional, Specialty로 구분됩니다. 보기 좋게 아래 이미지로 정리했습니다. 참고해주세요. # 시험 장소 시험은 온라인, 오프라인을 선택할 수 있는데 저는 오프라인은 가본 적이 없습니다. 시간대가 마땅한 ..
AWS에 대표적인 Data Warehouse 제품인 Redshift에 Serverless 버전의 비용 관련된 내용이 잘 정리된 글이 없어서 이번 기회에 정리해 봅니다. 글을 정리하는데 백서도 도움이 됐지만 메가존 포럼과 AWS Global Center의 도움을 많이 받았습니다. 우선 Redshift Serverless 비용을 이해하려면 Redshift Processing Units(RPUs) 개념을 알아야 합니다. Redshift Serverless는 워크로드에 따라 자동으로 컴퓨팅 파워를 확장하는데 그게 RPUs 단위입니다. 가벼운 쿼리는 32 RPUs(최소 설정 값)로 처리되고 좀 더 복잡한 쿼리는 최대 512 RPUs까지 늘어납니다. 기본 값을 Base capacity라고 하는데 이 값을 32부터 ..
Amazon Managed Workflow for Apache Airflow (MWAA) 때문에 일주일 넘게 고생했다. 여러 가지 문제가 있었는데 여기 정리하고 매니지 서비스에 대해 다시 생각해보고자 한다 우선 MWAA를 개발/운영 환경에서 쓰고 있었다. 인프라는 전부 테라폼으로 구축됐고 DAG은 GitHub Actions에 의해 배포된다. 즉, 사람의 실수로 뭔가 갑자기 이상 증세를 보이는 게 쉬운 구조는 아니다. 1. 개발 쪽 MWAA에 자원이 부족해서 워커 인스턴스 개수를 늘리기 위해 다시 배포했는데 업데이트가 실패했다. environment를 배포한 건 꽤 오랜만이지만 특별히 문제가 될 건 없어 보였다. 단순히 인스턴스 개수 숫자만 바꾼 거니까. 2. 원인을 알 수 없었기에 Case를 열고(clo..
클러스터를 생성할 때 함께 만든 슈퍼계정 이름을 변경하는 방법을 기술합니다. 우선, 계정 이름을 변경하는 쿼리는 다음과 같고 슈퍼계정 권한이 있어야만 실행할 수 있습니다. ( 기존 계정 이름이 admin이고 이를 sysadmin으로 변경하겠다는 예제입니다 ) alter user admin rename to sysadmin; 하지만 위에 쿼리를 실행하면 아래와 같은 에러를 만나게 됩니다. 현재 접속한 계정의 이름을 변경할 수 없다는 내용입니다. 이 상태에서 우리가 선택할 수 있는 방법은 1) 임시 계정(tempadmin)을 추가로 2) 임시 계정에 슈퍼계정 권한을 줍니다 3) 임시 계정으로 접속해서 기존 계정(admin)의 이름을 변경해줍니다 4) 그리고 다시 변경된 이름(sysadmin)으로 접속해서 임..
redis를 사용하면서 필요에 의해 CONFIG SET을 통해 설정을 변경하는 경우가 있습니다. 아마 처음 config set을 검색했을 때 목적은 notify-keyspace-events 변경을 통해 key expire에 대한 이벤트를 받기 위해서가 많을 듯합니다. notify-keyspace-events 변경은 아래 페이지에 자세히 설명되어 있습니다. https://redis.io/topics/notifications Redis Keyspace Notifications – Redis *Redis Keyspace Notifications IMPORTANT Keyspace notifications is a feature available since 2.8.0 *Feature overview Keyspac..
AWS에서 EC2를 제 돈 주고 쓰면 많이 손해입니다. 비용을 절약할 수 있는 몇 가지 방법이 있는데요, SP (Savings Plans) RI (Reserved Instances) Spot 이렇게 기본적으로 세 가지를 언급할 수 있겠습니다. 이번 글에서는 Spot의 설명은 아니고, 그래서 얼마나 할인되는데? 에 대한 이야기를 해보려고 합니다. 위에 그림에서 보여지듯이 Spot Instance 가격은 c5.large 기준으로 리전 별로 차이는 보이지만 최대 64%까지 할인되는 것을 볼 수 있습니다. 한 달이면 $44 차이까지 발생하죠. 이런 인스턴스 열 대를 운영하면 $440입니다. 절대 무시할 수 있는 수준이 아닙니다. 위에 표를 볼 수 있는 경로는 EC2 -> INSTANCES -> Spot Requ..
AWS에서 선택 가능한 EC2 인스턴스 타입은 범용, 컴퓨팅 최적화, 메모리 최적화, 가속화된 컴퓨팅, 스토리지 최적화로 나눌 수 있습니다. 이번 글에서는 범용 타입에서도 버스터 가능한 인스턴스 타입을 소개합니다. 버스트(burst) 가능한 인스턴스 타입은 현재(2021-05-06) 기준으로 T2, T3, T3a, T4g 네 가지 타입이 존재하고 각각의 타입은 CPU와 메모리에 따라서 nano, micro, small, medium, large, xlarge, 2xlarge로 나누어집니다. T 타입 인스턴스에는 CPU credits이라는 개념이 존재하는데 CPU 유휴시간에 따라 credits을 획득하고, CPU가 사용되면 사용률에 따라 획득한 크레딧을 소모하게 되는 구조입니다. 이 의미를 상세히 이해하기..
이번에 시의적절하게 아주 재밌는 책을 리뷰하게 됐다. 바로 "배워서 바로 쓰는 14가지 AWS 구축 패턴". 현재 재직하고 있는 회사에서 AWS를 사용하고 있으며 특히 Container Service와 DW를 위해 Redshift를 들여다보고 있는 와중에 만난 책이다. 과거에도 물론 퍼블릭 클라우드를 여럿 사용해왔지만 이 책이 반가웠던 이유는 여러 가지 실제 사례를 들고 있기 때문이다. 책의 앞 부분은 클라우드가 처음인 독자를 위해 아주 섬세한 부분까지 설명을 해준다. 리전, 네트워크, VPC 등. 그리고 EC2 인스턴스 생성부터 차근차근 첫 단추를 꿰어간다. 순간 "이 책 입문서 아니야?"라는 생각이 들 정도. 하지만 방심하지 마시라, 책의 진도는 순식간에 나간다. 서비스 구축에 가장 흔하면서 일반적인..
컨테이너와 컨테이너 인스턴스라는 용어로 본문에 많이 등장합니다. 컨테이너 인스턴스는 클러스터에 묶여있는 EC2 인스턴스를 나타냅니다. 표준 표현을 따르다 보니 본문을 읽는데 어려움이 있을 수 있습니다. 이번 글에서는 Task, Container에 CPU와 Memory 설정에 대해 알아봅니다. ECS를 처음 접하면 리소스를 설정하는 곳이 너무 많아서 정신이 혼미해질 정도인데요, 추려보면 다음과 같습니다. 인스턴스의 CPU, Memory 설정 (인스턴스 타입에 따라 고정, 혹은 custom 사용) task의 CPU, Memory 설정 container의 CPU, Memory 설정 위에서 아래로 갈수록 작은 개념으로 이어집니다. 직감적으로 보면 container는 task 안에서 돌기 때문에 당연히 task에..
ECS를 구축, 관리하기 위해서는 그 안에서 사용되는 용어를 이해해야 합니다. 이번 글에서 ECS에서 통용되는 용어들의 개념을 이해하도록 합니다. 자원 개념 위에서 아래로 내려갈수록 큰 개념으로 생각하시면 됩니다. container는 ECS에서 가장 작은 단위, cluster가 가장 큰 단위입니다. # container 단순히 시야가 제한된 리눅스 프로세스입니다. namespace 분리로 컨테이너 환경 안에서 호스트의 프로세스 목록을 볼 수 없고, 루트 디렉터리 변경으로 호스트의 디렉터리를 볼 수 없도록 제한합니다. (chroot) 끝으로 제어 그룹을 통해 컨테이너가 접근할 수 있는 자원을 제어합니다. (control group) 우리가 알고 있는 바로 그 컨테이너의 원리죠? # task definiti..
본문을 읽기 전에 Zombie, Orphan 프로세스란 무엇인지 알고 있을 필요가 있다. 관련된 내용은 다음 글에 매우 잘 정리가 되어 있으니 참고하기 바란다. - Zombie process reaping 에 대하여, Container에서 고려할 부분들 컨테이너를 생성할 때 한 개의 일만 처리하게 설계하면 좋겠지만 그렇지 못한 경우도 분명 생길 수 있다. 간혹 자식(child process)을 만들어서 일을 시켜야 하는 경우가 있는데 새로운 컨테이너를 생성하거나 API 통신으로 동작시키는 것보다 나은 상황이 있기 때문이다. 아무튼, 이렇게 자식 프로세스를 만들어서 일을 시켜보면 의도치 않게 자식이 고아가 되는 경우가 발생한다. 자식의 자식의 자식 이라던가... 뭐 물론 좋은 설계는 아니지만. 이런 경우가..
이번에 진행하는 프로젝트를 AWS 환경에서 개발하면서 여러 가지 개념을 접했다. 특히 ECS(elastic container service)를 깊이 있게 보고 있는데 GCP에서 GKE(google kubernetes engine)를 살짝 다뤄봤던 경험 덕분이 많은 도움이 됐다. 아무튼, VPC부터 Security Group 등 알고 있는 개념들을 정리할 겸 책을 꺼내 들었다. 합리적인 구성으로 담백하게 쓰인 책이다. 특히 책의 제목처럼 "입문"을 위해 클라우드 시스템이란 무엇인지부터 퍼블릭 클라우드의 종류와 컴퓨팅 등 다양한 개념과 기초지식을 초반에 잘 풀어내 주고 있다. 주요 목차는 다음과 같다. 1장. 클라우드의 역할 2장. AWS 기본과 계정 등록 3장. Web 서버 구축 4장. Web 애플리케이션..
AWS Hero와 함께하는 re:Invent reCap 온라인 세미나가 진행됐다. re:Invent도 아직 진행중인데 벌써 reCap이라니 그 속도가 대단하다. 신상 제품을 이렇게 빠르게 모국어로 접할 수 있는 것은 대단한 축복이다. Hero분들께 심심한 감사를 전한다. re:Invent 답게 세미나 내용은 신규 기능에 초점을 맞추고 있지만 대부분 경험에서 우러나는 소중한 내용을 곁들여서 공유해주셔서 한 순간도 놓치지 않기 위해서 귀를 쫑긋하고 들었다 [라고 쓰고 업무 때문에 곁눈질로 봄..] 라이선스 문제가 우려되고 더욱이 발표자를 블로그에 박제하고 싶지 않아서 캡쳐는 하지 않았다. 고로 후기는 칙칙한 텍스트로만 작성했으며 같은 이유로 발표자 실명이나 존칭은 적지 않았으니 참고. 혁신가를 위한 AWS ..
- Total
- Today
- Yesterday