인파

You Can Become A

늦게 시작해도 누구든지 노력하면 개발자가 될수 있어요 !

공부한 내용을 정리합니다
Amazon Cloud/Athena

[AWS] 📚 Athena 사용법 정리 (S3에 저장된 로그 쿼리하기)

AWS Athena 서비스 S3 Athena는 S3에 저장된 데이터를 SQL 언어로 조회할 수 있는 대화식 서비스이다. 표준 SQL을 사용해 Amazon S3에 저장된 데이터를 간편하게 분석할 수 있고 몇 초 안에 대용량을 데이터를 조회해 검색 결과를 얻을 수 있다. 보통 로그같은 대규모 데이터는 EBS나 ElasticSearch 등에 적재하기에는 많은 비용이 발생하기 때문에, S3와 같은 저렴한 스토리지에 저장하게 된다. 하지만 로그를 가져올 때 조건을 거는 부분과 많은 양의 압축된 로그 파일을 로드하고 압축을 푸는데 시간이 너무 많이 소요되는 문제가 생긴다. 따라서 이러한 문제들을 해결해줄수 있는 서비스가 Athena(아테나)이다. Athena(아테나)에 데이터가 저장되어있는 S3를 설정해주고 테이블..

category_image
인파_
2022.08.08
(0)
Amazon Cloud/ELB

[AWS] 📚 ELB(ALB) 로그 활성화 & S3에 로그 저장하기

ALB Access Log ALB Access Log는 말 그대로 단순 트래픽 로그다. 로드밸런서 DNS를 통해 사용자들이 로드밸런서를 경유해 인스턴스로 접속할때 기록된다. 이 로그를 통해 ELB-respose, Target-response, Client, 접근 경로 등을 알 수 있어서, 클라우드 환경에서 서비스를 올린다면 자주 접해야 하는 로그이다. 하지만 Access Log를 통해 Client의 요청이 어디까지 도달했는지, 무슨 에러를 뱉었는지, 어떤 요청을 했을 때 어떤 반응을 보였는지 ..등 대략적인 추측이 가능하나, 정확한 점검을 위해선 어플리케이션 점검이 필수적이다. ALB Access Log 특징으로는 다음과 같다. Timstamp는 UTC 기준 : KST 기준이 아니므로 특정 시간대의 트래..

category_image
인파_
2022.08.05
(0)
Amazon Cloud/API Gateway

[AWS] 📚 API Gateway 인증 키 & 사용량 제한 설정

API Gateway 인증 키 지난 시간에 REST API Gateway 배포에 성공했었다. 하지만 만일 누군가가 불순한 의도를 가지고 프로그램을 이용하여 하루에 100만건의 api 요청 트래픽을 보내면 어찌될까? 서비스가 터져버릴 것이며, 요금 또한 핵폭탄을 맞게 될 것이다. 따라서 API Key를 생성하여 프로젝트별로 고객이 원하는 요청 속도, 할당량을 설정하여 제한하여야 한다. API Key를 관리하여 사용자들에게 요청 권한을 제공하고, 사용량 계획을 이용하여 일,월 요청 수 또는 n초 당 m개의 요청 수를 제한하는 기능을 설정한다. 이렇게 개발자들은 주로 API Key와 사용량 계획, Lambda 권한 부여자를 함께 사용함으로서 API 엑세스를 제어 한다. 주의사항 ⚠️ API Key를 인증과 인..

category_image
인파_
2022.08.04
(0)
Amazon Cloud/API Gateway

[AWS] 📚 API Gateway 개념 & 기본 사용법 정리

API Gateway 서비스 API Gateway란 규모에 상관없이 API 생성, 유지 관리, 모니터링과 보호를 할 수 있게 해주는 서비스이다. 말 그대로 Client에서 server로 통신할 때 사용하는 많은 api들의 대문(게이트웨이)과 같은 역할을 한다고 보면 된다. 즉, API가 지나가는 통로인 셈이다. API Gateway를 이용하면 통합적으로 엔드포인트와 REST API를 관리할 수 있다. API 게이트웨이를 등록해주면, 모든 클라이언트는 각 서비스의 엔드포인트 대신 API Gateway로 요청을 전달하여 관리가 용이해 진다. 사용자가 설정한 라우팅 설정에 따라 각 엔드포인트로 클라이언트를 대리하여 요청하고 응답을 받으면 다시 클라이언트에게 전달하는 프록시(proxy) 역할을 하기 때문이다. ..

category_image
인파_
2022.08.03
(0)
Amazon Cloud/AWS-SDK (Node)

[AWS-SDK] 👨🏻‍💻 Node - AssumeRole 토큰 발급 받기

임시 자격 증명 생성 (AssumeRole) 임시 자격 증명은 사용자에게 특정 역할(Role)을 Assume(뜻: 제것으로 삼다)하여 역할에 부여된 권한을 행사 가능하게 하는 단기로 사용할 수 있는 자격 증명이다. 사용자가 Role을 Assume하다라는게 무슨말이냐면, 아래 사진과 같이 권한이 없는 IAM 유저가 어드민 모자(Role)를 쓰면(assume) 마치 사용자가 어드민 처럼 되서 어드민 권한을 행새 할 수 있다는 것을 뜻한다고 보면 된다. 그래서 이러한 모자를 쓰는 행위를 AssumeRole 이라고 한다. 몇분에서 몇시간 까지 지속시간이 정해져 있어서 '임시' 라는 말이 들어간 것이다. 만일 자격 증명이 만료된 이후에는 어떤 종류의 액세스도 허용되지 않는다. 필요한 시점에서 바로바로 생성해서 활..

category_image
인파_
2022.08.02
(0)
Amazon Cloud/AWS-SDK (Node)

[AWS-SDK] 👨🏻‍💻 Node - Multer S3 연동 및 사용법 정리

multer-s3 사용법 전 시간에 Node.js 에서 AWS SDK S3를 다루는 법에 대해서 알아보았다. 그럼 만약 게시글 이미지를 S3에 저장하도록 구성하고 싶다면 어떻게 할까? 보통 노드 프로젝트에서 파일 업로드 관련 작업에 가장 많이 사용되는 multer 모듈에 아마존 S3을 연동해서 프로세스를 구성 해야 할 것이다. 따라서 AWS S3 버킷에 이미지 파일을 저장하고, DB엔 그 버킷의 이미지 파일 경로(이미지 주소)를 저장하고, 서버는 이 경로를 클라이언트로 응답하는 식으로 프로세스를 구축하여야 한다. 다행히 이미 multer-s3 이라는 모듈이 만들어져 있어 우리는 그저 가져다 쓰기만 하면 된다. [EXPRESS] 📚 multer 미들웨어 사용법 💯 정리 multer 모듈 멀터는 사용 방법이..

category_image
인파_
2022.08.02
(0)
Amazon Cloud/AWS-SDK (Node)

[AWS-SDK] 👨🏻‍💻 Node - S3 다루기 문법 정리

AWS SDK S3 사용법 AWS 클라우드에는 정말 많은 서비스들이 있고, AWS SDK에서도 프로그래밍적으로 다양한 서비스를 제어할 수 있게 많은 api를 제공한다. 그중에 S3 서비스는 값싸고 관리하기 좋은 원격 저장소로서 정말 안쓰이는 곳이 없을정도로 많이 쓰이는 서비스이다. 정말 많이 사용되는 만큼 AWS SDK에 입문하는데 있어서 최적이다. 이번 포스팅에서 Node.js를 S3에 연동해서 버킷을 만들고 객체(파일)을 넣고 뺄수있는지 전반적인 메소드를 살펴볼 예정이다. ..앞서 기본적인 S3 서비스에 대한 지식과 더불어 기본적인 SDK 사용법에 대한 선수지식이 필요하다. [AWS-SDK] 👨🏻‍💻 Node.js 연동 및 SDK 기본 사용법 AWS SDK Node.js SDK(Software Dev..

category_image
인파_
2022.08.01
(0)
Amazon Cloud/S3

[AWS] 📚 클라이언트 툴로 S3 접속해서 간편하게 다루기 [MobaXterm]

S3 클라이언트 툴 웹 콘솔 브라우저로 S3 서비스를 다루기에는 한국인 정서에는 좀 많이 느린편이라 답답하다. 그래서 보통 aws cli 커맨드로 S3를 다루는데, 그래도 간단한 작업 같은 경우 GUI 환경에서 S3을 다루는 것이 훨씬 편하다. 가장 유명한 공유파일 툴인 파일질라로 sftp로 s3와 동기화 시켜서 다루는 방법도 있지만, 프로 라이센스가 필요하다. 무료로 이용할 수 있는 툴이 있을까 찾아보다, 모바엑스텀 이라는 툴로 S3에 접속해 sftp같이 자유롭게 파일 업로드/드랍을 할수 있다는 것을 알아냈다. 사용하기 매우 간단하면서도 보기 좋게 되어있으니, 한번 이용해 보길 권한다. Mobaxterm 설치 & 사용법 모바엑스텀 툴 설치와 기본 사용법은 다음 포스팅을 참고 바란다. [MobaXterm..

category_image
인파_
2022.07.31
(0)
Amazon Cloud/AWS-SDK (Node)

[AWS-SDK] 👨🏻‍💻 Node.js 연동 및 SDK 기본 사용법

AWS SDK Node.js SDK(Software Development Kit) 란, 특정 서비스를 프로그래밍적으로 제어하기 편리하도록 제공되는 개발에 필요한 도구들을 의미한다. SDK는 어떤 특정한 프로그래밍 언어를 지칭하는 것이 아니다. 라이브러리, 프레임워크, 모듈 같은 용어를 내포하는 상위권 용어라고 보면 된다. 좀더 쉽게 설명하자면 우리가 안드로이드 어플을 개발하기 위해선 Android-Studio를 사용하는데, 바로 이 안드로이드 스튜디오가 안드로이드 SDK 인 것이다. (안드로이드 어플을 개발하기 위한 도구) 그리고 이 안드로이드 SDK에서 지원하는 언어는 대표적으로 JAVA와 Kotlin 두개가 있고 이 언어를 이용해 어플을 개발한다. 이처럼 AWS SDK란 AWS을 프로그래밍적으로 유기..

category_image
인파_
2022.07.29
(0)
Amazon Cloud/S3

[AWS] 📚 S3 객체 암호화 기능 종류 및 사용하기

웹사이트의 경우 외부에 공개하는 정보가 아닌 이상 S3에 저장하는 데이터는 기본적으로 암호화할 필요가 있다. 또한 만일 인프라가 외부의 공격으로 인해 털렸을때 암호화 설정을 해놓는다면 도둑들은 쉽게 안의 중요한 데이터를 볼수 없을 것이다. 대개 S3에 데이터를 암호화는 거는 방식은 크게 두가지 방식이 있는데, 데이터를 저장할 때 암호화 KEY를 이용해 암호화/복호화로 관리하거나, Amazon의 암호화된 API 엔드포인트를 이용해 S3에서 다른 서비스 또는 리소스로 전송되는 데이터를 암호화 할 수 있다. S3 Key로 암호화하기 키를 이용해 S3 데이터를 암호화할때 어느 주체 기준으로 암호화하는지에 따라, 서버측 과 클라이언트로 나뉘게 된다. 이 둘은 각 상황과 특징에 따라 쓰임새가 달라 자신의 서비스 환..

category_image
인파_
2022.07.27
(0)
Amazon Cloud/S3

[AWS] 📚 S3 티어(스토리지 클래스) & 수명주기 관리하기

S3 티어 (스토리지 클래스) S3 스토리지는 일반적으로 어떤 종류의 데이터를 관리하는지에 따라서 그리고 얼마나 자주 그 데이터에 접근해야 하는지에 따라서 분류가 된다. 예를들어 자주 엑세스하는 데이터는 내구성이 높은 스토리지에, 자주 엑세스는 하지는 않는데 그래도 저장이 필요한 데이터들은 비교적 가격이 저렴한 스토리지에 저장하는 등 다양히 활용할 수 있다. 아마존의 일종의 마케팅 전략이라고 보면 된다. 그렇지만 생각보다 훨씬 합리적인 요금제이다. 사용자가 정말 “쓴 만큼만" 과금할 수 있도록 하는 요금제이기 때문이다. 그래서 이런 분류를 Storage Class라고 하며 각각 다음과 같은 특징이 있다. Standard Intelligent-Tiering Standard-IA One Zone-IA Gla..

category_image
인파_
2022.07.26
(0)
Amazon Cloud/S3

[AWS] 📚 S3 Pre-signed URL 공유하기

S3 Pre-signed URL 공유 만일 이용자들이 S3 버킷에 public에서 접근해서 object를 다운받거나 업로드 하게 설정해야 하는 경우, 보통 두가지 방법이 있다. 1. 모든 파일을 퍼블릭으로 만들기 장점 : 별도의 관리가 필요없음 단점 : 아무나 파일 다운로드 가능 (보안 문제) 2. IAM 자격증명 공유 (Access Key Pair) 장점 : 지정한 사람만 공유 가능 단점 : 자격증명 유출/변경 시 공유자 모두에게 다시 부여 필요하고 관리 자체가 빡쌔다. 3. IAM 사용자 부여하기 (Role) 장점 : 지정한 사람만 공유 가능 단점 : IAM 사용자 숫자 제한 (5000개), 부여하는 과정과 유지보수의 어려움 이처럼, 버킷 자체를 public으로 열기엔 부담스럽고, 그렇다고 이용자에게..

category_image
인파_
2022.07.25
(0)