Server

  • AWS

    AWS – Elastic Beanstalk이란?

    Elastic Beanstalk이란? 환경 구성과 함께 웹 애플리케이션의 코드를 업로드하여 신속하고 간편하게 서비스를 배포 및 관리할 수 있는 Amazon Web Services(AWS) 관리형 서비스 Docker 컨테이너 기반의 어플리케이션 배포 지원 Go, Java, .NET, Node.js, PHP, Python 및 Ruby에서 개발된 애플리케이션을 지원 AWS CloudFormation으로 구현되어 있으며 CloudFormation의 하위 개념 AWS CloudFormation – AWS에서 지원하는 컴퓨터 시스템과 소프트웨어의 자동화된 구성, 조율, 관리 도구 (오케스트레이션) Elastic Beanstalk 주요 기능 및 구성 EC2 인스턴스 인스턴스 메타데이터 서비스(IMDS) 기반으로 구성 및 관리 인스턴스 메타데이터는 애플리케이션이 실행 중인 인스턴스를 구성 또는 관리하는 데 사용할 수 있는 Amazon Elastic Compute Cloud(Amazon EC2) 인스턴스 관련 데이터 로드밸런서 환경의 인스턴스 간에 트래픽을 분산하는 역할 화면 좌측 [환경 이름 – 구성 – 로드밸런서]…

  • CI,  Docker Container

    CI – Circle CI 사용법

    CI/CD 란? CI는 지속적인 통합(Continuous Integration) 을 말하며 CI를 통해 개발자 각자가 개발한 구현 기능을 공유 브랜치에 통합하고 통합한 코드를 빌드 및 테스트하여 버그 발생 시 수정을 후 다시 통합을 진행함으로써 품질을 보다 더 안정적으로 관리할 수 있습니다.CD는 위의 CI를 통해 신뢰성을 갖춘 있는 소프트웨어를 github와 같은 형상관리 저장소에 자동으로 업로드하는 지속적 제공(Continuous Delivery) 과 사용자가 사용하는 프로덕션 환경까지 릴리즈하는 지속적 배포(Continuous Deployment) 를 말합니다. 또한 이러한 관리 과정은 수식어에 맞게 지속적이어야 합니다.프로젝트의 크기가 커질수록 각 과정의 수동 작업의 시간이 오래 걸리게 되므로 자동화되어야 하며 Circle CI는 이러한 CI/CD를 돕기 위한 플랫폼입니다. Circle CI 설정 파일 Circle CI 설정 파일의 경로 및 파일명 경로 – ./circleci 파일명 – config.yml Orbs…

  • Web

    Web – CSRF와 XSS

    정의 사이트 간 요청 위조(또는 크로스 사이트 요청 위조, 영어: Cross-site request forgery, CSRF, XSRF)는 웹사이트 취약점 공격의 하나로, 사용자가 자신의 의지와는 무관하게 공격자가 의도한 행위(수정, 삭제, 등록 등)를 특정 웹사이트에 요청하게 하는 공격을 말한다. 유명 경매 사이트인 옥션에서 발생한 개인정보 유출 사건에서 사용된 공격 방식 중 하나다. 사이트 간 스크립팅(XSS)을 이용한 공격이 사용자가 특정 웹사이트를 신용하는 점을 노린 것이라면, 사이트간 요청 위조는 특정 웹사이트가 사용자의 웹 브라우저를 신용하는 상태를 노린 것이다. 일단 사용자가 웹사이트에 로그인한 상태에서 사이트간 요청 위조 공격 코드가 삽입된 페이지를 열면, 공격 대상이 되는 웹사이트는 위조된 공격 명령이 믿을 수 있는 사용자로부터 발송된 것으로 판단하게 되어 공격에 노출된다. 보완책 Referer Check 도메인 단위의 검증 – 백엔드에서 request의 referer를 확인하여 도메인의 일치를 체크하는 방법참고 : https://privacyinternational.org/guide-step/4150/http-referer-explanation Security…

  • mongoDB

    MongoDB – 계정 관리

    mongod.conf mongod.conf 파일은 mongodb 설정 파일입니다 mongoDB는 기본적으로 authorization이 활성화되어 있지 않아서 누구나 쉽게 접속할 수 있습니다 접근 제어를 위해 별도의 authorization 활성화 설정을 해야합니다 mongod.conf 환경설정 더 알아보기 Dockerize시 계정 설정 Docker mongoDB 슈퍼 계정 관련 환경 변수 MONGO_INITDB_ROOT_USERNAME MONGO_INITDB_ROOT_PASSWORD Docker-Compose 작성 예시 예시로 mongo-express도 함께 추가하였으나 mongo-express는 사용 시에만 참고하세요 mongo-express – Node.js, Express 및 Bootstrap3으로 작성된 웹 기반 MongoDB 관리 인터페이스 Docker Image 배포 예시 1, 2번과 같이 Docker 배포 시 별도의 계정과 패스워드를 지정하지 않았으므로 authorization 비활성화를 위해 mongod.conf의 security.authorization 값이 disabled가 되도록 설정합니다 3번과 같이 Docker 배포 시 슈퍼 계정에 대한 환경 변수를 지정하였으므로 해당 계정으로 접속이 가능하도록 authorization 활성화를 위해 mongod.conf의 security.authorization 값이 enabled가…

  • mongoDB

    MongoDB – 기본 환경설정

    ※ mongoDB 4.2 version 해당 문서는 mongoDB 4.2 version을 기준으로 테스트 후 작성하였으니 참고 부탁바랍니다. mongodb 서비스 관리 mongod 환경설정 파일 위치 지정 mongod 환경설정 주요 옵션 옵션 기본값 설명 systemLog.verbosity 0 로그 메시지 에 디버그 상세 수준 (1-5) systemLog.logRotate rename 서버 로그 교체 시 동작 지정(rename or reopen) systemLog.destination 모든 로그 출력을 보내는 대상 (file or syslog) systemLog.logAppend false 재시작 시 기존 로그를 작성 방식(백업 후 새로 작성 or 기존 로그에 이어서 작성) systemLog. path 필수 로그 파일의 경로 net.port 필수 DB 접속 포트 net.ipv6 false ipv6 사용 허용 여부 net.bindIp 필수 접근 허용 IP net.bindIpAll false 모든 IP 접근 허용에 위해 ipv4의 경우 bindIp에 0.0.0.0 로 입력하면 되지만 ipv6의…

  • mongoDB

    MongoDB – 백업 및 복원

    백업하기 mongodump 명령어 사용 예시 mongodump 주요 옵션 옵션 설명 –uri 대상 mongoDB의 접근 uri -h, –host 대상 mongoDB의 접근 호스트 IP –ssl 활성화된 ssl mongod나 mongos 연결시 –sslCAFile 인증 기관의 루트 인증서 체인이 포함된 .pem 파일 –port 대상 mongoDB의 접속 포트 -u, –username 대상의 사용자 ID -p, –password 대상의 사용자 비밀번호 -d, –db 대상 데이터베이스 -c, –collection 대상 컬렉션 -q, –query 적용할 쿼리 –out 백업 데이터를 저장할 디렉터리 경로 –gzip 백업 데이터를 gzip 파일로 압축하여 저장 복원하기 mongoimport JSON, CSV 또는 TSV 파일의 데이터를 mongoDB 인스턴스로 변환 UTF-8로 인코딩된 데이터 파일만 지원 mongorestore mongodump로 생성된 binary database dump 파일을 mongoDB 인스턴스로 변환 참고 자료 mongodump mongoimport mongorestore

  • mongoDB

    MongoDB – 이해하기 (+기본 명령어 사용법)

    MongoDB 이해해보기 MongoDB란? 오픈 소스 라이브러리 NoSQL 데이터베이스 – Document 기본 파일 경로 /data/db 환경설정 파일 – mongod.conf 컬렉션(collection) mongoDB의 컬렉션은 DataBase의 하위에 속하는 개념으로 SQL의 테이블과 같은 존재입니다. 일반 컬렉션과 제한 컬렉션 일반 컬렉션 동적으로 생성 후 데이터의 추가에 맞춰 크기가 자동으로 늘어남 제한 컬렉션 미리 생성할 때 크기를 고정 생성된 데이터 공간을 큐 형태로 동작 크기를 초과할 경우 오래된 문서에 데이터를 덮어 씌우는 방식 고성능의 로깅 활용에 유용함 일반 컬렉션은 제한 컬렉션으로 바꿀 수 있음 제한 컬렉션은 일반 컬렉션으로 바꿀 수 없음 제한 컬렉션은 샤딩할 수 없음 MongoDB와 SQL MongoDB와 MySQL 성능 비교 MongoDB와 SQL 비교 SQL MongoDB 테이블 컬렉션 행 (row) BSON 문서 열 (column) 필드 색인 (index)…

  • AWS

    AWS – 탄력적 IP 관리

    AWS – 탄력적 IP 할당이란? 동적 클라우드 컴퓨팅(EC)에 할당된 퍼플릭 IPv4를 고정적으로 할당하는 것을 말합니다 인스턴스에 할당된 IPv4는 유동적이므로 인스턴스를 실행할 때마다 변경됩니다. 현재 IPv6는 지원하지 않음 탄력적 IP 관리 콘솔로 이동 AWS Management Console 접속 EC2 Service 이동 AWS Management Console -> 검색으로 이동 EC2 Sevice 콘솔에 접근하게 되면 좌측에 아래 이미지의 네비게이션을 볼 수 있습니다. 네비게이션에서 네트워크 및 보안 -> 탄력적 IP 이동 바로가기 탄력적 IP 할당 우측 상단의 아래 이미지 버튼 클릭 – 생성 진행 생성 후 탄력적 주소 목록에서 할당된 IP 선택 – 우측 상단 작업 버튼 – 탄력적 IP 주소 연결 클릭 생성된 IP를 적용할 인스턴스 혹은 네트워크 인터페이스 선택 적용 후 탄력적 주소 목록에서 해당…

  • mongoDB

    MongoDB – Sample Data 사용해보기 (+Docker)

    선행 docker install mongodb tool (robomongo) install Sample Data Download mongodb-sample-dataset 접속 Code import 방식 Download Clone mongodb Dockerize mongo image file pull docker images check docker run mongo image file %cd% – mongodb-sample-dataset 를 저장한 위치 의미 docker ps check docker exec sample data import robomongo 접속 정보 등록 import 확인 결과 참고 자료 mongodb-sample-dataset robomongo

  • DB

    DB – RDBMS VS NoSQL

    DataBase 데이터를 구조화하여 체계적으로 저장한 데이터의 집합체 DBMS 사용자와 데이터베이스 사이의 상호작용을 도와 정보를 삽입, 삭제, 갱신할 수 있고 사용자의 권한 부여를 하는 등 데이터베이스를 관리하는 역할의 소프트웨어 RDBMS 특징 관계형 DBMS라 불리며 SQL을 통해 접근하여 스키마를 통해 데이터 구조를 저장하고 테이블에 데이터를 저장하는 소프트웨어를 말합니다. SQL RDBMS의 데이터를 관리하기 위해 설계된 프로그래밍 언어 스키마 (Schema) 데이터베이스의 자료 구조로 표현 방법과 자료 간의 관계를 SQL 형식 언어로 정의한 구조 테이블 (Table) 데이터 저장 형태 NoSQL 특징 NoSQL (Not Only SQL)은 의미 그대로 SQL이 아닌 다른 저장 기술을 의미합니다. SQL를 통한 접근 방식을 취하는 RDBMS의 반대에 속하는 여러 방식들이라고 볼 수 있습니다. Key-Value 데이터 타입이 제목과 같이 Key-Value 구조로 단순한 형태로 보입니다.Key와…