CodePipeline로 ECS 애플리케이션 배포하기

AWS의 CodePipeline은 CI(Continuous Intergration – 지속적인 통합)과 CD(Continuous Delivery – 지속적인 배포) 환경을 구축 할 수 있도록 도와주는 서비스다. CodePipeline의 장점을 살리면서 효과적으로 도입하기 위해서는 결국, CI/CD가 무엇인지, 왜 도입하는 지, 어떤 효과를 얻을 수 있는지에 대한 이해가 필요하다. 클라우드를 전통적인 관점에서 접근할 경우 위의 프로세스를 따르게 될 것이다. 개발자와 더보기…

AWS Fargate를 이용한 API Service

이 문서를 읽기 위해서는 도커에 대한 이해가 필수다. 2017년 AWS는 Fargate라는 컨테이너 오케스트레이션 서비스를 발표했다. 기존에 사용하고 있던 ECS(Elastic Container Service)이라는 컨테이너 관리 서비스와 매우 유사한 서비스다. 실제 Fargate 서비스를 보면 독립적인 서비스 카테고리가 아닌 ECS 카테고리에 위치하고 있다. Fargate는 EC2 클러스터를 직접 구성해야 하는 ECS와 달리 완전 관리형 서비스다. 더보기…

Elastic Network Interface

간단한 네트워크에서 개발자가 ENI(Elastic Network Interface)에 대해서 신경쓸 일은 없을 것이다. 개발자 입장에서 ENI는 자유롭게 뗐다 붙였다 할 수 있는 NIC(네트워크 인터페이스 카드)일 뿐이다. 그냥 EC2 인스턴스를 만들 때, 딸려나오는 1개 ENI를 쓰는 것으로 대부분의 작업을 수행 할 수 있기 때문에 신경 쓸 필요가 없다. 하지만 보안에 신경을 써야 하는 더보기…

개발자와 DevOps를 위한 AWS CLI 환경 구성

리눅스 환경에서 CLI를 다루어 본 적이 있다면 그 강력함을 알고 있을 것이다. GUI는 미리 정의된 어떤 작업을 “사람이 수행하도록 인터페이스를 제공”하는게 목적이다. 애초에 기계가 잘 수행 할 수 있는 “자동화”를 목적으로 만든 툴이 아니다. 소프트웨어 개발자나 시스템 관리자는 어떤 작업을 기계가 잘 수행하도록 하는걸 목적으로 한다. 순차적인 작업, 특정 시간/특정 더보기…

Amazon EBS Cheat Sheet

Amazon EBS EBS는 EC2 인스턴스에 블럭 스토리지(Block level storage) 볼륨을 제공한다. 하드디스크 혹은 SSD 디스크라고 생각하면 된다.파일시스템, 데이터베이스 기타 형식화되지 않는 데이터에 대한 세부적인 업데이트, 블럭 단위의 랜덤액세스가 필요한 모든 응용 프로그램의 기본 스토리지로 사용하기에 적합하다.새로운 EBS 볼륨은 최대성능을 내기 위해서 예열(pre-warming)과정을 필요로 하지 않는다. 그러나 스냅샷으로 복원한 볼륨은 초기화(S3에서 더보기…

첫번째 EC2를 만들어보자

AWS 계정을 만들었으니 EC2 인스턴스를 실행해보자. EC2(Elastic Compute Cloud)는 AWS에서 제공하는 컴퓨팅 서비스다. 흔히 알고 있는 CPU, 메모리, 디스크로 구성된 서버 컴퓨터를 생각하면 된다. 지금은 서버없이 인터넷 서비스를 만들자라는 개념의 서버리스(ServerLess) 컴퓨팅이 주목받고 있어서 좀 시들해진 측면이 있기는 하지만 여전히 AWS에서 가장 중요하며, 가장 많이 사용하는 서비스다. ECS(Elastic Container Service 더보기…

AWS 계정을 만들어보자

AWS 클라우드 서비스를 사용하기 위해서는 먼저 AWS 계정을 만들어야 한다. 다른 인터넷 서비스의 계정 만드는 것과 비슷하지만, 인터넷 상에 컴퓨팅 인프라를 만들어 쓴다는 점에서 몇 가지 차이가 있다. AWS 클라우드 서비스를 이용해서 인터넷 상에 IDC를 만들고 소프트웨어를 배포 할 수 있다. 인프라 관리, 보안, 소프트웨어 배포와 관리 모든 것을 통합한다. 더보기…

Lambda

REST API 서버를 만들어봤다면, 각 REST API는 “하나의 함수에 대응” 한다는 것을 알 수 있다. 유저의 요청은 여러 개의 함수 중에서 하나의 함수로 전달된다. 이 함수들은 HTTP 요청을 핸들링 한다라는 의미로 HTTP Handler 라고 부른다. HTTP 클라이언트의 요청을 애플리케이션 서버가 처리하는 방식은 대략 아래와 같다.  클라이언트가 HTTP 요청을 전송한다.HTTP Server가 더보기…

Microservices on AWS

원문 : Introduction Microservices on AWS 마이크로서비스는 배포주기를 가속화 하고 응용 프로그램의 유지 관리성을 높여서 높은 품질의 제품을 만들기 위한 아키텍처 모델이다. 이 접근법은 개발방법 뿐만 아니라 소프트웨어와 서비스를 제공하는 조직의 변화도 포함하고 있다. 마이크로 서비스의 접근방식을 사용하는 소프트웨어는 잘 정의된 API로 통신하는 작고 독립적인 소프트웨어 컴포넌트들로 구성된다. 이 백서는 더보기…

Elastic Load Balancer

AWS 서비스에서 가장 많이 다루게 될 서비스는 단연코 ELB(Elastic Load Balancer)일 것이다. ELB는 EC2로 구성된 IaaS 느낌의 서비스 뿐만 아니라, 컨테이너 기반인 ECS, Lambda를 이용한 Serverless 모델 그리고 PrivateLink를 이용한 SaaS 모델 까지 모든 영역에서 핵심적으로 사용한다. 로드밸런서가 클라우드의 모든 영역에서 핵심적으로 사용되는 이유는 클라우드의 스케일링 정책이 Scale-UP/Down이 아닌 Scae-In/Out을 더보기…

Bitnami