craft
10 posts
뽀모도로 기법을 이용한 방 조명 셋팅하기

얼마전 이직한 회사에서 재택근무를 시행하고 있었고, 평소 해보지 않은 재택근무에 집중을 하기 어려웠던 나는 어떤 방법을 강구해야 했다. (왜인지 모르겠지만 뭐가 들었는지 뻔한 냉장고 문을 30분에 한번씩 열어보는 이상한 습관? 버릇?이 생겼다.) 그러다 얼마 전에 rainygirl님의 <규칙적 휴식을 강제하는 작업환경을 꾸며보자> 포스트를 읽게 되었다. 나는 휴식보다는 집중에 초점을 맞춰서, 집중을 강제하는 장치가 필요했으므로 위 포스트의 환경과 비슷한 환경을 내 방에도 똑같이 조성해보기로 했다. rainygirl님이 소개해주신 뽀모도로 기법이나 KMN 작업법의 요는 내가 집중할 수 있는 시간을 최대로 활용하여 집중하고, 나머지 시간에는 주위를 환기시킬 수 있도록 스트레칭을 하거나 차를 마시거나 짧게 다른 일을 하는 것이었다. 사람마다 집중하기에 적절한 시간이 각자 다를 것이라고 생각한다. 나는 40분의 일하는 시간, 20분의 환기 시간을 갖도록 셋팅했다. 시나리오 매 40분은 오…

January 01, 2022
craft
협력 업체 음원 수급 자동화를 위한 파이프라인 만들기 A (구상하기)

0. 아이디어 협력업체는 Teleport라는 프로그램을 이용하여 파일들을 전달해준다. Teleport는 jar로 되어있다. Lambda를 이용하여 jar를 돌리기 Batch/ECS를 이용하여 jar를 돌리기 Docker를 이용 1. Lambda를 이용하여 jar 돌리기 —> 불가 최초 아이디어는 Lambda를 이용한 것이었으나, AWS Lambda는 임시 저장소의 크기가 512MB 밖에 되지 않는다. 협력업체에서 받아올 때 하나의 단위인, order ID 대로 받아온다는 가정하에 최소 Order Size가 512MB보다 훨씬 크기 때문에 Lambda를 이용하는 것은 불가능 할 것이다. 하지만 Lambda를 이용하는 방법을 강구하자면… Order ID내 세부 단위로 들어가서 개별 파일들을 받아올 수도 있다. 어려움 그렇지만 이런 방법을 실제 서비스를 도입했을 때, (1) 아직은 예상하기 어렵지만, 개별 파일이 512MB를 넘길 가능성이 있음 (2) 개체수가 많아지면 관리하기 어려…

January 01, 2022
craft
협력 업체 음원 수급 자동화를 위한 파이프라인 만들기 B (구성하기)

파이프라인 구성 아키텍처 아키텍처 설명 :: Lambda UCS 에 공개된 데이터를 받아온다. 받아온 데이터는 Log에 저장 되며 이는 CloudWatch Logs Subscribe Filter를 거쳐 Order ID가 있을 경우 CHECK Order ID를 트리거 한다. :: Lambda Order ID를 기처리 여부를 판단한다. 처리 할 데이터는 DynamoDB Table에 기록되며(최대 1일간 보관됨), 기 처리된 데이터는 이미 기록되어있으므로 파이프라인이 이대로 종료된다. DynamoDB에 기록되는 데이터는 DynamoDB Stream에 의해 상태(Insert, Modify, Delete)가 감지된다. Insert 상태가 감지되면 ECS Task를 트리거 한다. :: Lambda 2에서 트리거 된 정보가 그대로 넘어와 ECS Task를 활성화 시킨다. :: ECS Task ECS Task는 Order ID에 따른 파일들을 받아와 EFS에 저장하는 작업을 수행한다. …

January 01, 2022
craft
SSM Watcher

0. 목적 AWS Session Manager를 통해 접근하는 인스턴스(접근 대상)와 접근 주체, 접근 시간, 접근 장소(Source IP)를 알려준다. 1. 2. 그외 SSM Watcher는 Serverless Framework를 이용하여 만들어졌으며 기본적으로 Serverless Framework가 설치되어 있는 환경에서 deploy 가능합니다. https://www.serverless.com/ :::tip 설치를 하고 싶다면 ::: SSM-Watcher 사용방법 serverless framework 설치 Serverless Getting Started Guide 본 프로그램을 돌릴 로컬환경에서 AWS Config/Credential 설정(세션 에서 Access key와 Secret Access key 설정 에서 region, profile 설정 GitHub - narashin/ssm-watcher: Tool to detect when your session is act…

January 01, 2022
craft
Shieldee

A. Cloudflare 의 Advanced DDoS 를 이용한 방어 전략 봇넷을 통해 공격이 들어오면 데이터베이스에 부하가 발생하고, 서비스 요청이 정상적으로 처리되지 않는다 서비스 운영자는 이를 확인하고 Cloudflare 에서 I’m Under Attack 모드를 활성화한다 하지만 언젠가부터 I’m Under Attack 을 통과하는 방식의 공격이 발생하였다 이를 방어하기 위해서 Rate Limiting 을 사용하여 방어하려고 하였으나, Rate Limit 집계 시점 이전에 이미 방대한 요청이 들어오기 때문에, 능동 방어에는 시간이 걸린다(1분 이상) B. AWS WAF Security Automations Template을 이용한 방어 전략 봇넷을 통해 공격이 들어오면 데이터베이스에 부하가 발생하고, 서비스 요청이 정상적으로 처리되지 않는다 CloudFront 또는 Application Load Balancer 에서 Access Logs 를 활성화하고, S3에 저장하도록 …

January 01, 2022
craft
RI Watcher

0. 목적 AWS RI 리소스들의 Retired 날짜를 잊고 지내다가, 제때 재구매를 하지 못해 Ondemand 비용을 지불하고 사용하는 경우를 방지하기 위해 만들어졌습니다. 1. 작동 EC2, RDS, ElastiCache, ElasticSearch, Redshift의 RI를 다룹니다. cron()이나 rate() 표기식으로 RI 만기일이 체크 주기를 정할 수 있습니다. Slack으로 알림을 줍니다. 2. SLACK_WEBHOOK_URL : 슬랙 웹훅 URL 을 기입합니다. SCHEDULE : cron(), rate() 표현식으로 봇이 얼마 주기로 RI 만기일을 체크할지 정합니다. PROFILE : 본 코드를 Deploy할 AWS Profile을 정합니다. 또한 해당 Profile의 RI 리소스를 검사합니다. REGION : 타겟 리전을 정합니다. (서울은 ) 그 외 RI Watcher는 Serverless Framework를 이용하여 만들어졌으며 기본적으로 Serverless…

January 01, 2022
craft
s3 bucket에서 s3 bucket으로 약 1000만개 파일 옮기기

협력 업체에서 본인들의 데이터를 다운받을 수 있게 getObject 권한을 일시적으로 주었다. 그것은 단 한달. 우리가 받아야 하는 데이터는 평균 6.26MB 크기로, 대략 1000만개 이상의 mp3 파일들이다. 가장 쉬운 방법 SRR giphy.gif SRR은 동일 리전 복제(Same Region Replication)의 줄임말로 AWS에서 정식으로 지원하고 있는 기능이다. 새로 업로드된 S3 객체를 동일한 AWS 리전에서 대상 버킷으로 비동기식 자동 복제를 지원한다. 이 때까지만 해도 데이터가 실시간으로 올라오고 우리는 실시간 sync에 가깝게 bucket을 복사한다고 착각했기 때문에 가장 먼저 떠오른 방법이다. 하지만 신작을 copy하는 것이 아닌 구작을 뒤늦게 받아오는 작업이었고 다른 방법이 필요했다. 😵 새로 올라오는 데이터가 아닌데? (물론 교차 계정 SRR에도 권한 조정 문제가 필요하지만) SRR을 쓰지 않고 버킷에서 버킷으로 copy를 하려고 한다면, 소스 버킷의 B…

January 01, 2022
craft
Panopticon

0. 시나리오 AWS 보안그룹이 수정, 생성, 삭제 됐을 때 알림을 받고 싶다. CloudTrail 을 이용하여 Write 된 내역을 추적한다. CloudWatch Event 를 통해 1 중, 특정 이벤트(EC2 Security Group 편집)가 발생했을 때 Lambda를 호출하게 한다. Lambda에 Slack 메시지를 보낼 수 있게 코드를 작성한다. 이 모든 과정에 필요한 IAM Role, CloudWatch Event, Lambda 등을 따로 작성하지 않고 Serverless Framwork 를 이용하여 Wrapping 된 파일을 이용한다. 1. CloudTrail 설정하기 CloudTrail → 추적 생성 (0) 추적 속성 선택 추적 이름 지정 스토리지 위치 지정 - 새 S3 버킷에 생성해도 되고, 기존 버킷을 이용해도 OK KMS를 사용한다면 KMS 키 설정 Log를 남기겠습니다. IAM 역할을 지정 새로 만들어야 한다면 를 클릭하여 나오는 JSON을 참고하여 …

January 01, 2022
craft
Efish

January 01, 2022
craft
AWS Price Checker

AWS Pricechecker - Serverless Architecture 코드는 회사 빌링 정보가 포함되어 있어 공개가 불가하다. 아쉽지만 아키텍처만 설명합니다. 0. 시나리오 AWS Pricelist API가 업데이트 되면 이를 자동으로 감지하여, 원하는 방식으로 데이터를 처리한 뒤 Google Spreadsheet 에 넣고 싶다. 이 작업이 완료 되면 Slack으로 업데이트를 알리는 메시지를 보내고 싶다. (1) Pricelist API 업데이트를 SNS로 받는다. (2) SNS는 Fargate task를 돌릴 수 있는 Lambda를 트리거 한다. (3) Lambda는 Fargate task를 돌리고, Container의 작업이 완료 되면 Fargate는 Stopped 된다. (3-1) Google Spreadsheet 에 데이터가 들어간다. (3-2) Container 작업 완료로 Stopped된 상황을 Cloudwatch Event로 캐치한다. (4) (3-2)를 통해…

January 01, 2022
craft