서버 42

Amazon Lightsail 여러개의 워드프레스 사이트 설치 (1) - 인스턴스 생성

아마존 라이트세일 (Amazon Lightsail)은 아마존이 내놓은 일종의 가상서버 서비스입니다. 기존의 디지털오션의 VPC 서비스나, 호스팅 업체들의 가상 서버 서비스와 비슷하다고 보면 되겠네요. AWS 사용자들은 EC2 쓰면 되지 않겠냐고 생각 하겠지만... 어떤 서비스를 할 것인가에 따라 생각을 달리 할 수 있을 것 같습니다. 일단 일반적으로 크지 않은 웹 서버를 생각한다면, AWS의 EC2를 사용하는 것보다 비용이 훨씬 저렴합니다. 세팅하는 것도 훨씬 쉬운 편이고요. (내부적으로는 EC2를 사용하는 것 같습니다만...) 예를 들어, EC2의 t2.micro 인스턴스의 경우 무료 트래픽 기준이 데이터 전송 기준 월 1GB 이지만 (아마존은 수신은 무료입니다.) 라이트세일은 같은 t2.micro 수..

[node.js] 나의 node.js 코드 pm2로 실행 및 부팅시 자동실행 (우분투)

node.js로 프로그램을 만들면, 한가지 단점이 코드에 문제가 있거나 예외가 발생할 경우, 예외를 잡아 주지 않으면 프로그램이 죽어버린다는 점입니다. 그래서 많은 분들이 forever를 사용하여 node.js용 프로그램을 실행하고 있을 것입니다. (forever는 Keep Alive라는 특성을 지원해서 node.js 프로그램이 죽으면 다시 재실행시켜 주는 기능이 있습니다.) 그러나, 웹 검색을 해보니 forever를 대체할 수 있을 만한 프로그램으로 pm2라는 것이 있더군요. forever와 비교해서 지원하는 기능도 많고 텍스트 UI도 깔끔하여(비교 포스팅으로 http://devo.ps/blog/goodbye-node-forever-hello-pm2/ 참조), 이 포스팅에서는 pm2를 사용해 보도록 하..

[AWS의 기본 09] NGINX를 node.js의 프록시로 설정하기

이번에는 NGINX를 node.js의 프록시로 사용하는 방법을 살펴 봅니다. node.js의 알려지지 않은 보안 문제가 있을 수 있기 때문에 NGINX와 같은 웹서버를 앞단에 프록시 서버로 사용하는 것을 추천한다고 알려져 있지요. 그 방법을 살펴보겠습니다. [9] NGINX를 node.js의 프록시로 설정하기 지난 포스팅들에서 이미 EC2 인스턴스에 node.js와 NGINX를 설치는 했습니다만, 함께 사용해 보는 것은 처음인것 같습니다. 먼저 테스트를 위해 예제로 간단한 node.js 소스코드를 만들어 봅니다. (샘플일 뿐이므로 각자 원하는 대로 만들면 되겠네요.) 아래 내용을 홈디렉터리에 'test.js' 라는 이름으로 저장합니다. (샘플일 뿐이므로 원하는 디렉터리에 원하는 이름으로 저장해도 됩니다...

[AWS의 기본 08] EC2 인스턴스에 도메인 연결 (Route53)

지난 회에서는 AWS의 Elastic IP(이하 EIP)를 통해 고정 IP 주소를 획득하는 방법을 알아 보았습니다. 그러나 실제로 숫자로 이루어진 IP 주소로 접속하는 사람은 거의 없을 것입니다. 대부분은 사람이 기억하기 쉽고, 또한 IP 주소가 바뀌더라도 매핑만 바꾸어 주어 접속할 수 있도록 도메인 이름을 사용할 것입니다. 이번 포스팅에서는 EC2 인스턴스에 본인 소유의 도메인을 연결해 봅니다. 미리 여기에 사용할 자신의 도메인은 가지고 있어야 한다는 점을 미리 알려 드립니다. [8] EC2 인스턴스에 도메인 연결 (Route53) AWS에서 도메인을 연결하기 위해 사용하는 도메인 설정 서비스는 Route 53 이라고 부릅니다. Route 53은 일반적인 도메인 설정에 더해서 편리한 기능들을 제공합니다..

[AWS의 기본 07] Elastic IP (EIP) 고정 아이피 할당

지금까지는 EC2 인스턴스의 Pubic IP 를 통해 인스턴스에 접속 하였습니다. 그런데, 인스턴스의 Public IP는 고정된 IP 주소가 아니라 유동적인 IP 주소 입니다. 따라서, EC2 인스턴스를 STOP 한 후에 재시작 하게 되면 다른 IP 주소라 바뀌게 됩니다. 그렇기 때문에 기본 Public IP는 실제 서비스에서 사용하기가 어렵다고 볼 수 있습니다. (이는 우리가 보통 인터넷 서비스를 받을 때 사용하는 유동 IP와 같은 개념이라고 보면 되겠습니다.) 따라서 우리가 외부에서 안정적으로 접속하기 위해서는 고정 IP가 필요한데, 이 고정 IP를 AWS에서는 Elastic IP (엘라스틱 IP, 이하 EIP), 줄여서 EIP라고 부릅니다. 고정 아이피는 전세계적으로 부족한 자원이기 때문에, 보통 ..

[AWS의 기본 06] EC2 인스턴스에 NGINX 설치와 보안 그룹 설정

지난회에 이어 이번에는 경량 웹서버로 인기를 얻고 있는 NGINX를 EC2 인스턴스에 설치해 봅니다. 지금까지 만든 인스턴스의 OS가 우분투 리눅스이므로, 우분투에 설치하는 것과 같습니다. 다만, 지난번에 하지 않은 보안 그룹 설정을 이번 기회에 간단해 해봅니다. [06] EC2 인스턴스에 NGINX 설치와 보안 그룹 설정 NGINX는 Apache 웹서버와 같은 부류의 웹서버 프로그램입니다. 가볍고 빨라서 사용 빈도가 점점 늘어나고 있다고 하는군요. 아파치의 경우는 프로세스와 쓰레드 기반으로 처리를 하고, NGINX의 경우는 비동기 이벤트 방식으로 요청을 처리한다고 합니다. 특히 모바일 서비스쪽으로 많이들 쓴다고 합니다. 어쨌든 NGINX를 이전에 생성한 EC2 인스턴스에 설치해 보겠습니다. 먼저 NGI..

[AWS의 기본 05] EC2 인스턴스에 node.js 설치 (우분투)

이번 포스팅에서는 지난번에 생성한 EC2 인스턴스에 요즘 많이들 사용하고 있는 node.js를 설치해 보도록 하겠습니다. 이번에는 조금 번외적인 부분이기 때문에 node.js를 사용하고자 하는 경우가 아니라면 넘어가도 좋습니다. APM(Apache+PHP+MySQL) 설치는 인터넷 검색하면 자료가 많이 나오니 생략하고요, 저는 EC2 인스턴스 서버를 node.js와 nginx 구성으로 해보고자 합니다. node.js를 설치하는 방법은 몇가지가 있습니다. 우분투의 apt-get을 이용하는 방법, node.js 사이트에서 바이너리를 다운로드 받는 방법. node.js나 github를 통해 node.js의 소스코드를 다운로드 받아 직접 빌드하는 방법이 있죠. 여기서는 github를 통해 소스코드를 다운로드 받..

[AWS의 기본 04] EC2 인스턴스에 SSH로 접속하기

지난회에서는 EC2 인스턴스를 만들었습니다. 이제 만들어진 인스턴스에 SSH로 접속해 보도록 합니다. [4] EC2 인스턴스에 SSH로 접속하기 EC2 인스턴스에 SSH로 접속하는 것은 어렵지 않습니다. 일반적인 접속과 차이는 키파일(pem)만 입력하면 끝입니다. EC2의 안내대로 하기만 하면 됩니다. 먼저 EC2 콘솔에 들어갑니다. (AWS 관리자 콘솔에서 EC2 선택하면 됩니다.) 좌측, Instances를 선택하면, 우측에 인스턴들의 목록이 나타납니다. 접속할 인스턴스를 선택합니다. 하단 정보란에 보면, 중요한 것이 'Public DNS'와 'Public IP' 입니다. 이 둘중 하나의 주소로 접속하면 되는 겁니다. 상단의 [Connect]를 클릭합니다. 아래와 같이 팝업이 뜨는데, 바로 접속할 수..

[AWS의 기본 03] EC2 인스턴스 만들기

지난 시간까지 AWS의 계정을 만들고, 2중 암호로 로그인 보안을 강화하는 것 까지 살펴 보았습니다. 이제, AWS의 핵심 서비스라고 할 수 있는 EC2의 인스턴스를 생성해 보겠습니다. EC2는 가상의 컴퓨터(대부분의 목적이 서버이죠)를 만들고 관리하는 서비스라고 보면 되겠죠. VirtualBox나 VMWare, Paralles, Virtual PC 와 같은 소프트웨어를 사용해본 분들도 요즘은 많을 것이라고 생각합니다. 간단히 PC 내에서 가상의 PC를 만들 수 있는 프로그램들이죠. EC2도 비슷한 개념으로 가상의 컴퓨터를 만들어서 필요한 운영체제와 소프트웨어 상에서 필요한 서비스를 할 수 있다고 보면 되겠습니다. EC2에서 만드는 가상의 컴퓨터 하나를 인스턴스라고 부르는데, 우리가 쓰는 실제 컴퓨터와는..

[AWS의 기본 02] MFA로 계정 보안 강화하기

첫 글에서는 AWS의 계정을 만드는 방법을 살펴봤습니다. 계정을 만들었으면, 이제 계정 로그인 보안을 강화하는 방법을 알 필요가 있을것 같습니다. AWS에서 로그인 보안을 강화해야 하는 이유는 뭘까요? 우리가 인터넷 뱅킹이나 금융관련 거래를 할 경우 일반적으로 단순히 아이디와 비밀번호만 가지고 금융 거래를 할 수는 없지요. 아이디와 비밀번호는 노출되거나 풀릴 가능성이 있기 때문에, 잘못하면 소중한 자산이 엉뚱한데 이용될 수도 있기 때문이겠지요. AWS의 경우 (예약 인스턴스가 있기는 하지만) 기본적으로 사용한 만큼 과금되는 시스템입니다. 그런데, 요금을 살펴보면 알겠지만, 어떻게 사용하는가에 따라 어마어마한 비용이 청구 될 수도 있습니다. 만약에 누가 내 아이디와 비밀번호로 AWS에 접속해서 고사양의 인..