AWS 66

[AWS] SQS/S3 Event - Unable to validate the following destination configurations

현상 AWS S3 Event를 사용해 S3 버킷에 객체가 생성되면 SQS로 이벤트 알림을 보내도록 연동하고 있다. 그런데 새 S3 이벤트를 설정하려고 했더니 아래와 같은 오류 메시지가 발생하면서 이벤트 설정이 완료되지 않았다. 설정값을 잘못 지정했나 싶었으나 기존에 잘 동작하고 있는 S3 Event도 편집이 되지 않는 이상한 상태였다. 원인 에러 메시지로 구글링을 해보면 대개 S3와 SQS의 액세스 정책이 원인으로 보인다. 하지만 이 글의 경우, 새로 정책을 설정하는 사례가 아녔기 때문에 권한 및 정책 문제는 없었다. 알아보니 S3 버킷에 등록된 S3 이벤트 중 전달 대상으로 설정된 SQS가 실제로는 존재하지 않으면, 해당 S3 버킷에 등록된 모든 S3 이벤트를 수정할 수 없고 새로 S3 이벤트를 생성할..

AWS 2023.09.07

[AWS] NLB - Unhealthy Target인데 라우팅 되는 경우

개요 2023.05.25 - [AWS] LB 동작 방식에서 AWS 로드밸런서의 전반적인 동작 방식에 대해 정리를 했었는데, NLB는 조금 다르게 동작하는 부분이 있는 것 같아 추가로 적어둔다. 예로 들어, 아래와 같이 사용자가 NLB를 통해 서비스에 접근하는 구조가 있다고 하자. AWS ELB는 기본적으로 Healthy 상태인 타깃 인스턴스로 라우팅을 수행한다. 따라서 Target group - 80에 등록된 타깃 인스턴스가 전부 아래 사진과 같이 unhealthy 상태라면 사용자는 서비스에 접근할 수 없어야 한다. 하지만 접근을 할 수 있었다! 실제로 나는 1년이 넘는 시간 동안 Target 인스턴스가 전부 unhealthy인 웹 서버에 접속을 아주 잘 하고 있었다. 어떻게 이럴 수 있었을까? 이유 1..

AWS 2023.09.01

[AWS] CloudShell 이란

CloudShell 브라우저 기반의 사전 인증된 Shell로, AWS Management Console에서 사용할 수 있다. CloudShell을 시작하면 Amazon Linux 2 기반의 컴퓨팅 환경이 생성되고 Bash, PowerShell, Z shell 등의 원하는 쉘을 이용해 AWS CLI를 사용할 수 있다. 즉, 별도의 설치 없이 AWS CLI를 수행할 수 있다. 단, CloudShell을 이용하기 위해서는 AWSCloudShellFullAccess와 같은 권한이 필요하다. 이 글에서는 간단히 CloudShell에서 제공하는 기능을 살펴보고 직접 사용해보려고 한다. 기능 CloudShell은 다음과 같은 기능을 지원한다. AWS CLI AWS 콘솔에 로그인한 자격증명으로 Shell을 시작한다. ..

AWS 2023.08.02

[AWS cli] s3 sync/cp - An error occurred () when calling the GetObjectTagging operation: Access Denied

개요 Ubuntu 14.04 LTS에서 사용하고 있던 aws s3 sync, cp 명령이 동일하게 구성한 Ubuntu 22.04 LTS에서 아래와 같은 에러를 발생시키며 동작하지 않았다. 실행 명령어 aws s3 cp \ --profile=dev \ s3://prd-bucket/test/parser-v1.parquet s3://dev-bucket/test/parser-v1.parquet 발생 오류 메시지 copy failed: s3://s3://prd-bucket/test/parser-v1.parquet to s3://dev-bucket/test/parser-v1.parquet An error occurred (AccessDenied) when calling the GetObjectTagging oper..

AWS 2023.07.28

[AWS] S3 - 멀티파트 업로드/다운로드

멀티파트 업로드기본적으로 S3에 단일 작업으로 업로드할 수 있는 객체의 크기는 최대 5GB이다. 만약 5GB를 초과하는 객체를 업로드해야 한다면 멀티파트 업로드 기능을 사용해야 하는데. 멀티파트 업로드 기능이란 하나의 대용량 파일을 여러 개의 부분으로 나눠 업로드하는 기능이다. 일반적으로 객체 크기가 100MB를 넘으면 멀티파트 업로드를 권장한다. 멀티파트 업로드를 이용하면 최대 5TB의 객체를 업로드할 수 있고, 큰 객체를 여러 조각으로 나눠 병렬 처리할 수 있어 빠르게 업로드할 수 있다.다만 객체의 일부분만 업로드된 경우에는 객체가 S3에 표시되지 않는다. 하지만 용량을 차지하고 있기 때문에 비용이 발생하므로 수명주기 규칙 등을 활용해 삭제해 주는 등의 관리가 필요하다.  cli를 이용한 멀티파트 업..

AWS 2023.07.27

[AWS] ECR Private Repository에 이미지 푸시

개요 2023.07.07 - [AWS] ECR 이란?에서 ECR의 개념, 구성 요소, 특징 정도를 간단하게 살펴보았다. 이 글에서는 실제로 레포지터리를 생성해보고, 도커 이미지를 푸시해보려고 한다. 생성할 레포지터리는 프라이빗 레포지터리고, 관련 권한은 이미 부여되어 있다고 가정한다. 참고로 AWS EC2 Ubuntu 20.04에서 테스트하며 EC2에는 간단히 EC2InstanceProfileForImageBuilderECRContainerBuilds 정책을 적용했다. 레포지터리를 사용하기 위해서는 aws cli와 docker가 필요하므로 미설치 상태라면 설치하도록 한다. apt install awscli apt install docker.io 레포지터리 생성 프라이빗 레포지터리를 생성해본다. 1. AW..

AWS 2023.07.10

[AWS] ECR 이란?

ECR Amazon Elastic Container Registry의 약자로, 안전하고 확장 가능하고 신뢰할 수 있는 AWS 관리형 컨테이너 이미지 레지스트리 서비스이다. DockerHub처럼 Docker 이미지를 저장하고 사용할 수 있다. AWS IAM 기반으로 특정 사용자나 EC2 인스턴스가 레포지터리나 이미지에 접근할 수 있도록 제어하는 프라이빗 레포지터리를 지원한다. 퍼블릭 레포지터리로도 사용할 수 있다. 이 글에서는 ECR에 개념적인 부분만 간단히 정리한다. 특징 1. OCI(Open Container Intiative) 표준 및 Docker Registry HTTP API V2 지원 - Docker CLI 명령을 통해 ECR을 사용할 수 있다. 또한 Docker 컨테이너 이미지 및 관련 OCI..

AWS 2023.07.07

[AWS] EC2 인스턴스 Type 변경

개요 AWS 특징 중 하나는 유연함이다. 필요하다면 리소스의 수나 유형을 편리하게 조정할 수 있다. 마침 테스트 서버로 사용할 EC2의 타입을 잘못 지정해서…… 이 글에서는 EC2 Type을 변경하는 방법을 적어둔다. EC2 인스턴스 유형을 변경하는 방법은 크게 두 가지다. - 변경할 EC2의 AMI를 생성한 뒤 새 인스턴스로 생성한다. - 변경할 EC2 인스턴스 자체의 유형을 변경한다. 이 글에서는 두 번째 방법을 이용한다. 요구 사항 EC2 인스턴스의 유형을 변경할 때는 다음과 같은 사항이 요구된다. 1. EC2 인스턴스가 중지(Stopped)된 상태여야 한다. 2. 인스턴스 구성과 호환되는 유형을 선택해야 한다. 만약 호환되지 않는 경우 새 인스턴스를 생성하는 방식으로 진행해야 한다. (참고 : 인..

AWS 2023.06.22

[Linux] 명령어 실행 결과를 다른 명령 인자로 전달하기

개요 예로 들어 AWS 계정 내 모든 S3 버킷에 대한 버전 관리 기능 활성화 여부를 확인하고 싶다. 계정 내 S3 버킷 목록은 list-buckets 명령어로 확인할 수 있고, aws s3api list-buckets 버킷의 버전 관리 기능 활성화 여부는 get-bucket-versioning 명령어에 확인할 버킷을 지정하여 확인할 수 있다. aws s3api get-bucket-versioning --bucket BUCKET_NAME 이 두 개 명령을 묶어서 하나의 명령어로 처리하고 싶다. 방법을 적어둔다. xargs 빈칸이나 새 줄로 구분된 표준 입력을 읽어 명령어의 인자(argument)로 전달할 수 있는 명령어다. 앞 명령어의 출력을 다음 명령어의 입력으로 전달하는 PIPE(|)와 같이 사용한다..

Linux 2023.05.31

[AWS] RDS 스냅샷을 S3로 내보내기 관련 CLI

RDS 스냅샷을 S3로 내보내기 RDS는 스냅샷을 S3로 저장할 수 있는 내보내기(export) 기능을 제공하고 있다. 스냅샷에서 데이터를 추출해 Apache Parquet 형식으로 데이터를 저장하는 기능으로 백그라운드로 동작해 RDS 성능에 영향을 주지 않는다. AWS에서 생성한 모든 유형의 스냅샷(수동 스냅샷, 자동화된 시스템 스냅샷, AWS Backup 서비스에서 생성된 수동 스냅샷)을 내보낼 수 있고, 모든 데이터뿐만 아니라 특정 데이터베이스나 특정 테이블만 내보내도록 할 수도 있다. 이 글에서는 내보내기 기능을 사용할 때 사용한 CLI 정도만 간단히 정리한다. 해당 기능을 사용하기 위해 어떤 부분이 필요한지는 공식 문서 Amazon S3로 DB 스냅샷 데이터 내보내기를 살펴보면 좋을 것 같다. ..

AWS 2023.05.28
1 2 3 4 5 6 7