AWS (Amazon Web Services)

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



AWS 소개



AWS 가이드


'Infra' 카테고리의 다른 글

AWS (Amazon Web Services) - 공부자료  (0) 2018.09.02

Leave a Comment

Redis Install

Mac

brew install redis

접속

redis-cli -h host -p port

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' 카테고리의 다른 글

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

리눅스에서 일반 유저가 1024 이하의 포트를 바인딩할 수 없다.

해결책으로 여러가지가 있는데 포트 포워딩 방법도 완전 맘에는 안 들지만 이걸 일단 사용.


* 8080 -> 80 포트 포워딩 방법

 - iptables -t nat -I PREROUTING -p tcp --dport 80 -j REDIRECT --to-ports 8080

 - iptables -t nat -I OUTPUT -p tcp --dport 80 -j REDIRECT --to-ports 8080



* 방화벽 포트 열기

 - iptables -I INPUT 1 -p tcp --dport 8080 -j ACCEPT

 - iptables -I OUTPUT 1 -p tcp --dport 8080 -j ACCEPT


* 현재 내용 저장

 - /sbin/service iptables save


* 재시작

 - /etc/init.d/iptables restart

 - /sbin/service iptables restart


* 해당 포트 열려있는지 확인

 - nc 호스트 -z 포트


* Reference

[1] 포트 포워딩  (http://stevenjsmin.tistory.com/103)

[2] 기타1 (http://coffeenix.net/board_view.php?bd_code=1716)

[3] 기타2 (http://snoopybox.co.kr/1528)


Leave a Comment

시작

mongod


 dbpath

 DB 위치지정

 port 

 포트 지정

 master

 Master 지정

 slave

 Slave 지정 

 --config

 conf 파일 위치 지정

 source localhost:10000

 Master 위치 지정

 oplogSize

 opLog 크기 지정

 slavedelay

 Master에서 Slave로 변경 지정시간

 autoresync

 동기화 실패시 전체 재동기화

 fastsync

 마스터 노드의 스냅샷으로 가동

 Resync를 건너뛰고 복사


클라이언트 접속

mongo localhost:30000


UI 관리 페이지 접속 (시작 포트 + 1000)

http://localhost:31000 


레플리카 셋

- 복지를 하는 또 하나의 방법

- 자동 장애 넘김

- 클러스터의 마스터가 유동적

- 제약사항

  - 최대 12대 노드 구성

  - 최대 7대의 노드가 투표 가능


var config={_id:'dowon01', members:[

    {_id:0, host:'localhost:30000'},

    {_id:1, host:'localhost:40000'},

    {_id:2, host:'localhost:50000'}]

  }


rs.initiate()

rs.initiate(config)


IP Port 열기

/sbin/iptables -I INPUT 1 -p tcp --dport 30000 -j ACCEPT

/sbin/iptables -I OUTPUT 1 -p tcp --dport 30000 -j ACCEPT



Reference

[1] MongoDB Manual (http://docs.mongodb.org/manual/)

[2] MongoDB Replication (http://www.slideshare.net/itmentor/mongo-db-replication)

[3] MongoDB Replication2 (http://mobicon.tistory.com/142)

[4] MongoDB vs MySQL (http://www.slideshare.net/WooYeongChoe1/slidshare-mongodbmysqlcrud)


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

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

select file_name, bytes from dba_data_files where tablespace_name = 'TableSpace이름';


alter tablespace TableSpace명 add datafile '절대경로/DBF파일명.dbf' size 1024M;


alter database datafile '절대경로/DBF파일명.dbf' resize 1024M;

'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

Infini Span

  - Homepage : http://infinispan.org/

  - Quick Start : https://github.com/infinispan/infinispan-quickstart

  - 한국 블로그 : http://infinispan-ko.blogspot.kr/

  - Guide         : http://infinispan.org/docs/6.0.x/getting_started/getting_started.html

  - Document   : https://docs.jboss.org/author/display/ISPN/Clustering+modes

  - 관련 사이트 : http://cbcpascal.blogspot.kr/

                        http://tedwon.com/display/dev/Infinispan+Data+Grid



JBoss Community에 최근 추가된 프로젝트

분산 캐쉬 (큰 Hash Table or Hash Map)
성능 향상을 위해서 사용합

경쟁 제품
Memcached, Hazelcast, Ehcache, JBoss Cache

상용 Oracle Coherence

일반 캐쉬와 차이점

JBoss Community - JBoss Cache는 규모를 크게 가지고 갈 수 없음

Infinispan은 대규모 캐쉬를 구현 가능

자체 표현으로는 Grid라고도 표현, 캐쉬 이외에도 grid 형태로 로직을 병렬 처리하는 기능도 가지고 있습니다.

일반 프로젝트에서는 어떻게 사용할 수 있을까요? 
1. 반복적인 호출에 자주 변하지 않은 데이터를 넣어두고 성능을 향상시킬 수 있습니다.
2. Hibernate의 2차 캐쉬로 사용하여 Querying의 성능을 향상시킬 수 있습니다.
3. 여러 JVM, WAS에서 공통으로 사용하는 객체가 많은 경우 클러스터링을 통해 버스 처럼 사용할 수 있습니다.
4. 큰 크기의 Hash Table이 필요한 경우 클러스터링을 통해 여러 캐쉬를 하나로 보이게 하여 많은 객체를 저장할 수 있습니다.

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

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


to Top