Docker command


Docker default command

Docker container run 명령

docker container run <Docker Image name> <command>


ex) docker container run ubuntu:latest /bin/echo 'Hell oWorld'


Docker Version

docker version


Docker System Info

docker system info


Docker disk

docker system df


Docker nginx install

docker pull gninx


Docker image list

docker image ls


Docker run nignx

docker container run --name webserver -d -p 80:80 nginx


Docker process

docker container ps

docker container stats webserver


Docker nginx command

docker stop webserver

docker start webserver




Docker Image

Docker Hub

https://hub.docker.com

공식 Docker 이미지는 목록 상자에서 'Official'을 선택하면 표시됨


Docker Store

https://store.docker.com/


Docker image

image name  [:tag name]

ex: debian:7


Docker image download

docker image pull [option] image-name[:tag name]

ex) docker image pull centos:7

ex) docker image pull -a centos

ex) docker image pull gcr.io.tensoflow/tensoflow


Docker image list

docker image ls [option] [repository-name]

option) -all, -a, --gigests, --no-trunc, --quiet, -q


DCT 기능

Docker 이미지의 정당성을 확인하는 기능, 위장이나 변조를 막기 위함

https://docs.docker.com/engine/security/trust/content_trust/#image-tags-and-content-trust


Docker image inspect

이미지 상세 정보 확인

docker image inspect centos:7









'Infra' 카테고리의 다른 글

Docker command  (0) 2018.12.17

Leave a Comment

로컬에서 카프카 사용시 자주 쓰는 콘솔 명령어 모음


서버 시작

./bin/zookeeper-server-start.sh -daemon config/zookeeper.properties ./bin/kafka-server-start.sh -daemon config/server.properties



토픽 조회

./bin/kafka-topics.sh --list --zookeeper localhost:2181



Producer

./bin/kafka-console-producer.sh --broker-list localhost:9092 --topic topicname



Consumer

./bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic topicname --from-beginning



Topic 생성

./bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic topicname



kafka-console-consumer.sh 상세

https://gerardnico.com/dit/kafka/kafka-console-consumer



kafka-consumer-offset-reste 상세

https://www.letmecompile.com/kafka-consumer-offset-reset/



카프카 오프셋 리셋하고 다시 받기

kafka-consumer-groups.sh --bootstrap-server kafka-domain:port --group kafkalocaltestatin --topic topicname --reset-offsets --to-datetime 2018-12-12T00:00:00.000 --execute kafka-console-consumer.sh --bootstrap-server kafka-domain:port --topic topicname --consumer-property group.id=kafkalocaltestatin


'Infra > NoSQL&Cache' 카테고리의 다른 글

[KAFKA] 콘솔 명령어 모음  (0) 2018.10.15
Redis 설치 및 커맨드 정리  (0) 2018.08.12
MongoDB 명령어  (0) 2014.03.09
JBoss - Infini Span  (0) 2013.11.20
분산 캐시 Memcached  (0) 2013.11.19

Leave a Comment

AWS 보안

시스템 보안 : IAM, 보안 그룹, VPC

  • 책임공유환경 (shared-responsibility)

    • AWS와 사용자가 책임을 공유한다는 의미

AWS가 지는 책임

  • 자동화된 모니터링 시스템과 DDOS 공격을 방지하는 강력한 인터넷 접근 감시를 통한 네트워크 보호

  • 민감한 영역에 접근했던 직원에 대한 뒷조사 수행

  • 수명이 다한 스토리지 디바이스를 물리적으로 파기함으로써 장치 해제

  • 데이터센터의 물리적, 환경적 보안 보장 (화재 예방, 직원 보안 등)

보안 표준

사용자의 책임

  • 공격자가 데이터를 읽거나 조작하는 것을 방지하기 위해 네트워크 트래픽 암호화하기 (예 : HTTPS)

  • 트래픽을 보안 그룹과 ACL로 제어하는 VPN의 방화벽 구성하기

  • 가상 서버의 OS와 추가 스프트웨어에 대한 패치 관리

  • IAM을 활용하여 S3나 EC2 같은 AWS 자원으로의 접근을 최소화한으로 제한하는 접근 관리 구현

소프트웨어 업데이트

보안 업데이트 확인

  • SSH로 아마존 리눅스 EC2 인스턴스 로그인

  • 오늘의 메시지 표시 확인 (예 : 3 package(s) needed for security, out of 28 available)

서버 시작시 보안 업데이트 설치

  • 서버 시작시 모든 업데이트 설치

    • 사용자 데이터 스크립트 추가 yum -y update

  • 서버 시작시 보안 업데이트만 설치

    • 사용자 데이터 스크립트 추가 yum -y --security update

  • 명시적으로 패키지 버전 정의

    • 버전 넘버로 구별하여 업데이트만 설치

실행 중인 서버에 보안 업데이트 설치

  • 서버 수가 적다면 일일히 로그인하여 실행 할 수 있겠지만 서버 수가 많다면 불가함

  • 서버의 목록을 얻고 그들 모두를 대상으로 보안 업데이트를 하도록 하는 스크립트 작성 필요

AWS 트래픽 보안

기본 규칙

  • 모든 인바운드 트래픽은 거부

  • 모든 아웃바운드 트래픽은 허용

  • 여기에 인바운드 트래픽을 허용하기 시작

  • 아웃바운드 트래픽에 대한 규칙 추가시 기본 설정은 모두 허용에서 모두 불허로 전환되고 추가 규칙만 예외적으로 허용됨

보안 그룹

  • 보안 그룹은 인스턴스와 같은 AWS 자원에 연결할 수 있어야 함

  • 보안 그룹 규칙

    • 방향 (인바운드 또는 아웃바운드)

    • IP 프로토콜 (TCP, UDP, ICMP)

    • 출발지/목적지 IP 주소

    • 포트

    • 출발지/목적지 보안 그룹(AWS에서만 작용)

ICMP 트래픽 허용

  • ping을 허용하려면 ICMP(internet Control Message Protocol) 트래픽을 허용해야 함

  • 기본적으로 모든 인바운드 트래픽이 차단되므로 ping도 실패함

  • 보안 그룹에 인바운드 ICMP 트래픽을 허용하는 규칙을 추가해야 함

SSH 트래픽 허용

CIDR example

  • 10.0.0.0/0 : all

  • 10.0.0.0/8 : 10.0.0.0 ~ 10.255.255.255

  • 10.0.0.0/16 : 10.0.0.0 ~ 10.0.255.255

  • 10.0.0.0/24 : 10.0.0.0 ~ 10.0.0.255

바스티언 호스트 (bastion host, 점프 박스 jump box)

  • 하나의 특정 서버만 SSH를 통해 접근할 수 있도록 하게 하는 것

  • 유일하게 SSH 접속이 허용된 호스트

가상 사설 클라우드 (VPC, Virtual Private Cloud)

  • 사설 네트워크망 (10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16 범위 주소 사용 가능)

  • VPN 엔드포인트에 서브넷, 라우팅 테이블, 접근 제어 목록 및 게이트웨이를 만들 수 있음

  • 적어도 2개의 서브넷은 있어야 함, 공용과 사설

  • 공용 서브넷은 인터넷 경로

  • 사설 서브넷은그렇지 않음

  • VPC는 주소 공간 10.0.0/16을 사용


Reference

  • AWS in Action


'Infra > AWS' 카테고리의 다른 글

AWS 보안  (0) 2018.09.29
AWS - 가상 서버 사용  (0) 2018.09.28
AWS란?  (0) 2018.09.28
AWS (Amazon Web Services) - 공부자료  (0) 2018.09.02

Leave a Comment

AWS 가상 서버

가상 어플라이언스 (virtual appliance)

  • 하이퍼바지어에서 실행할 수 있는 OS와 사전 구성된 소프트웨어를 포함하는 이미지

  • 하이퍼바이저의 일이란 하나 이상의 가상 어플라이언스를 실행하는 것

  • 고정된 상태로 포함되어 있어서 시작할 때마다 정확히 같은 결과를 얻을 수 있음


AMI

  • AWS에서 가상 어플라이언스의 이미지

  • 가상 서버의 EC2 서비스를 사용하기 위한 특별한 가상 어플라이언스

  • OS, 추가 소프트웨어 및 그것들의 구성을 포함하는 읽기 전용 파일 시스템으로 구성

  • OS의 커널은 포함하지 않음

  • 커널은 아마존 커널 이미지(AKI, Amazon kernel image)에서 로드됨

  • AWS에 소프트웨어를 배포하는데 사용할 수 있음


인스턴스 유형과 인스턴스 패밀리

  • 인스턴스의 이름

    • 모두 동일한 방식을 따름

  • 인스턴스 패밀리

    • 같은 초점을 가진 인스턴스 유형

  • 세대 (generation)

    • 같은 유형의 다른 업그레이드 된 버전이 출시될 경우의 개념

  • 1세대, 2세대 등으로 구분

  • 인스턴스 크기

    • CPU, 메모리, 스토리지, 네트워크의 능력을 정의

    • 가상 서버의 크기는 언제든지 변경 가능


키를 잊어버렸을 경우

  • 가상 서버에 로그인하려면 키가 필요함

  • 가상 서버는 인증용으로 비밀번호 대신 키를 사용

  • 공개키 방식이 비밀번호 입력 방삭보다 훨씬 안전

  • 윈도우는 SSH 클라이언틀 내장하지 않으므로 별도로 Putty, PuTTYgen이라는 도구를 사용해야 함


가상 서버 상태

  • 시작

    • 중지된 가상 서버를 시작할 수 있는 상태

  • 중지

    • 실행 중인 가상 서버를 중지 가능함

    • 비용이 청구되지 않는 상태(네트워크 연결 스토리지 등의 자원을 제외하고)

    • 나중에 다시 시작 가능

    • 네트워크 연결 스토리지를 사용하면 데이터를 그대로 남아있게 됨

  • 재부팅

    • 재부팅하는 경우

    • 데이터가 손실되지 않음

  • 종료

    • 삭제를 의미

    • 종료한 가상 서버를 다시 시작할 수 없음

    • 네트워크 연결 스토리지, 공용 및 사설 IP 주소와 같은 종속성도 함께 삭제됨


공인 IP 주소

  • IPv4 주소는 아무 부족함

  • 일래스틱 IP 주속 고갈을 방지하기 위해 서버와 연결되지 않은 일래스틱 IP 주소에 비용이 청구됨



Reference

- AWS in Action - 가상 서버 사용하기 : EC2






'Infra > AWS' 카테고리의 다른 글

AWS 보안  (0) 2018.09.29
AWS - 가상 서버 사용  (0) 2018.09.28
AWS란?  (0) 2018.09.28
AWS (Amazon Web Services) - 공부자료  (0) 2018.09.02

Leave a Comment

AWS란?

아마존 웹 서비스 (Amazon Web Service)

  • 추상화된 각기 다른 계층에 컴퓨팅, 저장 공간, 네트워킹 솔루션을 제공하는 웹 서비스의 플랫폼

  • 공용 클라우드



클라우드 컴퓨팅

  • IT 자원의 공급과 소비를 은유적으로 빗댄 용어

  • 관리 노력과 서비스 공급자의 상호 작용을 최소화하면서 신속하게 제공하거나 해제할 수 있는 구성 가능한 컴퓨팅 리소스의 공유 풀에 어디서나 편리하게 필요한 시점에 네트워크로 접근할 수 있게 하는 모델



클라우드 유형

  • 공용 (Public)

    • 조직이 관리하고 일반 대중이 사요하도록 개발된 클라우드

  • 사설 (Private)

    • 하나의 조직 범주 내에서 IT 인트라를 공유하고 가상화하는 클라우드

  • 하이브리드 (Hybrid)

    • 공용 클라우드와 사설 클라우드의 혼합형


클라우드 컴퓨팅 서비스 분류

  • 서비스로의 인프라 (IasS, Infrastructure as a Service)

    • 가상 서버를 이용하여 컴퓨팅, 스토리지, 네트워킹 기능 등과 같은 기본적인 자원을 제공

  • 서비스로서의 플랫폼 (PaaS, Platform as a Service)

    • 클라우드에 사용자 지정 애플리케이션을 배포할 수 있는 플랫폼을 제공

  • 서비스로서의 소프트웨어 (SaaS, Software as a Service)

    • 인트라와 클라우드에서 실행되는 소프트웨어를 결합


AWS 상호작용

  • 관리 콘솔

    • 웹 기반 관리 콘솔

  • 명령줄 인터페이스 (CLI, Command-line interface)

    • AWS와의 작업을 자동화하는데 일반적으로 사용함

    • 젠킨스와 같은 지속적 통합 서버의 도움으로 인프라 일부를 자동화하려는 경우에 적합한 도구

    • 여러 CLI 호출을 모아놓은 스클립트로 인프라 자동화를 할 수 있음

    • 윈도우, 맥, 리눅스 및 파워셸 지원

  • SDK

    • 애플리케이션에서 AWS를 호출할 때 사용

    • 원하는 프로그래밍 언어로 애플리케이션 로직에 AWS를 통합할 수 있음

  • 블루프린트(blueprint)

    • 시스템에 관한 설명

    • 그 시스템의 모든 서비스와 종속성을 포함

    • 기술된 시스템을 실체화하는데 필요한 조치나 순서에 대해서는 아무 언급도 하지 않음

    • 구성 요소가 많거나 복잡한 환경을 제어해야 하는 경우 사용

    • 클라우드 인프라의 구성을 자동화하는데 좋음



Reference

- AWS in Action



'Infra > AWS' 카테고리의 다른 글

AWS 보안  (0) 2018.09.29
AWS - 가상 서버 사용  (0) 2018.09.28
AWS란?  (0) 2018.09.28
AWS (Amazon Web Services) - 공부자료  (0) 2018.09.02

Leave a Comment

AWS (Amazon Web Services)

처음 알게 된 것은 2008년쯤 대학원생 시절 교수님이 얘기를 해줘서 알게 되었는데 그 때만 해도 이렇게까지 큰 파급력의 서비스가 될 것이라고는 전혀 생각하지 못했다. 처음으로 충격을 받은 것은 데브시스터즈의 게임 백앤드 서버 구성에 대한 컨퍼런스 발표 자료를 보다가 AWS의 오토 스케일링 기능을 알게 되고 너무 놀랐다. 저 오토 스케일링 기능을 구현하는게 확실히 어렵긴 한가보다. 한국 회사에서 제공해주는 것은 보지 못했다. 멀티 클라우드 시대인만큼 대부분의 회사들이 AWS를 전용으로 또는 같이 쓰는 형태인 것 같다. 업무적으로 AWS를 쓰는건 처음이라 공부를 시작했다



AWS 소개



AWS 가이드


'Infra > AWS' 카테고리의 다른 글

AWS 보안  (0) 2018.09.29
AWS - 가상 서버 사용  (0) 2018.09.28
AWS란?  (0) 2018.09.28
AWS (Amazon Web Services) - 공부자료  (0) 2018.09.02

Leave a Comment

Redis Install

Mac

brew install redis

접속

redis-cli -h host -c -p port

-c 옵션 : ㅋㅡㄹ러스터 전체 접속 (이 옵션이 없으면 해당 클러스터에 대한 값만 조회됨)


Redis 실행

redis-serveror

brew services start redis
brew services stop redis
brew services restart redis

설정 파일 수정

sudo vi /usr/local/etcand

port 1111 #포트번호 변경#
requirepass password #패스워드#
bind 127.0.0.1 19.168.0.101 #외부에서 접근 가능하게#

Command

set

  • 타임아웃 값 없이 설정set key value

  • 일정 시간만 설정하기 (5초간 설정)set key value EX second

setex

  • 만료 초를 같이 입력setex key seconds value

mset

  • mset은 다수의 key와 value를 저장할mset key value ...

TTL

  • 키값의 만료 시간이 몇 초 남았는지 확인TTL key

PTTL

  • 키값의 만료 시간이 밀리초(ms) 단위로 얼마나 남았는지 확인PTTL key

get

get key

mget

  • 다수의 key의 value를 확인mget key1 key2 key3

keys

  • keys * : 모든 key

  • keys r???? : r로 시작하고 나머지가 4자인 key

  • keys d : 가운데 d자가 들어가는 key

randomkey

  • 랜덤한 key 리턴randomkey

rename

  • key의 이름 변경rename key newkey

del

  • key 삭제

  • 한 번에 여러 개 삭제 가능del key ...

ping

  • 연결이 유지되고 있는지 확인할 때 사용

  • 연결이 유지되고 있을시에 PONG을 리턴ping

exists

  • key가 존재하는지 확인

  • 존재하지 않으면 0 리턴, 존재하면 1 리턴exists key

expire

  • 지정된 키에 만료시간을 초 단위로 설정한다. 키가 존재하지 않거나 설정이 안되면 0을 리턴expire key seconds


'Infra > NoSQL&Cache' 카테고리의 다른 글

[KAFKA] 콘솔 명령어 모음  (0) 2018.10.15
Redis 설치 및 커맨드 정리  (0) 2018.08.12
MongoDB 명령어  (0) 2014.03.09
JBoss - Infini Span  (0) 2013.11.20
분산 캐시 Memcached  (0) 2013.11.19

Leave a Comment


MySQL 명령어

테이블 통계정보

mysql> show table status like 'atin_story'\G


인덱스 통계정보

mysql> show index from atin_story\G


쿼리 플랜
mysql> explain select sql


인덱스 추가/제거

alter table table_name drop index index_name;

alter table table_name add index index_name(colunm1, column2);


MySQL 인덱스

  • B-Tree 인덱스 구조 사용
  • NULL을 값으로 인식하여 인덱스에 포함됨
  • 인덱싱 컬럼에 대한 IN절은 Expansion으로 처리됨( UNION ALL )
  • DESC 인덱스는 지원하지 않음


MySQL 플랜

  • select_type :  SELECT 유형
  • type :  Access type
    • Good : Const, system, eq_ref
    • Bad : ALL(테이블풀스캔),  index(인덱스풀스캔)
    • 처리범위에 따라 다름 : range, ref
  • extra : 실행계획을 생성할 때 적용하는 최적화 기법을 표현하거나 부가정보
    • Good : using index(커버링인덱스), using where(메모리에서 필터링)
    • Bad : using filesort, using join buffer
  • 특정인덱스를 사용하거나 사용하지 않도록 하는 인덱스 힌트는 아래와 같다
    • USE INDEX/FORCE INDEX 
    • IGNORE INDEX
    • STRAIGHT JOIN : 드라이빙 순서를 고정할 때 사용하는 힌트


'Infra > RDBMS' 카테고리의 다른 글

MySQL 명령어 정리  (0) 2017.11.03
Oracle 테이블 스페이스 변경  (0) 2014.01.17
오라클 DBF 용량 줄이기  (0) 2013.06.17
오라클 백업  (0) 2013.06.06
테이블 제약 조건 확인  (0) 2013.05.20
ORA-00600: internal error code, arguments: [kokle_lob2lob13:input mismatch] 해결  (2) 2013.04.23
Postgresql 랜덤값 출력  (0) 2011.10.14
DB Password 부호화 복호화  (0) 2011.04.19
DB2 TimeStamp  (0) 2009.08.24
DB2 SEQUENCE 생성  (0) 2009.07.16
DB2에서 Temp테이블 사용법  (0) 2009.07.07

Leave a Comment

이전에 서버 성능 튜닝을 하다가 sysctl.conf를 튜닝하게 될 일이 있었는데 이 값들을 일일히 테스트하면서 보정하는데는 무리가 있다.

OS 튜닝 업무만 전담하는 것이 아닌데 이 값들을 일일히 무엇을 하는지도 어려운데, 이럴 때는 해외 레퍼런스를 잘 이용하면 좋다.

구글링하다가 찾은 "Linux Network Tuning for 2013"이라는 곳의 수치인데, 설정이 잘 되어 있다. 원하던 일부 값들이 잘 되어있는 것을 보고 일부 몇개는 그냥 신뢰하게 되었다. 4년 전 문서이지만 참고하면 좋겠다.



/etc/sysctl.conf



Reference

[1] Linux Network tuning (http://www.nateware.com/linux-network-tuning-for-2013.html#.WLfWKW-LQwF)




Leave a Comment

내가 시스템 엔지니어인가?ㅋㅋ


어쨌든 시스템 설정 수치(/etc/sysctl.conf)를 찾다보니 역시 해외에는 좋은 자료가 있더라.


[1]에는 네트워크 튜닝 수치가 있는데 TCP 메모리 관련 부분들은 이미 회사 솔루션에서 사용하는 수치와 동일한 값들을 사용하고 있었고 신빙할 수 있는 튜닝값으로 보인다.


[2]에는 sysctl.conf에서 설정하는 것들에 대해 유익한 정보를 얻을 수 있다.

설정하는 값들의 크기가 Byte이고, 3가지 연달아 설정하는 값들은 최소값, 기본값, 최대값에 대한 거라는점 등이다.


[3]에 각 sysctl 설정들에 대한 설명이 들어가 있다.


Reference
[1] Linux Network Tuning for 2013
     (http://www.nateware.com/linux-network-tuning-for-2013.html#.VSTuG_msWT4)
[2] Linux Tune Network Stack (Buffers Size) To Increase Networking Performance
     (http://www.cyberciti.biz/faq/linux-tcp-tuning/)
[3] Linux Programmer's Manua (http://man7.org/linux/man-pages/man7/tcp.7.html)


Leave a Comment


to Top