본문 바로가기
728x90

전체 글230

[Docker] Docker 컨테이너 로그 관리 AWS EC2 인스턴스에 API 를 docker 로 띄웠었는데, docker 컨테이너 로그가 쌓이며 디스크 용량 부족으로 인하여 API 가 죽었고 서비스가 약 30분 정도 정지되었다. 또 이런 일이 발생하지 않도록 하기 위해 리눅스의 logrotate 를 이용하여 docker 컨테이너 로그를 관리하려고 한다. $ sudo vi /etc/logrotate.d/docker-container /var/lib/docker/containers/*/*.log { rotate 7 daily compress size=1M missingok delaycompress copytruncate } - rotate 7: 백업하는 개수. 최대 7개의 파일을 보관 (log.1, log.2, ..., log.7) - daily: 로.. 2021. 6. 16.
[DDB] DynamoDB Streams + Lambda DynamoDB Streams 을 활성화하면 DynamoDB 테이블의 시간 순서에 따라 항목 변경 사항이 있으면 이 정보를 수집하여 최대 24시간 동안 로그에 저장한다. 로그와 데이터 항목은 변경 전후 거의 실시간으로 나타나므로 데이터 변화를 다루는데 좋다. 바이너리 로그와 똑같은거 같다. (참조: [Node.js] bin log(바이너리 로그) 도입기 BUT FAIL) 순서는 아래와 같이 진행하면 된다. 1. AWS Lambda 함수 생성하기 2. IAM 정책 만들기 3. DynamoDB Streams 활성화하기 4. AWS Lambda 함수 코드 작성해서 배포하기 DynamoDB Streams + Lambda 1. AWS Lambda 함수 생성 > [구성] 탭 > [권한] 탭 > [편집] 버튼 클릭 .. 2021. 6. 8.
[Docker] Timezone 설정하기 Dockerfile 을 이용해서 이미지 빌드를 하게 되면 기본적으로 Timezone 이 UTC 로 되어 있다. 백엔드 단에서 개발하거나 로그를 관리할 때는 UTC 여도 상관 없었지만, 클라이언트 측에 시간을 전송해야 하는 상황이 발생했다. Timezone 을 KST 로 변경하는 방법은 아래와 같다. ▷ Dockerfile ARG DEBIAN_FRONTEND=noninteractive ENV TZ=Asia/Seoul RUN apt-get install -y tzdata * DEBIAN_FRONTEND=noninteractive: tzdata 설치 시 사용자가 직접 timezone 설정을 할 수 있도록 입력할 수 있는 부분이 나오는데, 도커 이미지를 생성할 때는 입력을 할 수 없으므로 사용자의 입력 없이 넘.. 2021. 6. 2.
[S3] AWS S3 버킷 만들기 Amazon Simple Storage Service(Amazon S3)는 인터넷 스토리지 서비스로, 이 서비스를 이용하면 데이터 레이크, 웹사이트, 모바일 애플리케이션, 백업 및 복원, 아카이브, 엔터프라이즈 애플리케이션, IoT 디바이스, 빅데이터 분석과 같은 다양한 사용 사례에서 원하는 만큼의 데이터를 저장하고 보호할 수 있다. AWS S3 버킷 만들기 1. AWS Console 로그인 후 S3 에 들어간다. 2. [버킷 만들기] 버튼을 클릭한다. 3. 세팅 후 [버킷 만들기] 버튼을 클릭하면 버킷이 생성된다. 2021. 6. 2.
[Node.js] AWS SDK - S3 aws-sdk 를 이용하여 AWS S3 를 다뤄보자. (S3 참고글은 [S3] AWS S3 버킷 만들기) AWS SDK - S3 aws-sdk 설치하기 $ npm install aws-sdk ▷ lib/s3.js 1. AWS config 세팅하기 const AWS = require('aws-sdk') const AWS_region = process.env.AWS_REGION || 'ap-northeast-2' const s3 = new AWS.S3({ region: AWS_region, }) [putObject] module.exports.putObject = (bucketName, bucketKey) => async (fileName, data) => { const params = { Bucket: b.. 2021. 5. 31.
[Node.js] 원하는 길이만큼 유니크 아이디 만들기 유니크 아이디를 사용해야 할 때, 대부분의 개발자들은 UUID 를 사용할 것이다. Node.js 에도 이미 uuid 모듈이 있는데, 불행하게도 우리는 8글자만 필요했다. UUID(Universally Unique IDentifier, 범용 고유 식별자) 란, 네트워크 상에서 고유성이 보장되는 id를 만들기 위한 표준 규약을 말한다. UUID 는 32개의 십육진수로 표현되며 총 글자수는 36개(32개의 문자와 4개의 하이픈) 이다. UUID 8글자 자르기 vs 유니크 아이디 만들기 ※ UUID 8글자 자르기 UUID 버전에는 5개가 있는데, 디바이츠 MAC 주소를 이용한 버전 1과 순수 랜덤 난수로 만들어지는 버전 4가 많이 사용된다고 한다. 버전 1 (datetime and MAC 주소) 버전 2 (da.. 2021. 5. 27.
728x90
반응형