분류 전체보기 108

하이브리드 인프라 관리, AWS SSM

# AWS Systems Manager - SSM SSM은 EC2 인스턴스와 온프레미스 시스템을 규모에 맞게 관리하도록 돕는 서비스이다. 온프레미스와 AWS 모두를 관리하는 서비스로, 하이브리드 AWS 서비스라고도 한다.    🔨 SSM가 수행하는 작업들 인프라에 대한 운영 인사이트 제공10개 이상의 상품에 액세스 가능SSM 의 중요한 기능들- 규정 준수를 강화하기 위해 서버와 인스턴스에 패치를 자동으로 적용- SSM 에서 전체 서버로 바로 명령을 실행할 수 있음- SSM 파라미터 스토어로 기본 구성 저장 가능Windows, Linux 서버에서 모두 실행됨  💡 SSM 작동 원리  SSM 서비스는 자체적으로 실행되지만, 사전에 제어하는 시스템에 SSM 에이전트를 설치해야 한다. 백그라운드에서 실행될 ..

AWS 2025.03.30

안전하고 효율적인 코드 종속성 저장소, AWS CodeArtifact

# CodeArtifact개발자가 생성한 소프트웨어 패키지는 대게 서로 의존적으로 설계된다. 소프트웨어 패키지의 아키텍처와 같은 이것을 '코드 종속성'이라고도 부른다. 또한 이 종속성을 저장하고 검색하는 것을 'Artifact 관리'라고 한다.   기존에는 Amazon S3나 EC2 인스턴스의 사용자 지정 소프트웨어에서 자체 Artifact 관리 시스템을 설정해야 했고, 이 과정이 복잡했다.  -> AWS CodeArtifact는 안전하고, 확장 가능하며, 비용 효율적인 소프트웨어 배포에 관한 Artifact 관리 소프트웨어로 출시!!   CodeArtifact를 사용하면, 자체 인프라를 설정하는 대신 개발자들이 사용하는 일반적인 종속성 관리 도구인 Maven, Gradle, npm, yarm, twin..

AWS 2025.03.29

CICD를 위한 CodePipeline

# CodePipeline 이전 포스팅에서 살펴본 CodeCommit과 CodeBuild를 연결하는 것이 CodePipeline이다. CodePipeline을 사용하면 코드가 자동으로 프로덕션에 푸시되도록 다른 단계들을 조정할 수 있다.  즉, 코드를 가져오는 파이프라인을 정의하고, 설계와 테스트를 하고 일부 서버를 프로비저닝해서 해당 서버에 애플리케이션을 배포하는 과정을 조정하는데 사용될 수 있는 파이프라인 도구인 것이다.   💡 CICD란 무엇일까?Continuous Intergration & Continuous Delivery의 약자인 CICD는 '지속적 통합과 지속적 전달'이라는 뜻을 가진다. 개발자가 리포지토리로 코드를 푸시할 때마다 구축되어 테스트하고 일부 서버에 배포하는 과정이 지속적으로 ..

AWS 2025.03.28

AWS CodeBuild: 코드 빌드와 배포를 자동화하는 서버리스 서비스

# CodeBuild CodeBuild는 클라우드에서 코드를 설계하도록 하는 서비스이다. 소스 코드가 컴파일되고 테스트가 실행되고 출력값으로 패키지가 생성되는데, 패키지는 예를 들어 CodeDeploy로 서버에 배포된 준비가 되어 애플리케이션을 실행하도록 한다.     CodeCommit에 코드가 있고, CodeBuild는 CodeCommit에서 코드를 검색하고 정의해야 하는 스크립트를 실행하고, 코드를 빌드하여 배포 준비가 완료된 artifact를 얻게 된다. (CodeCommit은 더이상 신규 회원에게 서비스를 제공하지 않는 점을 유의하자..!)   💡 CodeBuild의 장점 완전 관리형이며 서버리스지속적으로 확장 가능고가용성안전함종량 과금제로 코드 빌드 시간에 대한 비용만 지불하면 된다 -> 개..

AWS 2025.03.27

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