분류 전체보기 74

CodeDeploy - 애플리케이션 자동 배포 서비스

# CodeDeploy CodeDeploy도 앞서 살펴본 CloudFormation, Elastic Beanstalk.. 등 처럼 애플리케이션을 자동으로 배포할 수 있게 도와주는 서비스이다. CodeDeploy를 사용하면 온프레미스 서버 또는 EC2 인스턴스로 애플리케이션을 배포하는 방식과 동일한 방식으로 온프레미스에서 AWS로 전환할 수 있어 유용한 서비스이다. 아래에서 계속 보겠지만, EC2 인스턴스 애플리케이션과 온프레미스 서버 애플리케이션을 단일 인터페이스에서 자동으로 버전 1에서 버전 2로 업그레이드 하는 것이 가능하다.   💡 CodeDeploy의 2가지 실행 방식 1. EC2 인스턴스로 실행: 이 방식으로 여러 EC2 인스턴스를 v1에서 v2로 업그레이드 시킬 수 있다.     2. 온프레..

AWS 2025.03.26

Elastic Beanstalk으로 쉽게 구현하는 3-티어 웹 앱 아키텍처

# Web App 3-tier AWS에 웹 애플리케이션을 배포할 때, 일반적으로 3-티어 아키텍처를 따른다. 아래 그림과 같이 사용자는 여러 AZ에 존재 가능한 로드 밸런서와 통신하고, 로드 밸런서는 자동 스케일링 그룹이 관리하는 여러 EC2 인스턴스로 트래픽을 전달한다. EC2 인스턴스들은 데이터를 저장하기 위해 관계형 데이터베이스 등을 사용할 수 있다.    이러한 아키텍처는 수동으로 쉽게 재현할 수 있고, AWS에서 CloudFormation을 통해서도 재현할 수 있다. 하지만 개발자 입장에서 인프라 관리에 신경쓰지 않고 코드 배포만 할 수 있다면 훨씬 편리할 것이다..!    # Elastic Beanstalk 다양한 애플리케이션과 환경에 대해 동일한 방식으로 코드를 실행하고 싶을 때 사용할 수 ..

AWS 2025.03.25

Cloud Development Kit - 프로그래밍 언어로 클라우드 설계

# CDK - Cloud Development Kit CDK는 익숙한 프로그래밍 언어로 클라우드 인프라를 정의하는 방식이다. 예를 들어, YAML 형식이라 CloudFormatin을 직접 사용하지 않고 JavaScript, TypeScript, Python, Java 등등의 언어로 클라우드 인프라를 작성하고자 할 때 CDK를 사용할 수 있다. 프로그래밍 언어로 인프라를 작성하면 CDK를 통해 코드가 JSON 또는 YAML 형식으로 CloudFormation 템플릿에 컴파일된다. 덕분에 인프라와 애플리케이션의 런타임 코드를 함께 배포할 수 있게 된다. 동일한 언어를 공유하기 때문이다.-> 람다 함수나 ECS, EKS의 도커 컨테이너에 유용하다!  # CDK 예시 아래에서는 Python을 프로그래밍 언어로 ..

AWS 2025.03.24

AWS CloudFormation: 인프라를 코드로 효율적으로 관리하기

# CloudFormation  AWS에서 워크로드를 배포하는 다양한 방법이 있다. 그 중 대규모로 인프라를 배포하고 관리하는 서비스가 매우 유용한데, CloudFormation이 대표적인 서비스이다.   CloudFormation은 aws 인프라의 모든 리소스에 대해 개략적인 윤곽을 잡아줄 수 있는 선언적인 방식이다. aws의 대부분의 리소스를 지원한다.   구체적인 예시를 들어 CloudFormation을 이해해보자면,  사용자는보안 그룹을 원한다2개의 EC2 인스턴스가 해당 보안 그룹을 사용한다S3 버킷도 원한다위의 머신들 앞에 로드밸런서를 두고 싶다이런 요구사항들이 있을 때, CloudFormation이 자동으로 순서에 맞게, 사용자가 지정한 구성에 맞춰 리소스들을 만들어준다.    # Cloud..

AWS 2025.03.23

Amazon Lightsail - 클라우드 입문자를 위한 컴퓨팅 서비스

# Amazon Lightsail  Lightsail을 사용하면 가상 서버 스토리지, 데이터베이스 및 네트워크를 한 곳에서 구축할 수 있는 독립 실행형 서비스이다.  이전 포스팅에서 다룬 EC2, RDS, ELB, EBS, Route53과 같은 aws 서비스와 비교하여, Ligthsail은 훨씬 쉬운 방식으로 클라우드 서비스를 사용할 수 있다. 따라서 클라우스 사용 경험이 거의 없고, 서비스의 복잡한 작동 방식에 익숙치 않은 사람들에게 적합한 서비스라고 할 수 있다. 네트워크, 서버, 스토리지의 작동 방식을 배우지 않고도 서비스를 사용할 수 있는 것이다. 가격도 저렴하고 예측가능하다는 특징이 있어 더욱 그렇다. (AWS의 작동 방식을 배우는 입장이라면 Lightsail을 사용할 일이 없을 수도 있겠지만...

AWS 2025.03.22

AWS Batch - 배치 작업 자동화, Lambda와 비교

# AWS BatchBatch는 완전 관리형 배치 처리 서비스로, 어떤 규모에서도 안정적이고 효율적인 배치 처리를 수행할 수 있도록 지원한다. 수백~수천 개의 컴퓨팅 배치 작업을 쉽고 효율적으로 처리'배치 작업'에는 시작과 끝이 있음 ↔️ 지속적인 스트리밍 작업ex) 오전 1시에 시작해서 3시에 끝남배치 작업은 특정 시점에 발생함-> 동적으로 EC2 인스턴스 혹은 스팟 인스턴스를 실행하여 작업 실행배치 작업에 필요한 적절한 양의 컴퓨팅, 메모리를 프로비저닝할 수 있음ex) EC2 인스턴스나 스팟 인스턴스 스케일링 가능      -> 비용 최적화 사용자는 그저 배치 작업을 스케줄 해두면, Batch가 알아서 작업 처리배치 작업은 도커 이미지로 정의되어 ECS에서 실행됨-> ECS에서 실행할 수 있는건 어떤..

AWS 2025.03.21

API Gateway - 서버리스 API 쉽게 구축하기

# Amazon API Gateway API Gateway는 서버리스 HTTP API를 구축하는데 사용되는 Amazon 서비스이다. 아래 예시를 살펴보며 구체적인 방법을 이해해보자.      Lambda를 사용하여 DynamoDB로 부터 데이터를 읽고, 만들고, 업데이트하고, 삭제하는 CRUD 작업을 하고 있는 상황이다.    🤔 이때 외부의 클라이언트가 람다 함수에 접근할 수 있게 하려면?➡️ API Gateway를 통해 API를 노출해야 한다!   람다 함수는 API로 바로 노출되지 않는다. API Gateway를 통해야만 노출될 수 있고, 이 서비스를 통해 REST HTTP API를 클라이언트에게 제공할 수 있다. 클라이언트는 해당 API로 웹사이트에 직접 연결하게 된다.    💡 클라이언트와 ..

AWS 2025.03.20

이벤트 기반 서비스로서의 AWS Lambda: 동작 원리와 활용

# AWS Lambda람다에 대해 알아보기 전에 EC2에 대해 가볍게 훑어보자.  EC2 인스턴스를 사용하면-> 클라우드에 가상 서버가 생긴다-> 그러나 메모리와 CPU 성능에 제한이 있다-> EC2를 사용하지 않을 때도 계속 실행된다-> 확장이 필요하면 오토 스케일링 그룹을 사용할 수 있다  람다는?-> 서버가 없고, 가상 함수만 있다-> 함수들은 시간에 제한이 있다 (짧은 실행 유형의 함수를 위해 설계됨)-> 필요할 때만 실행된다 (필요할 때 언제든 실행할 준비가 되어있음)-> 함수가 필요하지 않을 땐 람다는 실행되지 않고, 따라서 해당 시간에 대해 비용도 청구되지 않는다-> 스케일링이 자동으로 이뤄진다 EC2와 비교했을 때 위와 같은 장점을 가진 서비스: Lambda   람다는 이벤트 기반의 서비스..

AWS 2025.03.19

AWS에서 Kubernetes를 운영하는 가장 쉬운 방법, EKS

# Amazon EKS - Elastic Kubernetes Service EKS를 사용하면 AWS에서 Kubernetes 클러스터를 시작하고 관리할 수 있다.   🧐 Kubernetes란? Kubernetes는 오픈 소스 시스템으로 컨테이너형 애플리케이션의 관리, 배포, 확장을 위해 사용된다. 주로 Docker 컨테이너로 관리되지만, 다른 형태의 컨테이너도 사용할 수 있다.  이 컨테이너들은 EC2 인스턴스나 Fargate에서 호스팅할 수 있고, Fargate에서 호스팅되면 완전히 서버리스로 운영할 수 있다.   EKS로 관리되는 Kubernetes 클러스터를 사용하면 위와 같이 EKS 노드를 갖게 된다. 위 예시에서 노드는 EC2 인스턴스로 구성된다. 또한 Docker 컨테이너를 실행할 때마다 Ku..

AWS 2025.03.18

AWS에서 도커 컨테이너 실행하기: ECS, Fargate, ECR 개념 정리

# ECS - Elastic Container Service ECS는 AWS에서 도커 컨테이너를 실행할 때 사용하는 서비스이다. ECS를 동작시키기 위해서는 사용자가 직접 인프라를 프로비저닝하고 자체적으로 유지해야 한다( = EC2 인스턴스를 사전에 만들어야 한다는 의미!) 사용자가 컨테이너에서 실행되는 인프라에 대한 책임이 있다면, AWS는 컨테이너를 시작하고 중지하는 것과, 애플리케이션 밸런서와의 통합을 책임지는 것!    위의 그림을 보면, 여러개의 EC2 인스턴스가 있고, 사용자는 이 EC2 인스턴스들을 사전에 만들어야 한다.  EC2 인스턴스들은 ECS 서비스에 의해 서로 다른 컨테이너에서 실행되고, ECS 서비스는 새로운 도커 컨테이너를 가질 때마다 어떤 EC2 인스턴스를 어떤 도커 컨테이너에..

AWS 2025.03.17