AWS

📚 IaC/Terraform

[Terraform] 테라폼 변수와 출력

[Terraform] 테라폼 변수와 출력 테라폼은 코드 내에서 값들을 저장하고 재사용할 수 있는 매개변수를 사용할 수 있다. 예를 들어, 특정 네트워크 서브넷 또는 인스턴스 유형을 Terraform 모듈의 변수로 정의할 수 있다. 이런식으로 변수를 사용하면, 모듈을 사용하는 프로젝트나 환경마다 변수 값을 다르게 지정할 수 있다. 이를 통해 코드의 유연성과 가독성을 높일 수 있다. Variables 입력 변수 (Input) 모듈의 매개 변수 역할을 한다 사용자는 소스를 편집하지 않고도 동작을 사용자 정의할 수 있음 함수의 입력 파라미터(인자 값)와 비슷한 개념 Input Variables - Configuration Language | Terraform | HashiCorp Developer Input v..

📚 IaC/Terraform

[Terraform] Terraform으로 AWS EC2 서버 배포하기 (2)

[Terraform] Terraform으로 AWS EC2 서버 배포하기 (2) https://heywantodo.tistory.com/106 [Terraform] Terraform으로 AWS EC2 서버 배포하기 (1) [Terraform] Terraform으로 AWS EC2 서버 배포하기 (1) Amazon EC2 인스턴스를 Default VPC에서 Terraform을 이용해 코드로 생성해보자 1. 공급자 (Provider) 구성 테라폼을 사용하기 위한 첫번째 단계 AWS 공급자를 사 heywantodo.tistory.com 앞 포스팅에 이어서 Userdata를 통해 EC2에 nginx를 설치하고, 보안그룹을 지정해주는 과정을 진행해보자 1. Userdata userdata는 aws_instance r..

📚 IaC/Terraform

[Terraform] Terraform으로 AWS EC2 서버 배포하기 (1)

[Terraform] Terraform으로 AWS EC2 서버 배포하기 (1) Amazon EC2 인스턴스를 Default VPC에서 Terraform을 이용해 코드로 생성해보자 1. 공급자 (Provider) 구성 테라폼을 사용하기 위한 첫번째 단계 AWS 공급자를 사용하고, 서울 리전에 인프라를 배포한다는 것을 의미함 1-1. 작업 폴더 생성 & 액세스키 등록 액세스키 등록을 다하고나면 aws s3 ls 명령을 통해서 접근이 잘 되는지 확인 mkdir ec2_test cd ec2_test aws configure aws s3 ls 액세스키에 대한 설명은 아래 포스팅에서 확인할 수 있음 [AWS] AWS CLI 설치 & 인증 [AWS] AWS CLI 설치 & 인증 AWS Command Line Inte..

📚 IaC/Terraform

[Terraform] Terraform이란?

[Terraform] Terraform이란? Terraform HashiCorp에서 개발한 코드형 인프라스트럭처 자동화 도구 클라우드 서비스와 온프레미스 인프라스트럭처를 프로비저닝하고 관리하기 위해 사용됨 Terraform은 다양한 클라우드 프로바이더를 지원하며, AWS, Azure, GCP, VMware, OpenStack 등과 통합하여 인프라스트럭처를 관리할 수 있음 🔎 Infrastructure as Code (IaC) 인프라 운영 코드로 개발하여 관리하는 도구 기존의 수동으로 시스템마다 인프라를 구현하던 시대가 가고, 코드로 개발된 인프라 구성이 활성화되고 있음 인프라 구성의 시간과 비용이 절감되고, 일관성 보장, 오류 감소, 구성 변동 제거 등의 강점이 있음 테라폼 장점 협업하기 좋음 dry-r..

💻 CSP/AWS

[AWS] AWS Athena

[AWS] AWS Athena Amazon Athena 오픈소스 프레임워크에 구축된 서버리스 대화형 분석 서비스로 개방형 테이블과 파일 형식을 지원 Athena는 페타바이트 규모의 데이터를 분석할 수 있는 유연한 방식을 제공함 S3 (Simple Storage Service) 데이터 레이크 및 온프레미스, SQL, Python을 사용하는 시스템을 포함하는 25개 이상의 데이터 소스로부터 데이터를 분석하거나 애플리케이션을 구축할 수 있음 Athena는 Trino(Presto) 엔진과 Apache Spark 프레임워크로 구축되었으며, 프로비저닝이나 구성 작업이 필요 없음 쿼리 할 데이터 크기가 클수록 스캔 비용이 늘어나므로, 스캔한 데이터 사이즈 최소화가 중요함 특징 별 다른 설치 없이 사용이 가능 쿼리를 ..

💻 CSP/AWS

[AWS] S3 & 스토리지 클래스

[AWS] S3 & 스토리지 클래스 Amazon S3(Simple Storage Service)는 Amazon Web Service(AWS)에서 제공하는 객체 스토리지 서비스로 대규모 데이터 저장, 검색 및 관리를 위한 안전하고 확장가능한 솔루션 S3는 여러 가지 종류와 스토리지 클래스를 제공하여 다양한 요구사항에 맞게 데이터를 저장하고 액세스 함 S3의 수명 주기 정책을 사용하면 데이터의 수명 주기에 따라 데이터를 자동으로 다른 스토리지 클래스로 이동하거나 삭제 가능 스토리지 클래스 설명 읽기 여부 S3 Standard 기본 제공 스토리지 클래스로, 자주 액세스되는 데이터에 사용 가능 S3 Intelligent-Tiering 액세스 패턴을 분석하여 자동으로 데이터를 분리하여 최적의 스토리지 클래스에 저..

💻 CSP/AWS

[AWS] Elastic Load Balancer (ELB)

[AWS] Elastic Load Balancer (ELB) 로드밸런서 (Load Balancer) : 여러 대상 인스턴스 또는 컨테이너로 들어오는 트래픽을 분산시켜 애플리케이션의 가용성과 확장성을 향상시키는 중요한 구성 요소 로드밸런서는 네트워크 트래픽을 관리하고 애플리케이션의 서비스를 제공하기 위해 효율적인 방식으로 트래픽을 분산시킴 로드밸런서는 클라이언트로부터의 요청을 받아, 이를 여러 대상으로 분산시켜주는 역할을 함 이를 통해 트래픽 부하를 공정하게 분산하여, 각 대상이 과도한 작업량을 처리하지 않도록 함 ELB (Elastic Load Balancer) : AWS에서 제공하는 로드 밸런싱 서비스 서버 인스턴스의 상태를 모니터링하고 자동으로 트래픽을 분산시킴 ELB에는 3가지 종류가 있음 ALB ..

💻 CSP/AWS

[AWS] SQS를 다른 AWS 인프라 웹 서비스와 함께 사용

[AWS] SQS를 다른 AWS 인프라 웹 서비스와 함께 사용 Amazon SQS 메시지 대기열 서비스를 Redshift, DynamoDB, RDS, EC2, ECS, Lambda 및 S3 등 다른 AWS 서비스와 함께 사용하면 분산 애플리케이션의 안정성과 확장성을 더욱 향상할 수 있음 SQS + S3 1. 비동기 처리 : S3 버킷에 업로드 되는 파일을 처리하는 데 많은 시간이 걸리는 경우, 해당 파일을 처리하는 애플리케이션에서 대기열 메시지를 가져와 비동기적으로 처리할 수 있음 2. 높은 가용성 : S3 버킷에 업로드된 파일을 처리하는 애플리케이션이 다운 되었을 때, SQS 대기열에 저장된 메시지는 여전히 유지되므로 해당 애플리케이션이 복구되면 메시지를 가져와 작업을 다시 시작할 수 있음 3. 확장성..

💻 CSP/AWS

[AWS] SQS (Simple Queue Service)

[AWS] SQS (Simple Queue Service) SQS (Simple Queue Service) : 분산 된 메시징 대기열 서비스로, 소프트웨어 컴포넌트 간에 비동기 메시지를 전송하는 데 사용됨 큐를 생성하고, 메시지를 보내고, 받는 기능을 제공함 다양한 AWS 서비스와 통합될 수 있음 (SNS, Lambda, EC2, S3 등) 분산 된 시스템 아키텍처에서 유용하며, 서로 다른 시스템 간에 메세지를 안정적이고 확장 가능하게 전송 SQS 처리 과정 메시지 생성: 메시지를 생성하고, SQS 대기열에 보내기 위해 SQS API를 사용 대기열 수신: SQS 대기열에 저장된 메시지를 수신, 대기열은 표준 대기열과 FIFO 대기열로 구성 메시지 처리: 대기열에서 가져온 메시지를 처리함 이때, 애플리케이..

💻 CSP/AWS

[AWS SDK] Boto3 : boto3을 이용해서 S3 객체 copy 하기

[AWS SDK] Boto3 Boto3 : AWS를 파이썬에서 사용하기 위한 공식 AWS SDK (Software Development Kit) AWS 서비스와 상호작용 하기 위한 Python 라이브러리로,다양한 AWS 서비스를 관리하고 제어하는 기능을 제공 Boto3를 이용해서 S3 버킷에 있는 파일을 다른 버킷으로 Copy import boto3 # AWS S3 클라이언트 생성 s3_client = boto3.client('s3') # 복사할 객체의 원본 버킷 이름과 경로(Path) source_bucket_name = 'source-bucket' source_object_path = 'images/image.jpg' # 복사할 객체의 대상 버킷 이름과 경로(Path) target_bucket_nam..

💻 CSP/AWS

[AWS] Elasticache

[AWS] Elasticache Redis 빠른 오픈 소스 인 메모리 키 값 데이터 구조 스토어 데이터베이스(NOSQL DBMS)로 분류가 되기도 하고 Memcached와 같이 인메모리 솔루션으로 분류되기도 함 가장 단순한 키-밸류 타입을 사용하고 있으며, 데이터 모델을 복잡할수록 성능이 떨어지므로 redis는 단순한 구조를 통해 높은 성능을 보장 ❓ 인 메모리 DB 컴퓨터의 주 메모리에 모든 조직 또는 개인의 데이터를 저장 보조 기억 장치를 사용하는 기존 데이터베이스에 비해 빠름 Memcached 오픈소스이며 분산 메모리 캐싱 시스템, 사용이 간편한 고성능 인 메모리 데이터 스토어 데이터 베이스의 부하를 줄여 동적 웹 어플리케이션의 속도개선을 위해 사용됨 DB나 API 호출에 대한 횟수를 줄일 수 있음..

💻 CSP/AWS

[S3] AWS CLI를 이용하여 S3 다루기

[S3] AWS CLI를 이용하여 S3 다루기 AWS CLI를 이용해서 서버에서 버킷에 파일을 업로드, 삭제할 수 있고 버킷 간 객체를 복사하거나 sync를 맞출 수 있음 AWS CLI 설치 아래 포스팅 참고하여 설치 https://heywantodo.tistory.com/49 [AWS] AWS CLI 설치 & 인증 [AWS] AWS CLI 설치 & 인증 AWS Command Line Interface는 쉘 커맨드를 사용하여 AWS 서비스와 상호 작용할 수 있는 도구 AWS CLI를 사용하여 서비스의 기능을 살펴보고 리소스를 관리할 스크립트를 개발할 수 heywantodo.tistory.com S3 버킷 확인 버킷 리스트 aws s3 ls 버킷 내 객체 리스트 aws s3 ls s3://bucketnam..