AWS 61

[AWS] S3 Select VS Athena

개요 S3 Select과 AWS Athena는 S3 버킷에 저장된 데이터를 DB를 사용하는 것처럼 SQL을 사용하여 조회할 수 있게 해 준다. 비슷한 기능을 제공하는데 두 서비스의 차이는 어떻게 될까? 간단히 정리해 둔다. S3 Select 참고 : 2022.11.07 - [AWS] S3 Select - 객체 내 데이터 쿼리 간단한 SQL을 사용해 전체 객체를 검색하는 대신 S3 객체 콘텐츠의 하위 집합을 검색하는 S3 기능이다. CSV, JSON, Apache Parquet 형식이어야 하며, GZIP, BZIP2 방식으로 압축된 데이터 대해서도 사용할 수 있다. 서버리스 기능이므로 기능을 사용하기 위해 관리해야 하는 인프라가 없다. 다만 SELECT 문만 지원하며 FROM, WHERE, LIMITS 절..

AWS 2023.03.13

[AWS] Athena 개념 및 사용법

AWS Athena 표준 SQL을 사용해 AWS S3에 저장된 데이터를 분석할 수 있는 대화형 쿼리 서비스 S3에 저장된 데이터를 지정하고 표준 SQL을 사용하면 임시 쿼리를 실행하여 결과를 얻을 수 있다. 즉, S3에 저장된 데이터를 DB에 저장된 데이터처럼 다룰 수 있다. 주로 로그와 같은 대규모 데이터를 로드하고 압축을 푸는데 필요한 시간과 비용을 줄이기 위해 사용한다. 특징 Serverless 서비스를 이용하기 위해 관리할 인프라가 없다. 또한 AWS 콘솔을 통해 사용할 수 있다. 비용 실행한 쿼리에 대한 비용을 지불한다. 조금 더 정확하게는 실행한 쿼리가 스캔한 데이터의 용량만큼 비용이 청구되는데 1TB 당 5달러 정도이다. 따라서 데이터 압축이나 파티셔닝을 이용해 스캔하는 양을 줄이면 보다 효..

AWS 2023.03.11

[AWS] ec2metadata - EC2 인스턴스 메타데이터 확인

EC2 인스턴스 메타데이터(IMDS) intance_id, instance_type, ami-id 등과 같이 실행 중인 인스턴스를 구성하거나 관리하는 데 사용하는 인스턴스 관련 데이터 EC2 생성 시 메타데이터의 엑세스 여부와 버전 등을 선택할 수 있다. 인스턴스 메타데이터를 사용해 인스턴스를 시작할 때 지정한 사용자 데이터(실행 스크립트)에도 접근이 가능하다. 다만 인증 또는 암호화 등의 방법으로 보호되지 않으며 인스턴스에 접근할 수 있는 모든 사용자는 제한 없이 접근할 수 있다. ec2metadata ec2metadata를 검색할 수 있는 명령어로, EC2에는 기본적으로 포함되어 있는 것 같다. 만약 명령어가 설치되어 있지 않다면, 아래의 명령어를 이용해 설치할 수 있다. apt install clo..

AWS 2023.02.14

[AWS] 자격 증명 기반 정책 / 리소스 기반 정책

정책 자격 증명 또는 리소스에 연결될 때 해당 권한을 정의하는 AWS 객체 리소스에 대한 액세스를 제한하는 권한 정책을 생성할 때 자격 증명 기반 정책(Identity-based policies) 또는 리소스 기반 정책(Resource-based policies)을 선택할 수 있다. 정책은 아래와 같이 분류할 수 있다. 자격 증명 기반 정책 (Identity-based policies) AWS 관리형 정책 고객 관리형 정책 인라인 정책 리소스 기반 정책 (Resource-based policies) 자격 증명 기반 정책 IAM 사용자, 그룹, 역할에 연결되어, 자격 증명이 수행할 수 있는 작업을 지정할 수 있다. AWS 관리형 정책 AWS에서 기본적으로 생성하고 관리한다. *FullAccess, *Pow..

AWS 2023.01.23

[boto3] S3 Select - OverMaxRecordSize 에러 대안

개요 아래와 같이 S3 Select 기능을 이용해 S3 버킷에 저장된 GZIP으로 압축된 JSON 데이터의 내용을 읽어 들이려고 한다. import boto3 client = boto3.client('s3') response = client.select_object_content( Bucket=bucket, Key=obj_key, Expression='SQL', ExpressionType='SQL', InputSerialization={ 'CompressionType': 'GZIP', 'JSON': { 'Type': 'LINES' } }, OutputSerialization={ 'CSV': {}, }, ) for event in response.get('Payload'): if 'Records' in e..

Python 2023.01.21

[AWS] EKS 접근 설정

개요 이미 생성되어 있는 EKS에 접속할 수 있도록 설정해보려고 한다. EKS에 접근하기 위해서는 다음과 같은 사항이 필요하다. aws cli : eks는 버전 2에서만 지원한다. EKS 클러스터 접근 권한이 부여된 IAM 사용자 또는 역할 kubectl 방법은 다음과 같다. 권한 설정 및 확인 aws profile을 등록하고, 접근할 EKS 클러스터의 정보를 조회할 수 있는지 확인한다. # profile 등록 aws configure # 클러스터 목록 확인 aws eks list-clusters \ --profile --region ap-northeast-2 # 클러스터 정보 확인 aws eks describe-cluster \ --name \ --profile --region ap-northeast-..

AWS 2023.01.09

[boto3] S3 내 지정한 경로 내의 하위 경로 조회

개요 aws cli로 s3 ls를 했을 때, 지정한 prefix에 존재하는 subprefix 정보를 boto3을 통해 얻고 싶다. 방법을 정리한다. client.list_objects_v2 버킷에 존재하는 객체의 일부 또는 전체(최대 1000개)를 반환한다. 조회할 버킷의 이름(Bucket), 조회할 prefix를 지정해야 한다. response = client.list_objects( Bucket='string', Delimiter='string', EncodingType='url', Marker='string', MaxKeys=123, Prefix='string', RequestPayer='requester', ExpectedBucketOwner='string' ) response 예시 { 'IsTr..

Python 2022.12.26

[boto3] 예외 처리

개요 Python으로 boto3을 사용할 때 발생하는 예외를 처리해 로그 또는 메시지를 남기거나 예외를 무시해야 하는 경우가 있다. 이 글에서는 boto3을 사용할 때 발생하는 예외를 처리하는 방법을 정리해둔다. 예외 종류 boto3를 사용할 때는 botocore 또는 AWS Service에서 예외가 발생할 수 있다. Botocore Exception Boto3가 의존하는 botocore 패키지 내에 정적으로 정의되는 예외이다. 클라이언트 측의 동작, 구성, 유효성 검사와 관련된 예외가 정의되어 있다. 정의된 예외는 https://github.com/boto/botocore/blob/develop/botocore/exceptions.py 에서 확인할 수 있다. AWS Service Exception bo..

Python 2022.11.10

[AWS] S3 Select - 객체 내 데이터 쿼리

S3 Select 간단한 SQL을 이용해 객체에서 필요한 데이터만 가져올 수 있도록 하는 서비스이다. CSV, JSON, Apache Parquet 형식으로 또는 압축되어 저장된 객체를 대상으로 사용할 수 있고, 결과는 CSV, JSON 형식으로 설정할 수 있다. S3 Select를 사용하기 위해서는 s3:GetObject 권한이 필요하다. 콘솔을 통해 사용 1. S3 버킷에 저장된 객체 중 S3 Select를 사용할 객체를 선택 > 열기 > S3 Select를 사용한 쿼리 클릭 2. 쿼리 결과를 출력할 형식을 설정한다. 3. 쿼리를 작성하고 실행한다. SQL 기본적으로 SELECT ~ FROM ~ WHERE 절을 사용할 수 있다. SELECT projection [ AS column_alias | co..

AWS 2022.11.07

[aws cli] cloudwatch 지표 통계 확인

개요 AWS는 각 리소스의 모니터링 탭이나 Cloudwatch를 통해 AWS가 지원하는 지표 정보, 예로 들어 EC2의 경우 CPU 사용륭이나 상태 검사 실패 건 등의 정보를 확인할 수 있다. 이러한 정보는 AWS 콘솔 뿐만 아니라 aws cli를 이용해 확인할 수도 있는데, 이 글에서는 해당 명령어 사용 방법에 대해 정리한다. GetMetricData VS GetMetricStatistics AWS cli/API를 사용하여 AWS CloudWatch 지표를 검색하는 방법으로는 GetMetricData 또는 GetMetricStatistics를 사용할 수 있다. GetMetricData는 대규모 데이터를 빠르게 검색할 수 있을 뿐만 아니라 지표 수식도 지원하지만, 프리 티어에 포함되어 있지 않다. 호출당..

AWS 2022.10.19
1 2 3 4 5 6 7