Life of Aussie/잡 생각 2015. 9. 4. 09:55

외롭게 살다 외롭게 죽을

내 영혼의 빈터에

새날이 와, 새가 울고 꽃잎 필 때는,

내가 죽는 날

그 다음 날.


산다는 것과

아름다운 것과

사랑한다는 것과의 노래가

한창인 때에

나는 도랑과 나뭇가지에 앉은

한 마리 새.


정감에 그득찬 계절,

슬픔과 기쁨의 주일,

알고 모르고 잊고 하는 사이에

새여, 너는

낡은 목청을 뽑아라.


살아서

좋은 일도 있었다고

나쁜 일도 있었다고

그렇게 우는 한 마리 새.





눈물이 나려한다.......

' Life of Aussie > 잡 생각' 카테고리의 다른 글

태백산맥의 주요 등장인물  (0) 2015.11.10
  (0) 2015.09.04
귀천  (0) 2015.09.04
이번주 지나면 프로베이션어리 기간 끝남...  (0) 2015.06.29
사고싶은 음악  (0) 2014.04.08
Posted by Steven J.S Min
,

AWS에서 MySQ를 생성하여 사용하게도면 기본적으로 Timezone이 UTC로 설정되어 있기 때문에 현지의 시간과 맞지 않을 수 있다.

(Timezone 값은 RDS 파라미터 그룹에서 수정하는 것을 허락 하지 않는다.)

그렇기 때문에 다음과 같은 절차를 통해서 Timezon을 수정한다.


본인의 지역에 맞는 Timezone 값을 확인 하기 위하여 다음 커맨드를 사용하여 확인한다.

mysql> SELECT * FROM mysql.time_zone_name;



Timezone을 설정하는 프로시저를 하나 만든다. (보통 root 유저나, AWS RDS의 경우 지정된 시스템 유저로 생성한다.)

DROP PROCEDURE IF EXISTS store_time_zone;

CREATE PROCEDURE store_time_zone () SET SESSION time_zone = 'Australia/Victoria';



위에서 생성한 프로시저에 대해서 실행할 권한을 주고 실행한다.

GRANT EXECUTE ON PROCEDURE mysql.store_time_zone to 'rpc'@'%';

GRANT EXECUTE ON PROCEDURE mysql.store_time_zone to 'ussadmin'@'%';


CALL mysql.store_time_zone;



그리고 이것을 모든 세션에 적용하기 위해서, 새로운 파라미터 그룹을 정의하고

파라미터 그룹중에 "init_connect"에 해당 프로시저를 실행 하도록 설정한다.

name=init_connect, value='CALL mysql.store_time_zone'


Posted by Steven J.S Min
,

며칠동안 회사의 네트웍을 AWS로 옮기면서 처음에는 쉽게 생각했으나, 알면 알수록 참 할것이 너무 많다는 것을 알게되고 또 시간도 걸리고있다. 하지만 많은 가능성을 피부로 느끼게되어 끝장을 보려고한다.  가장먼저 만나게된 적은 VPC라는 서비스인데 평소에 내트웍에대해서는 기본적인 내용만 알고 있다가 VPC를 구성하려하니 참 네트웍에 대해서 아는게 별로 없다는 생각을 하게된다.

 

VPC를 구축하면서 보지않아도 뻔한것이 보안내용이 좀더 엄격해지면서 개발자 들로부터 듣게될 컴플래인이다.  의사소통도 어려운데 난감한 사항이 될것 같아서 구멍을 찾게 되었는데, 가장먼저 개발자들에게 기본 쿼리툴들을 변경없이 사용하기 위해서는  (AWS RDS Private Subnet 영역에 두게되면 데이터베이스에 Public subnet에 접속후 쿼리를 해야하므로 불편할 것이다.) 뭔가 조치가 필요했다. (일단 개발 환경은 그냥 편하게 쓰라도 열어두었다.)

 

다음은  NAT 서버에서의 iptables 를 조작하여 클라이언트(개발자들)로부터 오는 요청을 NAT서버를 경유하게 하여 내부 사설망으로 RDS에게 요청을 보내고 응답을 받을수 있도록 하는 과정이다.

 

 

.새로운 Policy Rule 적용

 

1. NAT (Located on Public Subnet)서버에 로그인한다.

 

2. NAT 서버에서 iptables를 조작하여 3306 요청을 내부 사설망에 위치한 RDS로 요청을 하도록 한다. 

AWS RDS는 명시적으로 IP Address를 보여주지 않는 것 같다(잘은 모르지만), DS  Endpoint의 도메인 명을 이용하면 어떤 내부 IP를 사용하는지 알수 있다. 

 

** RDS 의 서버 타입(업그래이드 등으로인한)을 바꾸는 경우 IP가 변경되니 주의 하자!

root@prod.nat1:~# iptables -t nat -I PREROUTING -p tcp -i eth0 --dport 3306 -j DNAT --to 10.213.23.243:3306

root@prod.nat1:~# iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

root@prod.nat1:~# iptables -t nat -L --line-numbers                                                          

 

위의 세번째 행의 명령은 적용된 룰을 출력하는 명령행이다.

 

3. 데이베이스 접속시 데이터베이스 서버 대신 해당 NAT서버를  Key-in 하면 된다.

 

 

 

. 적용된 Policy Rule 취소

1. 다음 명령으로 현재 적용된 룰을 확인한다.

root@prod.nat1:~# iptables -t nat -L --line-numbers

Chain PREROUTING (policy ACCEPT)

num  target     prot opt source               destination

1    DNAT       tcp  --  anywhere             anywhere             tcp dpt:mysql to:10.213.13.87:3306

 

Chain INPUT (policy ACCEPT)

num  target     prot opt source               destination

 

Chain OUTPUT (policy ACCEPT)

num  target     prot opt source               destination

 

Chain POSTROUTING (policy ACCEPT)

num  target     prot opt source               destination

1    MASQUERADE  all  --  anywhere             anywhere

2    MASQUERADE  all  --  anywhere             anywhere

 

 

2. 확인된 룰을 확인한다음, 체인 타입(여기서는 PREROUTING)과 번호를 파라미터로 넘겨서 삭제 하면 된다.

root@prod.nat1:~# iptables -t nat -D PREROUTING 1

 

*** 물론 NAT서버와 관련된 Security Gorup 이라든가, Network ACL등과 같은 보안설정을 적절하게 설정해줘야한다.

 

 

적용된 Policy Rule 저장

 

iptables 명령과 함께 생성된 규칙은 메모리에 저장되어 있다. iptables 규칙 모음을 저장하기 전에 시스템을 재시작할 경우, 모든 규칙이 삭제됩니다. 시스템 재부팅을 통한 넷필터 규칙은 저장되어야 한다. 넷필터 규칙을 저장하기 위해 root로 다음의 명령을 입력해야 한다.

 

root@prod.nat1:~# /sbin/service iptables save 

      

이는 iptables init 스크립트를 실행하고, /sbin/iptables-save 프로그램을 실행하며 현재 iptables 설정을 /etc/sysconfig/iptables에 기록한다. 기존의 /etc/sysconfig/iptables 파일은 /etc/sysconfig/iptables.save로 저장된다.

 

다음번에 시스템이 부팅할 때, iptables init 스크립트는 /sbin/iptables-restore 명령을 사용하여 /etc/sysconfig/iptables에 저장된 규칙을 재적용한다.

 

/etc/sysconfig/iptables 파일에 커밋하기 전에 새로운 iptables 규칙을 테스트하는 것이 좋지만, iptables 규칙을 이 파일의 다른 시스템의 버전에 있는 파일로 복사하게 될 수 있다. 이는 iptables 규칙 모음을 여러 컴퓨터에 배포하는 지름길을 제공한다.

 

배포, 백업, 또는 기타 다른 목적을 위해 iptables 규칙을 분리된 파일에 저장할 수 있다. iptables 규칙을 저장하기 위해, root로 다음의 명령을 입력해야만 한다.





Posted by Steven J.S Min
,

아마존에서 EC2 인스턴스를 설치하고 나면 시간이 맞지 않는다. 그것은 기본적으로UTC 시간을 사용하기 때문인다. tzselect 유틸리티를 사용하여 해당 지역을 선택하여 시간을 설정할 수있다.


root@empower-esp:~# tzselect 

Please identify a location so that time zone rules can be set correctly.

Please select a continent or ocean.

 1) Africa

 2) Americas

 3) Antarctica

 4) Arctic Ocean

 5) Asia

 6) Atlantic Ocean

 7) Australia

 8) Europe

 9) Indian Ocean

10) Pacific Ocean

11) none - I want to specify the time zone using the Posix TZ format.

#? 7

Please select one of the following time zone regions.

1) Lord Howe Island 8) Queensland - most locations

2) Macquarie Island 9) Queensland - Holiday Islands

3) Tasmania - most locations 10) South Australia

4) Tasmania - King Island 11) Northern Territory

5) Victoria 12) Western Australia - most locations

6) New South Wales - most locations 13) Western Australia - Eucla area

7) New South Wales - Yancowinna

#? 5


The following information has been given:


Australia

Victoria


Therefore TZ='Australia/Melbourne' will be used.

Local time is now: Thu Jul 30 18:55:59 AEST 2015.

Universal Time is now: Thu Jul 30 08:55:59 UTC 2015.

Is the above information OK?

1) Yes

2) No

#? 1


You can make this change permanent for yourself by appending the line

TZ='Australia/Melbourne'; export TZ

to the file '.profile' in your home directory; then log out and log in again.


Here is that TZ value again, this time on standard output so that you

can use the /usr/bin/tzselect command in shell scripts:

Australia/Melbourne

root@empower-esp:~# TZ='Australia/Victoria'; export TZ


그리고 이것을 /etc/profile 파일에 기록해 놓으면 시스템이 부팅되더라도 유지가 되겠다.

# /etc/profile


# System wide environment and startup programs, for login setup

# Functions and aliases go in /etc/bashrc


# It's NOT a good idea to change this file unless you know what you

# are doing. It's much better to create a custom.sh shell script in

# /etc/profile.d/ to make custom changes to your environment, as this

# will prevent the need for merging in future updates.

TZ='Australia/Victoria'; export TZ

.

.

생략....



Posted by Steven J.S Min
,