반응형
반응형

AWS에서 EC2를 생성할 때 CentOS 관련 이미지로 생성을 하면,

아마존 콘솔에서 아무리 높은 용량의 EBS를 마운트했다고해도, OS에 들어가보면 기본 Root볼륨이 8G로 잡혀있게 된다.

(Public AMI든 Private AMI든 상관없이 모두 발생)

 

Root볼륨외에 다른 디렉토리를 만들어서, 그 디렉토리에 남은 용량을 마운트하여 사용해도 되지만,

패키지 설치나 커널 등 신경쓰지 않으면 사용자가 의도하지 않는 시점에도 Root볼륨에 상주하여 용량을 꽤 잡아먹을 수 있기 때문에, 기존 Root볼륨에 합쳐서 사용하는 방법을 알아보았다.

 

혹시 Root볼륨에 붙은 디바이스명이 /dev/xvda가 아니라면, 아래 키워드는 주의해서 실행이 필요함.

아래 키워드들은 /dev/xvda의 첫번째 디바이스로 가정하고 작성된 키워드들임.

 

1. growpart 패키지 설치

$ yum install -y cloud-utils-growpart

 

2. EBS에 할당된 용량만큼 기존 용량에서 확장한다.

$ growpart /dev/xvda 1

 

 

3. 리부팅 (보통은 여기서 마무리 되지만, 마무리 안된 경우 4번으로 넘어감)

$ reboot

 

 

4. Resize 진행

$ resize2fs /dev/xvda1

 

 

반응형
,
반응형

AWS에서 공식지원하는 ubuntu나 centos의 경우는, root계정 외에 ubuntu, centos 계정을 각각 세팅해서 설치가 되게 되는데,

AWS 중국에서 제공하는 OS라던지 공식지원하지 않는 OS를 설치한 경우에는, Key를 등록하고 SSH접속을 시도해도,

암호를 물어보는 경우가 있고, root 계정만 만들어서 나오는 경우가 있다.


최근 centOS를 깔았더니, root계정만 생성해서 발급되는 경우가 생겼고, 패스워드를 물어봐서 헤맸었기 때문에,

공식 지원하는 centOS처럼 centos 계정을 생성하고, 패스워드를 물어보지 않도록 변경해보았다.


1. 유저 생성하기 (ubuntu의 경우는 useradd -m 으로 계정을 생성해야 home폴더 아래에 계정 폴더가 생성됨)

$ useradd centos


2. private key를 복사 (root 계정으로)

$ mkdir -p /home/centos/.ssh
$ cp ~/.ssh/authorized_keys /home/centos/.ssh
$ chown -R centos.centos /home/centos/.ssh


3. sudo권한 지급 (Optional)

$ vi /etc/sudoers.d/**-cloud-init_users   # 파일명이 다를수도 있는데, 보통 하나만 들어있다.

가장 아랫줄에 아래와 같은 키워드를 추가해주자.

centos ALL=(ALL) NOPASSWD:ALL


$ visudo

마찬가지로 가장 아랫줄에 아래 키워드를 추가해준다.

centos ALL=(ALL) NOPASSWD:ALL


4. SSH 접속 시 패스워드 물어보지 않게 설정

$ vi /etc/ssh/sshd_config
PasswordAuthentication yes # 이 부분을 찾아서 no로 바꿔준다. 주석이 걸려있다면 주석 해제


5. root 계정으로 접근 막기 (Optional)

$ vi /etc/ssh/sshd_config
PermitRootLogin yes # 이 부분을 찾아서 no로 바꿔준다. 주석이 걸려있다면 주석 해제


6. sshd 데몬 재시작

$ service sshd restart


7. 생성한 계정의 패스워드가 만료되지 않도록 설정 (중요함)

$ chage -E -1 -M 99999 centos


이제 접속해보면 centos로 접근이 가능하고, sudo -i 로 root 권한 획득을 할 수 있으며, 최초에 패스워드도 물어보지 않도록 세팅이 되었다.

최근에 7번 항목을 진행을 안해서 EC2에 아예 접근이 불가능한 상황이 생겼어서, 7번항목을 추가함;; 다행히 remote command가 날라가서 머신은 유지한채로 살림. 7번은 필수로 진행을 해야한다.

반응형
,
반응형

EC2 Instance를 생성하고나면, .pem 파일을 하나 다운받을 수 있게 되는데,

이게 putty에서는 인식을 하지 못한다.


그래서 putty-gen이라는 것을 사용해서 putty에서 사용할 수 있게 ppk파일로 만들어주어야 한다.

(putty-gen은 putty 다운로드 사이트에서 찾을 수 있다.)


실행하면 아래와 같은 화면이 나온다. 

SSH-2-RSA가 기본으로 선택되어 있으므로, 이것을 변경하지 않고 사용한다.

 


Load버튼을 눌러서, 아까 받은 .pem파일을 넣고, 패스워드 지정 (선택사항)한 후 활성화된 Save private Key버튼을 누르면 .ppk파일이 만들어진다.


이것을 이제 putty에 가서 등록을 하면된다.

 


아마존 공식홈에서 친절하게 설명이 되어 있어서, 이 링크를 참조했다.

https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/putty.html

반응형
,
반응형

ELB를 Http형태로 세팅을 한 후라면, X-FORWARDED-FOR 헤더에서 찾으면 client ip를 쉽게 얻을 수 있는데,

웹소켓이라던지 기타 TCP 통신을 하는 TCP 형태로 세팅이 된 경우라면, ELB쪽에도 Proxy 세팅을 해야하고,

서버쪽에서도 추가로 Proxy Address를 받을 수 있도록 세팅을 해야 client ip를 얻어올 수가 있었다.


일단 해야 할 작업은 두 가지이므로 정리해본다.


1. ELB에 proxy protocol 활성화 하기

아마존 콘솔을 열고 아래의 명령어를 입력하면 완료된다.

aws elb create-load-balancer-policy --load-balancer-name my-load-balancer --policy-name EnableProxyProtocol --policy-type-name ProxyProtocolPolicyType --policy-attributes "AttributeName=ProxyProtocol,AttributeValue=true"


2. 서버 (이 포스팅에서는 Nginx를 사용하여 웹소켓을 사용함) 세팅

[nginx.conf]

server {
  listen  80  proxy_protocol; # 필수
  real_ip_header  proxy_protocol; # 필수

  location / {
    proxy_http_version  1.1; # 필요에 따라
    proxy_pass   http://127.0.0.1:8000/; # 필요에 따라
    proxy_set_header  Connection  $connection_upgrade; # 웹소켓을 사용한다면 필수
    proxy_set_header  Upgrade  $http_upgrade; # 웹소켓을 사용한다면 필수
    proxy_set_header  X-Forwarded-For  $proxy_protocol_addr;  # 필수
  }
}



기본 Nginx access log 설정이라면, 아마 기존과 동일한 ip가 확인이 될 건데, log_format을 살짝 변환하여 이를 해결할 수 있다.

[nginx.conf]

log_format forward_log '$proxy_protocol_addr - $remote_user [$time_local] ' '"$request" $status $body_bytes_sent "$http_referer" ' '"$http_user_agent"' ;


access_log access.log forward_log # 기존 access_log 설정에 파라미터로 log_format 정의한걸 입력해주면 access_log에서도 확인을 해볼 수가 있다.


만약, nginx를 사용하지 않는경우라도, X-Forwarded-For 헤더에서 찾으면 원하는 client ip 정보를 얻을 수가 있다.

반응형

'개발 > AWS' 카테고리의 다른 글

[AWS] EC2 CentOS Root Volume 확장  (0) 2019.04.12
[EC2] 유저 생성하기  (0) 2016.06.17
[AWS-EC2] windows에서 putty로 ssh접근하기  (0) 2016.06.11
,
반응형