클라우드/AWS

클라우드/AWS

AWS STS로 임시 자격 증명 발급받고 사용하기

AWS STS (AWS Security Token Service) STS는 임시 보안 자격 증명을 위한 서비스입니다. STS를 활용하여 현재 자신이 사용하고 있는 자격을 알아내거나, 다른 user, role에 대한 자격 증명을 받아서 사용할 수도 있습니다. 아래는 현재 적용 중인 자격 증명을 알아내는 AWS CLI 명령어입니다. $ aws sts get-caller-identity { "UserId": "AROAYUN3EWXKCUQU5HSO2:eks-role", "Account": "111111111111", "Arn": "arn:aws:sts::111111111111:assumed-role/admin/instance-id" } Demo STS에서는 Assume Role이란 기능으로 임시 자격 증명을 받..

클라우드/AWS

AWS 리소스가 생성되면 Slack으로 메시지 보내기

slack은 수많은 써드파티 애플리케이션과의 연동을 지원하는 클라우드 기반 협업 툴로, 여러 기업에서 사용하고 있습니다. 많은 써드파티 애플리케이션들과의 연동과 업무공간의 분리 등의 장점을 가졌다는 평가를 받고 있는데요. 실제로 대기업/스타트업 가릴 것 없이 기술 블로그에서 심심치 않게 보이는 것이 바로 slack api를 활용한 기능 구현입니다. 마침 갑자기 AWS Lambda를 활용한 무언가를 해보고 싶었어서 cloudtrail + lambda를 이용한 리소스 알림 메시지를 구현해보겠습니다. P.S.상상한 걸 구현하는 건 언제나 즐거운 일인 것 같습니다. Flow 제가 구현한 방식은 이렇습니다. 😲💡 1. AWS Cloudtrail에서 추적한 값을 Cloudwatch Loggroup에 보낸다 2. l..

클라우드/AWS

AWS WAF로 SQL injection 공격 방어하기

웹 어플리케이션은 수많은 위협에 노출되어 있습니다. SQL injection은 공격자가 SQL 여러가지 방법으로 구문을 DB에 주입해 특정 동작을 이끌어내는 공격입니다. 이러한 L7단 공격을 막기위해 AWS에서는 AWS WAF라는 웹 어플리케이션 방화벽을 만들었습니다. 이번 글에서는 이AWS WAF(Web Application Firewall)로 SQL injection 공격을 방어해보도록 하겠습니다. Web Application 띄우기 S3에 정적 웹 파일 저장하기 먼저 Web Application을 띄워보겠습니다. WAF를 CloudFront에 설치할 것이기 때문에 간단한 HTML파일 하나를 S3 버킷에 넣어주겠습니다. index.html WAF Test page unlucky 기를 쓰고 사랑해야 하..

클라우드/AWS

AWS Client VPN을 구성해 접속 차단 우회하기

개요 client vpn을 활용하여 AWS 내의 클라우드 리소스에 접근하던 중, 문득 split-tunnel을 이용하지 않고도 인터넷에 접근하여 접속 차단된 사이트를 이용하고 싶었습니다. 실험적인 성향('진짜 이게 되..려나?')이 강한 글이니 한눈으로 보고 한눈으로 흘리시길 바래요. 한국에서 차단된 사이트라 하면 북한의 사이트나, 나쁜 사이트 등이 있는데 이러한 나쁜! 사이트에 접근할 순 없으니, 학교 와이파이 상에서 막혀있는 NordVPN의 사이트에 접근해보도록 하겠습니다. VPC 생성하기 VPC(virtual private cloud)를 생성하여 vpn을 통해 생성한 VPC에 접근하여 인터넷을 이용해 보겠습니다. 학교에서 막힌 사이트에 접근하는 것이 아니기 때문에 서울 리전에 VPC를 생성해주도록 ..

클라우드/AWS

AWS Batch로 배치 작업 처리하기

AWS Batch란? AWS Batch는 AWS에서 제공하는 배치 컴퓨팅을 위한 서비스입니다. Batch는 지정된 환경에 따라 EC2, Fargate 등 서비스들이 필요한 만큼 동적 프로비저닝 되어 배치 작업을 처리합니다. 배치 컴퓨팅을 위한 소프트웨어나 서버 클러스터를 설치할 필요가 없고, 무엇보다 추가적인 비용이 들어가지 않습니다. 들어가는 것은 동적으로 프로비저닝 되는 Fargate 등의 컴퓨팅 자원의 비용밖에 없습니다. 또한 AWS의 서비스인 만큼 AWS의 자원들과 통합되어 IAM Role을 통해 많은 서비스를 안전하게 이용할 수 있습니다. 🎉 배치 작업이란 처리해야 할 일을 일괄적으로 특정 조건이나 시간에 따라 처리하는 것을 말한다 컴퓨팅 환경 설정하기 동적 프로비저닝되어 배치 작업이 돌아갈 리..

클라우드/AWS

AWS Glue + S3 + Athena로 log 자동으로 수집하고 분석하기 ( 2 )

개요 이번 글에서는 Grok Classfication을 이용한 데이터 소스 분석과 Athena에 로그까지 찍어 볼 것입니다. classification은 글루 크롤러에서 스키마, 파티션 등을 나누는 등 중요한 역할을 합니다. Grok이란? Grok은 ELK 스택에서 제공하는 Losgstach 데이터를 정규식으로 바꾸어 줍니다. 이러한 GORK은 다음고 같은 형식으로 사용할 수 있습니다. ${정규 패턴명:사용자의 필드} 저희는 AWS의 s3 -> glue의 과정에서 이 데이터를 정규식으로 반환해주기 위하여 이 GROK을 Glue crawler를 통하여 이용할 것입니다. Glue Classifiers & 데이터베이스 생성하기 먼저 AWS 콘솔에서 Glue -> Databases로 이동하여 데이터베이스를 만들..

클라우드/AWS

AWS Fargate란?

AWS Fargate Fargate는 컨테이너를 지원하는 서버리스 컴퓨팅 엔진으로 서버를 관리하지 않고 사용한 만큼만 비용을 지불할 수 있습니다. 또한 같은 애플리케이션의 Fargate끼리는 localhost 안에서 서로 통신할 수 있습니다. Fargate는 ECS,EKS는 AWS에서 제공하는 컨테이너 오케스트레이션 서비스에서 이용할 수 있습니다. 그런 서비스들은 Fargate를 더 저렴하고, 효율적으로 다룰 수 있도록 도와줍니다. Fargate VS EC2 비슷한 역할을 하는 서비스이니만큼 위와 같이 비교를 하지 않을 수 없습니다. 다음은 Fargate와 EC2의 비교 사항입니다. 요금 : 같은 시간을 사용했을 때에 EC2가 비용적 측면에서 훨씬 저렴합니다. 편리성 : 너무 많은 리소스가 프로비저닝 됐..

클라우드/AWS

AWS Aurora DB의 고가용성

Aurora DB 먼저 간단히 오로라 데이터베이스에 대한 설명을 하고 넘어가겠습니다. 오로라 디비는 MySQL, PostgreSQL와 호환할 수 있는 데이터 베이스입니다. 아마존에서는 최대 MySQL의 5배, PostgreSQL의 3배까지 처리량을 제공한다고 합니다. Aurora의 핵심은 스토리지 서비스로 각 리전들에서 데이터가 자동으로 복제되는 클러스터 볼륨에 저장되어 복제가 편하고 여러 개의 DB를 연결하는 데이터베이스 클러스터링을 간편하게 할 수 있습니다. 오로라 DB의 고가용성과 내결함성 만약 RDS에서 오로라 DB를 생성한다면, 다중 가용 영역에 걸쳐 DB 클러스터가 생성됩니다. 이 클러스터에서 AZ마다의 인스턴스를 생성할 수 있고, 이러한 클러스터링은 어떤 AZ에서 문제가 발생해도 금세 해결할..

클라우드/AWS

AWS Glue + S3 + Athena로 log 자동으로 수집하고 분석하기 ( 1 )

본 글은 리눅스와 AWS에 대한 기본적인 지식이 있다는 전제하에 진행됩니다. 개요 이번 글에서는 Apache 웹 서버에서 나온 access_log를 자동으로 S3로 업로드하고 그렇게 업로드된 글루 + 아테나로 쿼리 해 보겠습니다. 다음과 같은 아키텍처로 진행됩니다. 이번 글에서는 S3에 로그파일 업로드까지 해보겠습니다. EC2로 Apache WebServer 생성하기 AWS 콘솔에서 EC2 -> Instances로 들어가 Launch instances를 클릭하고 아래와 같이 보안 그룹을 설정하고 인스턴스를 생성해 줍니다. 인스턴스가 정상적으로 생성됐다면, 실행 중인 인스턴스에 접속하고 아래 명령어를 통해 아파치를 설치하고 실행시켜 줍니다 sudo yum -y install httpd sudo system..

클라우드/AWS

AWS Glue Crawler가 동작하는 방식

AWS Glue Crawler 먼저 간단하게 AWS Glue란 완전 관리형 추출, 변환 및 로드 (ETL) 서비스입니다. 그렇다면 glue crawler는 무엇일까요? glue crawler란 지정한 데이터 스토어를 읽어 Data Catalog에 테이블을 생성합니다. 이렇게 생성된 Data Caralog에서 글루에서 지원하는 ETL작업을 할 수 있습니다. 데이터 스토어로 사용될 수 있는 리소스는 다음과 같습니다. 액세스 방식 : 네이티브 클라이언트 S3 DynamoDB Delta Lake JDBC Amazon Redshift RDS Amazon Aurora MariaDB Microsoft SQL Server MySQL Oracle PostgreSQL MongoDB Client MongoDB Amazon ..

클라우드/AWS

AWS Athena란

AWS Athena 아테나는 S3의 데이터는 SQL로 간편하게 분석하기 위해 만들어진 서비스입니다. 그리고 아테나는 만들어진 이후로 계속 발전되어 이제 커넥터를 통해 여러 데이터 소스로에 SQL을 통해 쿼리를 시작할 수 있습니다. S3에서 아테나를 사용하기 위해서는 아래와 같은 순서를 거치면 됩니다. S3의 데이터를 아테나에 정의한다 스키마를 정의한다 이러한 순서로 작동하는 아테나는 AWS Glue 데이터 카탈로그와 연결되어 테이블이나 스키마를 관리할 수 있습니다. 아테나의 장점 아테나는 서버리스 서비스로 사용한 쿼리만큼 비용이 나갑니다. 여기서 복잡한 ETL과정 없이 SQL만으로 이러한 데이터들을 활용할 수 있습니다. 페이스북에서 개발한 데이터 쿼리 시스템은 Presto를 기반으로 제작되어 csv 등 ..

클라우드/AWS

AWS Lambda를 위한 CodeDeploy 사용하기

CodeDeploy For Lambda Lambda 플랫폼에서의 CodeDeploy는 놀랍게도 트래픽을 전환하는 용도입니다. 설정한 버전에서 버전으로 트래픽을 전환하고, 검증하는 것입니다. CodeBuild에서 Lambda로 코드를 배포하고 새 버전을 생성하면, CodeDeploy에서 구 버전과 신 버전의 테스트와 트래픽을 전환을 담당합니다. Deploy 어디? Lambda Function 설정하기 먼저 다음과 같이 AWS 콘솔에서 Lambda -> Functions로 들어가 Create Function을 눌러줍니다. Runtime에 Node.js 16.x를 선택하고 함수를 만들어줍니다. 이름은 내키는 데로 하시면 됩니다. 그리고 생성한 함수로 들어가 하단 Aliases를 클릭해 alias를 만들어줍니다..

윤현우
'클라우드/AWS' 카테고리의 글 목록