목록📖 전체보기 (254)
즐겁게, 코드
IT 서비스가 커져감에 따라 인프라의 민첩성, 확장성에 대한 수요가 점점 증가하게 되었고, 때맞춰 등장한 AWS나 컨테이너 등의 기술은 그 열쇠가 되었습니다. 이번 글에서는 클라우드 네이티브 기술이 무엇인지, 그리고 이를 도입했을 때 전통적인 인프라에 비해 어떤 이점을 가져갈 수 있는지 나름대로 정리해보려 합니다. 클라우드 네이티브 (인프라)란 "클라우드 네이티브" 라는 말이 꽤나 거창하고 두루뭉실하게 들릴 수도 있는데요, 마이크로소프트 공식 문서를 찾아보면 다음 구절을 찾아볼 수 있습니다. 🔎 이러한(= 클라우드) 기술을 사용하면 복원력, 관리 가능 및 관찰 가능한 느슨하게 결합된 시스템을 사용할 수 있습니다. 강력한 자동화(= 데브옵스)와 결합되어 엔지니어는 최소한의 수고로 자주 예측 가능하게 높은 ..
3월 말부터 약 한달간 공부해 4월 23일에 Solutions Architect - Associate 시험에 합격할 수 있었는데요, 단기간의 공부 방법과 합격 후기를 간단히 남겨 보려 합니다. 🙂 응시 동기 지난 겨울에는 Azure 기초 자격증인 Azure AZ-900 자격증을 취득했는데요, 기초 자격증이 어필하는 것은 "내가 이 서비스를 안다" 정도에 그치는 것 같아 이번에는 보다 도전적인 시도를 해보고 싶었습니다. 그래서 AWS의 기초 자격증 대신 Solutions Architect (Associate) 레벨에 도전하기로 결심했고, 결과적으로 과정과 결과 모두 만족스러운 도전이 된 것 같습니다. 준비 과정 저는 학교 과목을 통해 Lambda, DynamoDB, API Gateway 등을 활용한 서버리..
산학협력 R&D를 수행하는 회사에서 DR을 위한 AWS 기반 아키텍처를 구성하는 업무를 새로 맡게 되었는데요, 이번 기회에 IAC를 적극 활용해보고 싶었습니다. 인프라 설정을 위한 IAC 툴로 AWS CloudFormation과 테라폼(Terraform) 사이에서 고민하던 중, AWS 외에도 다양한 클라우드 벤더를 지원한다는 점에 매력을 느껴 최종적으로는 테라폼을 선택하게 되었습니다. ✅ 이번 글에서는 테라폼 기초 및 테라폼을 통해 AWS 리소스를 프로비저닝하는 방법을 정리합니다. 공급자 설정하기 IAC 구성을 위해 제일 먼저 사용할 서비스의 공급자(Provider)를 설정해줘야 하는데요, 사용하고자 하는 클라우드 서비스가 공급자 목록 에 있는지 확인해야 합니다. AWS 공급자 문서를 따라 다음과 같이 ..
파드의 임시 IP(Ephemeral IP)로 인한 불편함 쿠버네티스에서 파드와 네트워크를 연결하려면 어떻게 해야 할까요? 파드의 IP주소를 확인한 후 사용할 수도 있지만, 파드는 재실행될 때마다 새로운 임시 IP(ephemeral IP)를 무작위로 부여받는다는 특징이 있습니다. 하지만 서비스를 운영하는 중 파드는 리소스 부족 등의 이유로 인해 제거되었다가 재생성되는 과정을 계속해서 반복하는데요, 파드가 재생성될 때마다 매번 달라지는 임시 IP를 사용하는 것은 굉장히 손이 많이 가는 작업이 될 수 있습니다. 서비스의 역할 이처럼 파드의 임시 IP 대신 정적으로 변화하지 않는 고정된 IP를 제공해주는 것이 바로 서비스 로, 서비스는 파드로 보내지는 요청을 앞단에서 관리할 수 있는 역할을 합니다. 서비스의 유..
TL;DR 예약 인스턴스, 스팟 인스턴스 를 활용하면 온디맨드 인스턴스에 비해 수십 % 요금을 절감할 수 있다. 인스턴스를 장기간(1년 이상) 사용한다면 예약 인스턴스를 사용할 것을 고려해볼 수 있다. 인스턴스를 장기간 사용하지는 않으면서 데이터베이스, 서버 호스팅 목적이 아니라면 스팟 인스턴스 가 대안이 될 수 있다. 고객이 원하는 스펙의 가상 컴퓨터를 임대해주는 EC2는 다른 서비스들에 비해 상당히 비싼 편입니다. 그런데 상황에 따라 최대 수십 %의 요금 할인을 적용받을 수 있다는 방법이 있다는 것을 알고 계신가요? 이번 글에서는 EC2를 훨씬 저렴하게 사용할 수 있는 예약 인스턴스와 스팟 인스턴스를 다뤄 보도록 하겠습니다. 온디맨드 인스턴스 제일 먼저 소개할 유형은 온디맨스 인스턴스입니다. 얼핏 봐..
헬름을 통해 얻을 수 있는 장점 중 하나는 개발자가 사용할 이미지 및 포트 번호 등의 값을 하드코딩할 필요 없이 변수화해 사용할 수 있다는 것입니다. 설치 링크 에서 헬름을 설치한 다음, helm create 을 통해 새로운 헬름 차트 를 생성합니다. ✅ TIP - 헬름 차트란? 헬름 차트는 작성한 어플리케이션(디플로이먼트, 서비스 등의 YAML 템플릿 조합)을 쿠버네티스의 패키지 형태로 제작한 결과물이며, 생성한 헬름 차트는 퍼블릭 또는 프라이빗 레포지토리에 업로드해 다른 사람(팀원)들과 공유할 수 있습니다. 이제 헬름으로 변수화된 값의 템플릿을 만든 후 이를 기반으로 파드를 만들어 보겠습니다. 파드 템플릿 예시 (헬름 사용 전) apiVersion: v1 kind: Pod metadata: name:..
한번 500MB의 메모리를 갖고 있는 워커 노드 A가 있다고 가정해 보겠습니다. 그런데 어떤 파드가 실행되어 스케줄러가 이를 배치하려 할 때, 만약 파드가 사용할 메모리가 1GB를 넘어선다면 이 파드는 노드 A에 배치될 수 있을까요? 스케줄러가 파드를 효과적으로 배치하려면 각 파드가 최소 / 최대로 사용하고자 하는 자원이 어느 정도인지를 알고 있어야 할 텐데요, 쿠버네티스는 여러 종류의 자원 중 CPU와 메모리를 관리할 수 있습니다. ✅ 다만 CPU와 메모리 사용량 외에 디스크 I/O 작업(IOPS)이나 네트워크 대역폭 등의 정보는 알지 못합니다. 이번 글에서는 컨테이너에서 사용할 CPU 및 메모리를 관리하는 방법인 리소스 요청 / 제한에 대해 소개해보도록 하겠습니다. 리소스 요청 및 제한 쿠버네티스의 ..