Programming/Server

Programming/Server

[Docker] Docker Container Deploy for Private Network

현재 회사에서는 모든 프로그램을 모두 도커 컨테이너로 배포하고 관리를 하고 있다. B2B 쪽으로 솔루션 수요가 많아서 직접 서버를 설치를 하러 다녔었는데, 대부분 외부 인터넷이 막혀있는 폐쇄망 환경이였다. 폐쇄망이기 때문에, 도커 이미지를 어디서 받아오거나 다운로드할 수 없었기에 파일로 다운로드해서 가져가고 이를 설치 서버에 옮기고 이미지를 설치한 다음에 컨테이너를 돌릴 수밖에 없다. Docker에서는 다음과 같은 명령어로 Docker 이미지를 파일로 내려받고, 도커 이미지 파일을 설치할 수 있다. 1. 현재 저장된 도커 이미지를 tar 파일로 다운로드하는 명령어 (tar 파일만 가능) docker save ${도커 이미지 이름} -o ${파일명}.tar 2. 도커 이미지 파일을 도커 이미지로 설치하는 ..

Programming/Server

[Shell Script] ECR 도커 컨테이너 이미지 명 및 태그 정보 추출

AWS ECR에 도커 이미지를 등록하면 {ID}. dkr.ecr.us-east-2.amazonaws.com/{리파지토리명} 형태로 도커 이미지가 등록된다. {ID}. dkr.ecr.us-east-2.amazonaws.com/{리파지토리명}:{tag} 형태로 ECR에서는 도커 이미지를 관리하는데, EC2에서 이미지를 받아서 컨테이너를 돌렸을 때, 도커 컨테이너 리스트를 확인하면 다음 사진과 같이 뜨게 된다. docker ps 돌아가는 컨테이너가 한 두개면 몰라도 20~30개가 넘어가는 경우 어떤 컨테이너가 어떤 이미지의 어느 태그 기반으로 돌아가고 있는지 확인하기가 어렵다. 그래서 다음과 같이 간단하게 쉘 스크립트를 짰다. #!/bin/bash docker ps | awk '{split($2,image,"..

Programming/Server

[ELK] AWS Elastic Load Balancer Log 분석하고 대시보드 만들기[2]

2019/11/06 - [Server/Devops] - [ELK] AWS Elastic Load Balancer Log 분석하고 대시보드 만들기 [1] [ELK] AWS Elastic Load Balancer Log 분석하고 대시보드 만들기[1] AWS에서 서비스를 운영하고 있는 사람이라면, 또는 AWS Route53에 도메인을 등록하고 Https로 서비스를 하고 있는 사이트를 연동했다면 AWS Elastic Load Balancer를 사용하고 있을 것이고, 보통 다음과 같은 구조.. johnmarc.tistory.com 이전 포스팅에서는 AWS의 ELB(Elastic Load Balancer)에 대해 간략하게 알아보고, ELB의 로그 기능을 활성화하여 AWS S3 서비스에 파일로 저장하는 과정까지 설명..

Programming/Server

[ELK] AWS Elastic Load Balancer Log 분석하고 대시보드 만들기[1]

AWS에서 서비스를 운영하고 있는 사람이라면, 또는 AWS Route53에 도메인을 등록하고 Https로 서비스를 하고 있는 사이트를 연동했다면 AWS Elastic Load Balancer를 사용하고 있을 것이고, 보통 다음과 같은 구조로 아키텍처를 구상했을 것이다. 위 구조를 보면 사용자는 Route53에 등록된 도메인으로 서비스에 접근하고(예: https://웨부베벱.com ) Route53에서는 해당 도메인과 연결된 Load Balancer로 요청을 보낸다. Load Balancer에서는 다음과 같이 등록된 리스너 리스트를 보고 요청에 맞는 리스너로 요청을 보내게 된다(참고: 리스너 등록 시 EC2 인스턴스의 Elastic IP를 같이 등록하기 때문에 요청을 전달할 인스턴스를 구분할 수 있다). ..

Programming/Server

[Network HTTP, HTTPS] CORS 정책에 따른 쿠키 보안

최근 몇 주 동안 해당 해결 못했던 이슈를 해결하게 되어 잊지 않고자 글을 작성해본다. 브라우저에서는 현재 접속한 도메인 외에 다른 도메인으로 XMLHttpRequest 요청을 보내는 것을 기본적으로 막고 있다. 가장 주요한 이유로는 현재 사이트에 접속한 사용자의 의도와는 다르게 또는 사용자 몰래, 사용자가 인지하지 못한 다른 서버로 사용자의 데이터를 보낼 수 있기 때문이다. 서버와 달리 웹 클라이언트는 브라우 저상에서 코드가 노출되기 때문에 얼마든지 변조가 가능하다(Uglyfy 라이브러리를 통해 난독화할 경우는 제외하고!). CORS에 대한 자세한 내용은 다음을 참고하자. https://developer.mozilla.org/ko/docs/Web/HTTP/Access_control_CORS HTTP 접..

Programming/Server

[DevOps] 로그 수집 및 모니터링 시스템 - Sentry (2탄)

저번 포스트에서는 간략하게 Sentry에 대하여 설명을 했는데, 이번에는 직접 NodeJS 프로젝트와 Sentry를 직접 연동해보겠다! 먼저 간단한 Typescript기반의 Nest 프레임워크를 이용한 NodeJS 프로젝트를 만들어보자! # NestJS CLI 를 전역으로 설치 npm i -g @nestjs/cli # NestJS 기반 프로젝트 생성 nest new sentry_example 이후 Sentry와 연동을 도와주는 Raven 모듈을 설치해야 하는데, 요즘 NestJS 프레임워크를 썼기에 좀 더 편하게 적용하기 위해서 NestJS용 Raven 모듈을 다운로드했다. # Raven Library https://www.npmjs.com/package/raven raven A standalone (N..

JohnMark
'Programming/Server' 카테고리의 글 목록 (2 Page)