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


서버 시작

./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






'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

http://kkckc.tistory.com/59

요 위에 URL 블로그님 글대로 하는게 좋은듯

아래 방법은 잘 안된다.

This system is not registered with ULN / RHN


# cd /etc/yum.repos.d
# wget http://public-yum.oracle.com/public-yum-ol6.repo


참조 : http://public-yum.oracle.com/public-yum-ol6.repo



Leave a Comment


to Top