https://github.com/colinbjohnson/aws-missing-tools/tree/master/ec2-automate-backup 위 스크립트를 이용하여 다음과 같은 명령어를 cron이나 jenkins job으로 등록하여 매일 한번씩 호출되게 해준다. ec2-automate-backup.sh -n -p -r ${region} -v ${ebs_volume_id} -k ${delete_after_days} -n 스냅샷 백업시에 태그에 있는 내용들을… [본문 읽기]
Elastic Beanstalk 및 EC2 인스턴스 Graceful shutdown 설정
AWS에서 Elastic Beanstalk나 EC2에서 직접 오토스케일링 설정해서 사용하다보면 트래픽이 늘었을 때 인스턴스의 갯수가 늘어났다가(scale out) 트래픽이 줄어들면 불필요해진 자동으로 인스턴스를 shutdown하게 된다(scale in). 이때 shutdown 될 인스턴스에 연결되어서 진행중인 요청(in-flight… [본문 읽기]
SSH shell에서 실행중인 작업을 연결 종료 후에도 유지하기
원격 서버에 ssh로 접속한 후 실행시간이 긴 명령어를 수행중에 ssh 연결을 끊거나 네트워크 오류로 인해 연결이 끊어지게되면 실행중이던 명령어도 같이 종료되어버린다. ssh를 통해 실행된 shell에서 실행한 프로세스는 shell의 child 프로세스로… [본문 읽기]
모바일 디바이스간 P2P 연결 및 데이터 전송 방법
iOS/Android 모바일 디바이스들 사이에서 P2P 형태로 데이터 전송을 하는 방법에 대해 리서치 할 일이 있어서 알아본 내용을 간단히 공유합니다. 네트웍 타입별 Android/iOS P2P 연결 가능성 체크 Bluetooth 애플 MFi인증 디바이스만… [본문 읽기]
Playground에서 Cocoapod 라이브러리 사용하기
엑스코드 플레이그라운드(Xcode Playground)에서 간단하게 코드를 테스트 해보고 싶은데 해당 코드가 특정 cocoapod 라이브러리에 의존성이 있는 경우 cocoapods-playgrounds 명령어 도구를 사용하면 편리하다. 설치 및 사용 방법 설치 sudo gem install cocoapods-playgrounds… [본문 읽기]
PAKE와 SRP Protocol을 이용한 인증
PAKE (password authenticated key exchange) PAKE는 두명 이상의 참여자가 패스워드 기반으로 암호화된 채널을 만들어서 서로 통신할 수 있게 해주는 암호학 적인 방법을 말한다. Balanced PAKE 참여자들이 서로 암호화된 채널을 만드는… [본문 읽기]
API 서버 인증을 위한 JWT와 JWK 이해하기
쿠키(cookie)를 이용한 세션기반의 인증의 경우 특정 웹서버에서 세션 상태(session state)를 유지해야 하기 때문에 stateless 하지않다. 서버 로직이 Stateless가 아닌 경우 더 많은 요청을 처리하기 위해 동일한 서버의 숫자를 늘리는 스케일… [본문 읽기]
인증서 파일 형식 및 확장자의 차이점 비교 설명 (Certificate file format & extensions)
https를 지원하는 웹서버를 설정하거나 서명이나 암호화 관련된 개발을 하게되면 한번씩 인증서 관련된 파일을 다룰 일이 생기게 된다. 이때 항상 프로그램이나 라이브러리들이 지원하는 형식이 달라서 인증서 형식을 변환해아 하는데 현재 갖고있는… [본문 읽기]
정규식 Negative Lookahead 예제
정규식을 사용해서 특정 조건을 만족하는 문자열을 찾되, 그중에서 제외를 하고싶은 경우(negative) 어떻게 하면 되는지 예제를 통해서 알아보자. String.valueOf() MyCustomClass.valueOf() Long.valueOf() Boolean.valueOf() String.valueOf() String.valueOf() String.valueOf() 위와 같은 문자열이 주어졌을때 .valueOf() 함수를… [본문 읽기]
카프카(Kafka) Consumer offset reset 방법
카프카 Consumer를 사용하다 보면 offset을 reset해야하는 경우가 종종 있다. 개발 테스트를 진행하다가 필요에의해 offset을 리셋 실제 production에서 사용중에 예상치 못한 에러 등으로 데이터 누락이 발생하여 일정기간 전으로 다시 offset을 rewind해서… [본문 읽기]