지인 서버의 업타임이 1078일을 지나가고 있다

지인의 서버 업타임이 1078일을 지나가고 있다.
서버는 클라우드서버라서 중간에 호스트서버가 점검등의 이유로, 메모리를 세이브 해놓고 재부팅을 했을지는 모르겠다만. 일단 핵심은 리눅스서버를 1000일 이상 켜놨다는 것이다.

사실 중요한 서비스거나, 앞으로도 운영에 문제가 없다면 이런 업타임을 가지는게 당연할 수도 있겠다만, 내 눈앞에서 (?) 컴퓨터가 1000일 넘게 돌아가고 있다는 것에 너무 신기할 따름이다. 현업에 종사하고 있는 사람들은 대수롭게 여길지도 모르겠다.

업타임 1000일 찍었다고 자랑스러워 하면 안 되는 것이,
그 기간동안 발견되고 오픈된 취약점이 무수히 많을 것이다. 대응되는 보안패치도 적용이 안 되었을거고. 즉, 관리를 하지 않은 서버라고도 말 할 수 있다!!

리눅스 htop 프로그램에서도 업타임 100일이 지난 서버에도 (!) 경고성 느낌표를 추가해버린다.

그래도 그 기간 서버가 살아있다는 것에 대한 자기만족.

rm: cannot remove ‘70-persistent-net.rules’: Operation not permitted

Problem

Troubleshooting

done

Centos 7 MariaDB 10.3 설치

yum repo에 MariaDB 추가

설치

실행 및 서비스등록

mysql root 계정접속

Centos 7 PHP 7.3 FPM 설치 (Remi Repo)

Centos 7 에서 remirepo를 활용한 php 7.3 fpm 설치

yum 패키지매니저에 저장소 REMIREPO 설치

remirepo php7.3 활성화

설치

설치할때 7.3.X 버전으로 설치하고있는지 주의

기타 php 확장라이브러리 설치

 

서비스 활성화 및 시작

번외

번외2 memcached listen only localhost

문제

/var/lib/php/  에 opcache, session, wsdlcache 등의 저장소가 apache 계정으로 초기화되어서, 패키지 업데이트 때마다 소유자를 변경해줘야해서 난 www.conf  에서 디렉토리를 교체함

Noisy Neighbor

Noisy Neighbor란 노이지 네이버
한국어로 바꾸면 층간소음…

클라우드 컴퓨팅에서 가상화로 여러 서버를 운용한다치자.
디스크 IOPS가 한정적인 서버에서, 한 게스트가 과도한 디스크 IO를 유발시키는경우
다른 게스트까지 디스크가 느려지는 민폐에서 비롯된 말 인듯.

CPU 성능, 디스크 I/O, 네트워크속도 등등은 가상화한들 공유될 수 밖에없으므로
원할한 서비스를 위해 적절한 QoS가 필요하대.

내가 모 호스팅을 쓸 때 하드 디스크속도를 벤치하는데 명령 입력 실수로, 벤치마크가 몇 시간 돌아가게 만들어버렸더니 (꺼지질않았다). 과도한 디스크 IO 의 사용으로 다른 사용자에게 피해를 끼추므로 서버를 셧다운당한적이 있다.

Noisy Neighbor 문제로 VPS 회사들은 요즘들어 CPU쓰레드를 독립적으로 가상할당하는 Dedicated Core (VDS Instance) 를 판매를 시작하는 것 같다. (Vultr, DigitalOcean, RamNode, BuyVM, …)

Public Cloud (AWS EC2, Azure, …) 에서는 기본적으론 아마 회사에서 제공하는 CPU 퍼포먼스 수치등이 있어, 딱 그만큼 제공하지만 (EC2 에서 말하는 ECU가 그것.) , 다른 상품으로는 CPU가 공유되는 Burstable Instance이나 Shared Instance 라는 이름을 가진 Shared Core 상품이 있다.

AWS 라이트세일에서 SoftEther VPN 서버 구축 (3) – 서버 설정

AWS Lightsail + SoftEther VPN 서버 설정하기

앞에서 SofEtherVPN서버를 설치했으면 셋팅을 해줌니다.
콘솔은 어렵기 때문에 아무튼 GUI로 된 VPN Admin Tool을 사용하겠읍니다.
여기서 받을 수 있읍니다. (Windows 4.28 바로 받기)

관리모드로 접속하기

쩌걸 누름니다.

셋팅이름과 써버 Public IP와 포트를 입력해줍니다. 내 아이피는 13.124.244.119 이었네오.
비밀번호는 처음이라 설정되지 않았으므로 입력하지 않고 건너뛰세오.

쩌걸 눌러 접속합니다.

처음 접속해서 관리자 비밀번호를 뭐로할지 물어보네오. 입력해주면됩니다.

반갑다고 뜨네요. 하지만 여기선 안 쓸거라서요. 닫아줌니다

이것도 안 쓸거에오.

본격적으로 설정에 들어갑시다.

먼저 로컬브릿지 설정으로 들어가요.

그 다음 난 TAP 디바이스를 만들거에요. 따라올거라면 똑같이 디바이스 이름에 sevpn 이라고 붙여줍시다.

뭐 디바이스가 생성된 것 같네요.

VPN 설정하기 앞서

VPN 설정하기 앞서, VPN서버를 구축하면 가상네트워크를 구성하는데 아이피를 할당해줘야해요.
나는 아래와 같이 지정할거에요.

Public IP : 13.124.244.119 (라이트세일 콘트롤패널에 있음)
Private IP : 172.26.8.36 (라이트세일 콘트롤패널에 있음)
VPN 게이트웨이 IP : 192.168.151.254
VPN 서브넷마스크 : 255.255.255.0
VPN DHCP 아이피 범위 : 192.168.151.100 ~ 192.168.151.199

이 과정에서 Private IP 만 주의하면 아마도 따라하는게 문제는 없겠지오.

본격적으로 설정해봅시다

DHCP 서버 설치

참고 : https://www.server-world.info/en/note?os=Ubuntu_18.04&p=dhcp&f=1

를 입력해요.

설치가 되었네요.

앗! 이제부터 vi 에디터를 이용해서 설정파일을 수정해야하네요. vi 는 저도 자주 안쓰니 외워지지 않네요. 구체적인 설명은 생략하겠습니다. 기본상태는 ESC키에요. 기본상태에서 i 누르면 입력모드가 되구요 : (콜론)을 입력후 x! 를 입력하면 입력한 내용을 저장해요 그럼 이만.

명령을 입력해서 dhcpd.conf 파일을 수정할 거에요.

2019.04.12 수정

이렇게 맨 위에추가하셔도 됩니다.

ESC – :x! 로 저장을해요.

인터페이스 지정을 해줍니다. 안해주니까 dhcp 서버가 알아서 서버를 꺼버리네요.

이렇게 tap_sevpn 이라고 지정했으면 :x! 로 저장합니다.

NAT Forward 허용하기

VPN 을 쓰는데, 우리가 VPN을 사설망으로 다른개인과 보안통신하고 그럴 목적이아니라. AWS 네트워크를 통해 트래픽 우회용으로 쓸거잖아요? 그래서 NAT (192.168.151.0/24) 네트워크를 AWS (13.124.244.119)로 변환시켜주는 NAT 포워드를 허가시켜줘야해용.

귀찮으니 명령도 간단간단하게 설정해주자구요.

아래 명령으로 잘 적용됐는지 확인해줘요.

VPN 트래픽이 AWS로 전달되도록 설정

NAT 트래픽이 변환되도록 허용하는 설정은 했지만, VPN 트래픽이 나간다고는 안했어요.
iptables 로 그걸 설정할거에요. 우분투에서는 iptables를 유지시켜주는 프로그램이 딱히 없어서 성가시네요. 그래서 그냥 안하기로 했어요. 서버가 꺼질 일도 없으니까요. 그냥 센토스로 할걸

그래서 서버 다시 실행할때마다 이 설정을 적용해야해요 ㅋㅋ

위에서 TAP 디바이스에 아이피할당도 안해줬는데요, 어차피 이것도 서버를 켤떄마다 해야되는거니깐요, 그냥 같이하도록 합시다.

상기의 명령을 자신의 서버에 맞게 바꿔주고 적용하면 될 것 같아요.

2019.04.12 추가
– isc-dhcp-server먼저 켜면 tap_sevpn에 아이피 없다고 못 켜게함

SEVPN 계정을 만들고 접속을 해봅시다

계정만들기

참 쉽죠?

SEVPN Client 로 접속하기

Add VPN Connection 을 눌러서요 서버아이피, 포트, 가상허브이름을 입력하고, 위에서 만든 계정으로 설정을 만들어줍니다.

이제 연결을 하면!!

짜잔~!

인터넷도 잘 될까요?

잘 되네

현재까지 설정으로 불가능한 것들

OpenVPN은 SEVPN 서버매니저에서 OpenVPN을 켜주시고,
OpenVPN 기본 포트가 1194이므로 라이트세일에서 TCP, UDP 각각 1194 포트를 허용해주면됩니다.
L2TP/IPSec 도 이용하고자하면, 서버매니저에서 설정하실 수 있습니다. 라이트세일에서 포트도 당연히 열어야하는데요, 이전포스팅에 있을거에요.

AWS 네트워크 vs KT 인터넷 일본서버 핑 비교

SoftLayer HONGKONG

KT

KT -> AWS SEOUL

Vultr Tokyo

KT

KT -> AWS SEOUL

후술

현재까지의 가장 가성비 뛰어난 개인VPN이 될 수 밖에 없겠다. 해외망도 좋지.. 암튼 좋지.
주의해야할 것은
Amazon Lightsail의 트래픽 요금정책은 Amazon EC2 와 약간 차이가 있다.
$3.5 플랜 기준으로 1 TB 트래픽을 제공한다.
EC2 에서는 Inbound가 모두 무료이지만,
Lightsail은 첫 1 TB는 Inbound + Outbound 로 계산하고,
그 이후의 트래픽은 Outbound 요금을 계산한다. VPN은 따운받은게 있으면 똑같이 전달을 하기위한 업로드가 발생하므로 In+Out 두배의 트래픽이 발생하니깐 사용자들은 과금발생의 우려에 대해 경각심을 가져야한다. (이짓하는것 자체가 돈과 관련이 되니깐.. 돈많으면 전문VPN을 쓰지)

 

번거로워서 
SoftEther VPN Server 및 시스템 재 시작을 고려하지 않았습니다.
softether 서버 재시작 후
ifconfig을 통한 아이피 부여명령 후
isc-dhcp-server 재시작명령해주세요.

AWS 라이트세일에서 SoftEther VPN 서버 구축 (2) – 서버 설치

Lightsail 에서 SoftEther VPN 설치하기

이전 포스트에서 Lightsail 의 서버생성을 시도했다. 이어서 서버 SSH에 접속해서 SoftEther VPN서버를 설치해보겠다.

SSH에 연결하기

SSH는 서버컴퓨터를 조작할 수 있도록 커맨드를 입력하는 쉘에 원격으로 접속하는 한 방법으로 아무튼 접속한다.

SSH 접속 확인

암튼 서버에 접속했다.

소프트웨어 패키지 업데이트

새로 서버를 세팅하면 기본적으로 소프트웨어가 업데이트 되지 않았을 것이다. 그래서 명렁어로 최신소프트웨어로 판올림해주자.

를 쳤으면, 업데이트 가능한 패키지가 몇개 있는지 나온다.

여기서 해당 명령어를 입력해서 소프트웨어를 업데이트 해준다.

부트로더에 업데이트가 생겨서 어찌할지 물어봐서 대충 업데이트 해준다.

업데이트 해주는것만인데 힘들다.

빌드환경 설치

SoftEther VPN 서버를 다운하기 앞서, SEVPN 설치에 필요한 소프트웨어 (빌드툴)를 받아야한다.
아래 명령을 치면 아마 설치가 가능할거.

SEVPN 소스파일 내려받기

SEVPN 소스파일을 받아야 한다. SoftEther VPN 공식홈페이지에서 따운 할 수있다. Linux x64 아키텍처로 받으면 된다. (4.28 링크)

wget 명령으로 받으면 되겠다.

SoftEther VPN 소스파일 압축해제

위 명령을 입력해서 압축을 풀어준다. 버전이 다르면 해당파일에 맞게 변경해주기로.

압축을 풀었다.

명령을 입력해서 vpnserver 디렉터리 내부로 들어간다.

SoftEther VPN 소스 빌드

이 make 명령을 입력해서 빌드를 하자.

이것저것 소프트웨어 사용권에 동의하라고 한다. 동의를 해준다.

이렇게 뜨면 OK

컴파일 산출물 이동

/home/ubuntu/vpnserver 에 컴파일 결과물이 있는데 /usr/local/에 옮겨주도록 하겠다.

를 입력해서 쉘의 현재디렉터리를 루트로 변경해준다.

아 처음부터 루트권한으로 작업했어야했는데 잊었다.

명령을 입력해서 루트권한을 취득한다.

다음 /usr/local/ 에 vpnserver 디렉터리를 이동시킨다.

잘 옮겨졌는지 확인 ㄱㄱ

다음 vpnserver 바이너리파일 권한을 설정해준다.

데몬설정

SoftEtherVPN 서버가 계속 켜져있도록 리눅스 서비스인 데몬? 대몬?에 스크립트를 넣어준다.

위 스크립트를 복사(AWS SSH에서 붙여넣기 어려운데) 해서 Ctrl+D 키를 입력해주면 생성이 된다.

아래 명령으로 권한설정과 서비스등록등등을 해줍시다.

그 다음 vpnserver를 켭시다.

Lightsail 방화벽설정

SoftEther VPN에 접속하기 위해 AWS Lightsail의 방화벽에서 TCP 5555포트를 풀어줍시다.
이거말고도 TCP 443, 992, 1194, 5555 UDP 1194, 500, 1701, 1723, 4500 등도 풀어야되는데 뭐 일단 풉시다.

아마존 라이트세일 우분투는 기본적으로 AWS에서 방화벽을 지원해선가, 우분투 기본 방화벽은 비활성화 된것같아보이네요.

AWS 라이트세일에서 SoftEther VPN 서버 구축 (1) – 서버생성

AWS Lightsail 에서 SoftEther VPN 서버 구축하기

AWS 라이트세일은 굉장히 저렴할 뿐만아니라, AWS 네트워크 자체도 품질이 괜찮기에 VPN을 써보면 어떨까 싶어서 글을 쓰게 되었다. 가 아니라 사실 누가 라이트세일에서 VPN서버가 구축이 안 된다고 하길래 왜 그런지 궁금해서 글을 쓰게 되었다. 실제로 KT쓰는 내가 금요일 밤 11시만 되면 핑이 100ms 이상 치솟거나 엄청난 패킷로스를 경험하는데, AWS 내부적으로 라우팅되는 해외망은 꽤나 쾌적한 것 같았다. (31ms 이내)

AWS Lightsail 에서 서버를 생성하자

AWS Lightsail를 가입하여 콘트롤 패널까지 접속하는 방법은 생략하겠다.
Lightsail 에 접속해서 서버를 생성한다.

Create instance 를 선택

서버 생성

서버 지역을 고르는데, 역시 가장 빠른 한국 지역(ap-norteast-2)을 선택…
별다른 용도가 있으면 일본이 가장 괜찮지만, 앞서 말하다시피 국내 – AWS Tokyo 리전간도 해외망이기 때문에 별로 좋진 않다. (평상시엔 남들보단 쾌적하긴한데 핑이 튀는걸 경험하는후부턴 영………)

운영체제는 본 글에선 Ubuntu 18.04 LTS 를 선택하겠다.  앞에선 CentOS 를 추천하더니 왜 이번엔 우분투냐?? 이 글을 보는 사람은 우분투를 선호할거라고 생각하기 때문이다. 별 다른이유는 없다. 글을 읽는 사람이 있긴할까? 나는 이글을 보면서 다른 운영체제를 쓸래! 인경우에는 본 문단을 보고 창을 닫는것이 좋다. 운영체제별로, 운영체제버전별로 설정하는방법이 달라지기 때문에 설정을 따라할 수 없어.

서버 스펙 선택

이렇게 되었으면, VPS 플랜을 선택하라고 한다. 돈이 없으니 난 가장 저렴한 3.5 달러의 머신을 생성해야지. VPN 서버를 혼자쓰거나 그러면 512MB서버로 충분하다고 생각한다.

서버가 생성되었다

메모리 구분 정리 : SO-DIMM? DDR3? DDR4? PC3? U? E? R?

메모리 구분 정리
지금 우리가 쓰는 램은 DDR SDRAM.

메모리 속도

10600 (1333MHz) – 삼성에서 10700으로 표기하는 경우가 있음
12800 (1600MHz)
14000 (1750MHz)
14900 (1866MHz)
17000 (2133MHz)
19200 (2400MHz)
21300 (2666MHz)
24000 (3000MHz)
25600 (3200MHz)

PC4-21300은 메모리대역폭이 21300MB/s 라고 생각하면 되나보다. 단순히 대역폭으로 속도를 생각하는건 크게 잘못짚은거다.

세대별 메모리 구분

DDR3 (PC3)

PC3-10600U

  • U 또는 안붙음 : Unbuffered / non-ECC Memory <일반PC메모리>
  • E : ECC (Error Correcting Code) Memory
    • 오류 수정 및 검출 기능을 지원
  • R : Registered (Buffered)
  • S : SO-DIMM (작음)
  • P : Parity Checking Memory
    • ECC 는 수정기능이 있는 반면, 오류 검출 기능만 지원
  • F, FB : Fully Buffered (다른것에 비해 규격이 다름)
    • 알아야 할 필요가 없어보인다.
  • P : 라고 써놓고 ECC Registered (REG/ECC) 인경우가 있다.

DDR4 (PC4)

PC4-2400T

  • 무표기 : Unbuffered non-ECC >> 일 수 있으나 아닐 수 도 있음 ㅋ
  • U : Unbuffered
  • ECC 혹은 E : ECC Memory
  • R : Registered (Buffered) 
  • T : 램타이밍에 의한 구분
  • V : 램타이밍에 의한 구분
  • N : 램타이밍에 의한 구분
  • L : 램타이밍에 의한 구분
  • M : 램타이밍에 의한 구분
  • N : 램타이밍에 의한 구분
  • J : 램타이밍에 의한 구분
  • K : 램타이밍에 의한 구분
  • JL : 램타이밍에 의한 구분
  • W : 램타이밍에 의한 구분
  • Y : 램타이밍에 의한 구분
  • AA : 램타이밍에 의한 구분
  • AC : 램타이밍에 의한 구분
  • … : 램타이밍에 의한 구분
  • P : ECC Unbuffered
  • -R : ECC Registered
  • -L : ECC Registered Low Voltage
  • -U : ECC Registered U-DIMM
  • -S : ECC Registered SO-DIMM

???????????????????????????????????????????

모르겠다. 그냥 램 제조사 홈페이지를 참조해라!!

크기별 메모리 구분

DIMM 일반 컴퓨터에 넣는 메모리
SO-DIMM 노트북에 넣는 메모리

이것말고도 다양하지만 중요한것만…
제조사별로 모델명을 다르게 부르는경우도 많으니깐 제각각이다~

사실 잘 모르겠다 이 정보를 믿거나 말거나-

AWS Cloud9 (C9) IDE 에서 홈 루트디렉토리 변경하기

C9 IDE 에서 홈 디렉토리를 변경할 수 없다. ㅋㅋ

C9 홈페이지에서 Environment Directory를 / 로 변경하고,
루트 계정으로 /.c9 폴더를 생성 후 해당 계정(ec2-user등)의 소유자를 주고 c9 설치하면 해결된다.