All
16 posts
어떻게든 모기와 함께 잠드는 사람의 사념

예전에는 분명 찌는 듯한 한여름에 모기가 많았던 기억인데, 요즘 여름엔 모기도 더운지 좀 쉬고 있다가 날이 선선해지면서 더 눈에 띄는 기분이다. 분명 피를 빨아먹고 그 뒤에 생긴 상처에 간지러움이 남는게 모기가 거슬리는 이유 중 하나일테지만, 잠을 자려고 불을 끄고 침대에 누웠을 때 청각으로 느껴지는 알 수 없는 위협감이 그 중 으뜸같다. 그렇게 시끄러운 것도 아니고 그렇다고 당장 물려서 아픈 것도 간지러운 것도 아니지만, 내가 관심을 주고 싶지 않을 때 내 주변을 서성이는 어떤 것의 존재는 거슬림의 감각을 쉽게 뛰어넘어 그 이상을 향한다. ​ 나는 거슬리는 존재에 관심을 잘 주지 않는 타입이다. 요즘 식으로 표현하면, 어그로에 잘 안 끌리는 편이라고 해야할까? 결코 내 자신이 해야할 일을 묵묵하게 하고 그 일에 집중력을 다 쏟는, 그런 진중하고 정신력이 강한 스타일이라고 말하는 것은 아니다. 단순히 후속 행동을 안 하는 쪽에 가깝다. 그냥 어떤 상황이 벌어지든 “그렇군.”하고, …

October 09, 2022
wenk
영원이라는 관념 속으로 사라져버리기

얼마전 소셜미디어 계정을 잠시 비활성화 했다. 비활성화를 생각하던 당시의 나는 사이버 자살에 가까운 기분이었지만 (그저 잠시 잠수를 탔을 뿐의, 자살 아닌 엄살이었기 때문에 쉽게 접할 수 있었던) 주변인들의 반응을 더해 생각해보자면 사실 실종같은 느낌에 더 가까웠다. 실종이라고 말하기도 민망한게 다들 나의 별거 아닌 일에 걱정을 할까봐 죄송스러움에 금방 다시 부활했다. (끝까지 부활이라는 표현을 쓰는 뻔뻔함이 나의 과한 엄살을 방증한다.) 이유도 하찮다. 인터넷 세상 속은 모두가 열심히 사는 세상이었고 나는 그렇게 살 자신도, 아니 바라볼 용기도 없어서 그냥 그곳을 떠나기로 한 것 뿐이었다. 아마도 ‘진짜’ 내 삶에도 죽음과 부활이 동시에 존재하고, 내 스스로 그것들을 선택할 수 있다면 나는 그것을 아주 어리석은 방법으로 반복할 사람이다. 도피성으로 죽음을 택하고 남겨진 사람들을 뒤늦게 생각하며 다시 살아나려고 아등바등 흙더미 속에서 몸을 들썩거릴 산송장이다. 사람마다 사는 것이 …

September 18, 2022
wenk
보고싶다와 담백하다는 말의 전달과 오해

사실 나는 “오늘 아주 담백한 음식을 먹었다”는 글을 보면 무슨 맛의 음식을 먹었는지 잘 이해하지 못한다. 맵고 짜고 달고 시고 고소한 음식은 언어로 표현되어도 내가 인식할 수 있을 정도로 학습되었는데 담백하다는 말은 슴슴한 음식에도 쓰이고 산뜻한 음식에도 쓰여서(지금 당장은 두가지정도의 맛으로 밖에 생각이 안 나는데 여럿 사람들이 쓰는 걸 보면 내가 나열한 것 외의 맛도 담백하다는 표현 한가지로 하는 것 같다.) 내 안에서 어떤 특정한 한가지 맛이라고 정의를 내리지 못했다. 그럼 사람마다 말하는 담백하다는 표현이 다른 맛의 표현일 수 있다는 것인데, 그 제대로 정의되지 않은 표현이 어떻게 널리 퍼지게 되었는지 궁금하다. ​ 맛은 그럭저럭 대체할 수 있는 표현이 있는 것 같아 ‘담백하다’는 표현을 먼저 예로 들어보았다. 감정으로 생각하면 더 어렵다. 아주 예전에, 누군가를 보고싶다는 말을 완벽하게는 이해하지 못한다는 짧은 글을 썼다가 “당신도 참 불쌍한 사람이네요.”라는 댓글을 받…

September 11, 2022
wenk
아이디 생성하기 그리고 당신의 아이디를 멘션하기

새로 어떤 게임을 시작하려고 할 때 내가 가장 시간을 오래 투자하는 부분은 아이디를 생성하기 버튼을 누르기 직전 마지막으로 고심하는 지점이다. 한번 정하면 (거의) 영원히 바꿀 수 없는 이름은 너무 중요하다. 물론 어떤 게임에선 13000원만 내면 바꿀 수 있는 기회를 살 수 있지만, 내가 원하는 유니크한 아이디는 이미 누군가에게 선점당했을 것이므로 13000원의 가치가 충분한 지는 잘 모를 일이다. 공짜로 이름을 바꿀 수 있기도 하다. 비윤리적인 아이디를 생성하면 GM이 마음대로 아이디를 바꾸는 벌을 내려 ‘불건전한소환사명123’같은 아무개의 이름이 되니 이런 경우도 생각해 볼 수 있다. ​ 고심해서 아이디를 지었다고 해서, 모두가 나를 내 아이디로써 불러주는 것은 아니다. 대체로 나는 게임 속 직업이나 챔피언명으로 불린다. “라인하르트”, “잔나”, “사제”, “탱커” 등이 그렇고, 내가 사람들에게 익숙치 않은 영어 단어를 이용하여 아이디를 지었다면 나라는 사람에 대한 조금 더…

August 27, 2022
wenk
취향과 그 향유를 위한 에너지

최근에 시간이 많아져서 책도 읽고 글도 쓰고 공부도 하고 영화도 열심히 보고 있다. 심지어 그간 듣지 않았던 (일부러 피해왔던) 음악들도 열심히 듣고 있다. 무슨 일을 하려면 에너지가 필요한데 아무래도 그 에너지를 짜도 짜도 물 한방울 나오지 않는 걸레짝처럼 짜내썼다가, 좀 쉬니 물기가 다시 생긴게 아닐까 생각한다. ​ 나만이 관리할 수 있는 체력적인 에너지, 정신적인 에너지도 물론 중요하지만 개인적으로 내가 가장 흥미로운 포인트는, 내 즐거움을 같이 향유할 사람이 누구냐에 따라 에너지가 고갈될수도, 더 채워질수도 있다는 점이다. 그동안은 영화를 보면 영화를 봐도 영화 내용을 말할 수 있는 친구가 없었다. 물론 단순히 영화를 같이보는 영화 메이트가 없진 않았다. 그 친구는 정답을 좋아하는 친구였고, 나무위키(…)나 영화 유튜버들의 리뷰를 보고 나서야 그들의 ‘정답’을 내게 알려주며 영화 얘기를 하고 싶어했다. 나는 그 과정이 너무 피로했다. 물론 그 친구는 각자의 의견을 나누는 것…

August 21, 2022
wenk
행복했던 회사생활을 마치며

할 게 많으니까 역시 블로그를 쓰고 싶어진다. ‘그럼 블로그를 쓰지 않았던 근 1년간은 할 일이 없는 사람이었나?’ 이런 생각도 들지만 최근까지 의외로 굉장히 성실하고 행복하게 회사생활을 했다. 회사를 좋아했거든. 좋아하는 회사를 다닌 경험은 처음이라, 놀토에도 학교 나가고 싶어했던 것처럼 쉬는 날에도 회사에 나가고 싶을 때가 있었다. 어떤 이유로 프로젝트가 엎어지고, 어떤 이유로 퇴직을 하게 되면서 좋았던 사람들과 다 헤어지게 되었다. 물론 그들도 날 그렇게까지 좋아하는진 모르겠지만 나는 구성원들이 다 귀엽다고 생각하고 있었다. ​ 무엇보다 그들은 예의가 발랐다. 이전회사에서 종종 존중이 없는 발언을 들으면 찡그려지던 미간이 단 한번도 구겨진적이 없었다. 다들 서로를 최대한 존중하는 말투와 태도로 대했다. 이상한 얘기(저새끼 왜저래)를 꺼내면 묘하게 싸한 분위기가 되거나, 그거 이상한 말이라고 지적을 해주는 사람이 있었다. 그런 분위기가 내가 굉장히 안전한 공간에 있다고 안심할 …

August 07, 2022
wenk
뽀모도로 기법을 이용한 방 조명 셋팅하기

얼마전 이직한 회사에서 재택근무를 시행하고 있었고, 평소 해보지 않은 재택근무에 집중을 하기 어려웠던 나는 어떤 방법을 강구해야 했다. (왜인지 모르겠지만 뭐가 들었는지 뻔한 냉장고 문을 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