서버 42

express.js 를 다른 포트에서 실행시키기

express.js 앱이 실행되고 있는 서버에서 테스트를 위해 다른 앱을 실행하려하면, 포트를 바꿔준 상태에서는 당연히 포트가 충돌이 납니다. 그렇다고 테스트를 위한 코드이지만, 포트 관련된 코드를 수정하기는 싫을때 어떻게 임시로 포트를 바꿔서 실행 할 수 있을까요? 매우 간단합니다. 아래와 같이 포트번호를 npm start 앞에만 붙여 주면 됩니다. > PORT=[원하는포트번호] npm start express.js 앱의 기본 포트는 3000 번인데, 위와 같이 실행하면 소스코드나 환경설정등을 바꾸지 않고도 원하는 포트 번호로 실행이 됩니다. 예를 들어 3500 포트로 실행을 하고 싶다면, PORT=3500 npm start 이게 끝입니다. (이미 실행되고 있는 3000포트를 사용하는 프로그램이 있어서..

웹에서 아이폰 또는 안드로이드 폰으로 문자 보내도록 링크 만들기

웹 페이지를 통해 스마트폰이 문자를 보내도록 할 수 있을까요? 흔한 경우는 아니지만, 필요할 경우가 있습니다. 방법을 찾아보니 역시 있더군요. 안드로이드와 iOS 모두 가능하지만 약간의 차이가 있어서 단말기 OS 구분은 해야 할 것 같습니다. 방법은, URL Scheme을 사용하면 가능합니다. 그 방법을 알아보죠. 이 글에서는 여러분이 이미 웹서버를 구동하고 있다고 가정합니다. 방법은 간단합니다. 원하는 html 에 아래와 같이 링크를 통해 사용자가 문자 메시지를 보내도록 할 수 있습니다. 1. 안드로이드의 경우 안드로이드는 제가 찾은 방법으로는 단일 폰으로 메시지를 보내는것 까지만 성공 했습니다. HTML 에 아래와 같은 방법으로 문자 메시지를 보내는 링크를 추가할 수 있습니다. 2. 아이폰의 경우 아..

서버/Web & Blog 2019.03.03

[node.js] PM2 에서 express.js 앱을 npm 으로 실행하기

테스트 환경node.js v10.15.0 express.js v4.16.0pm2 v3.2.9 단순한 단일 노드 프로그램은 node js파일명 으로 실행하지만, 일반적으로 express.js 앱은 npm start 으로 실행합니다. 그러면, pm2를 사용할 때는 어떻게 실행해야 할까요? 아래와 같이 pm2 실행 명령에 npm -- start 를 붙여주면 됩니다. > pm2 start --name "사용할 앱 이름" npm -- start -- 뒤에 띄워 쓰기에 유의해 주세요. --name은 붙여 쓰고, -- start 사이에는 공백이 있습니다. 아래는 실제 사용의 예입니다. 간단하죠? 자꾸 잊어버리긴 하지만요. (C) 2019 WingsNote.com (무단 복제 및 게시 금지, 링크 허용)

여러 회사 AWS CodeCommit 계정을 하나의 맥에서 사용하기

테스트 환경 OS: MacOS X MohaveGit 원격 저장소 : AWS CodeCommit 접속 방법 : SSH 개발하는 PC 한대에서 여러 업체 또는 개인 프로젝트를 하는 경우가 많습니다. 그러다보면, Git 원격 저장소도 여러 곳이 되는 경우가 생기는데요, 원격 저장소 주소가 모두 다르다면 큰 문제가 없겠지만, 여러 필드가 한곳의 원격 저장소 서비스를 사용할 수도 있습니다. 저의 경우는 AWS CodeCommit 을 사용하여 Git 리포지토리를 보관하는데, 문제는 여러 도메인이 AWS CodeCommit을 사용합니다. 즉, 현재 상황만 해도 제 사업장의 개인 프로젝트, 협업 프로젝트, 외부 프로젝트 3곳이 모두 AWS CodeCommit을 사용해야 하는 상황입니다. AWS CodeCommit의 공..

AWS CodeCommit 으로 Git 소스코드 관리 4 - 리포지터리 만들기 및 Push

이제 다 왔습니다. 마지막으로 CodeCommit 에서 원격저장소 (리포지토리 - Repository)를 만들고 소스코드를 푸쉬해 보도록 합니다. 앞의 과정이 복잡한것 같으나 사실 정리해보면 별 내용은 아닙니다. 그리고 일단 한번 설정해 두면 자주 건드릴 일은 없습니다. 그럼 이제 실제로 필욜한 원격 저장소를 만들어 보죠. (1) AWS CodeCommit 리포지토리 생성 다시 AWS 콘솔에서 CodeCommit 을 찾아갑니다. (서비스 목록에서 찾거나, 서비스 검색에서 CodeCommit 입력) CodeCommit 콘솔에서 왼쪽 메뉴의 '리포지토리'를 클릭하면 오른쪽에 리포지토리 화면이 나옵니다. [리포지토리 생성]을 클릭합니다. 리포지토로 생성 화면이 나옵니다. 고유한 리포지토리 이름을 정해 줍니다...

AWS CodeCommit 으로 Git 소스코드 관리 3 - SSH 연결 설정

이제 AWS CodeCommit 에 연결하기 위해 MacOS 터미널에서 개인키 / 공개키를 생성하고, 공개키를 AWS 에 생성한 CodeCommit 에 사용할 사용자 계정에 등록해 보겠습니다. AWS 는 기본적으로 SSH 를 통해 연결할 때 직접 아이디와 패스워드를 입력받는 것이 아니라, 암호화 키 파일을 통해 로그인을 하게 되어 있습니다. 따라서 먼저 맥에서 (또는 윈도우등에서) RSA 개인키/공개키 쌍 파일을 만든 뒤에 공개키를 AWS 에 등록하는 방법으로 로그인하게 됩니다. 이제 그 방법을 알아보겠습니다. (1) MacOS 에서 RSA 개인키/공개키 쌍 파일 만들기 먼저 MacOS 에서 터미널을 엽니다. 터미널에서 "/Users/[사용자명]/.ssh" 디렉터리로 이동합니다. > cd ~/.ssh s..

AWS CodeCommit 으로 Git 소스코드 관리 2 - IAM 계정 설정

이제 실제로 AWS CodeCommit 을 사용하기 위한 준비를 해 보겠습니다. 코드커밋을 사용하기 위해서, 계정에 사용 권한이 필요합니다. 물론 AWS 루트 계정으로 HTTPS 를 통한 연결을 할 수 있지만, 보안상 위험을 피하기 위해 AWS는 IAM 을 이용해 권한을 제한한 사용자 계정을 따로 만들거나 이미 있는 사용자 계정에 권한을 주는 식으로 관리할 것을 권장합니다. 더군다나 이 연재에서는 SSH 를 통한 연결을 할 것인데, 루트 사용자 계정으로는 SSH 연결을 할 수 없습니다. 말하자면 루트 계정은 관리목적과 같이 필요한 경우에만 사용하라는 것이지요. 따라서, 여기서는 CodeCommit을 사용할 계정과 그룹을 하나씩 만들어 보도록 하겠습니다.(이미 만들어 놓은 그룹이나 사용자 계정이 있고 해당..

AWS CodeCommit 으로 Git 소스코드 관리 1 - 소개

테스트환경운영체제 : MacOS X Mojave (터미널 사용을 윈도에서는 비슷하게 쉘을 이용해 할 수 있습니다.)원격저장소 플랫폼 : AWS CodeComit (AWS 코드커밋)소스코드관리툴 : Git (깃) 접속 방법 : SSH 요즘은 Git 원격 저장소(Repository) 를 제공하는 서비스가 여럿 있습니다. 그중에 유명한 곳이 GitHub (깃허브) 나 GitLab (깃랩) 같은 곳이겠죠. 대체로 공개 프로젝트를 진행하는데는 문제가 없으나 비공개 프로젝트 (Private) 의 경우 어느 서비스를 사용할지 고민이 됩니다. 깃허브의 경우 최근에 무료 계정으로도 비공개 저장소를 제공하기 시작하여 선택지는 더 넓어진 것 같네요. 제 경우는 두가지 점을 보고 선택을 하였는데요, 첫번째는 비용이 많이 들지..

Amazon Linux 에서 메모리 스왑 파일 생성 (Amazon Lightsail)

현재 아마존 라이트세일의 가장 작은 모델에서 워드프레스를 사용하고 있습니다. (현재는 2개) 메모리가 작다보니 (512MB) mysql이 자꾸 죽는 현상이 발생하고 있습니다. (mysql 로그 파일을 보면 innodb에서 메모리 부족 에러가...) 물리 메모리를 늘리기 위해서는 플랜을 상향해야 하지만, 그만큼 비용이 증가하겠죠. 가벼운 서비스를 하는데 플랜을 상향하고 싶지는 않아, 스왑 메모리를 사용하도록 설정해 보겠습니다.(당연히 스왑 메모리는 (가상)디스크를 메모리로 사용하기 때문에 물리 메모리보다 느리지만, 그래도 SSD이니 예전 HDD에 비해서는 빠르지 않을까 싶습니다. 그리고 운영체제에서도 무작정 스왑 메모리를 RAM처럼 사용하는게 아니고 사용 빈도에 따라 영역 배치에 대한 최적화 조절을 할테니..

워드프레스에서 SFTP를 사용하여 업데이트와 플러그인 테마등을 설치 가능 하도록 하기

워드프레스에서 테마와 플러그인을 설치하거나 업데이트 설치를 시도하면, 워드프레스는 FTP 또는 FTP-S 계정을 요구합니다. 예를 들어 새로운 테마를 다운로드 받고 설치 하려고 하면... 이렇게 Connection Type 선택지가 FTP와 FTPS 밖에 없습니다. 그러나 AWS EC2나 아마존 라이트세일 아마존 리눅스 서버 인스턴스는 기본적으로 SSH만 지원되고 FTP와 SFTP는 따로 설치 및 설정하지 않으면 기본적으로 세팅되어 있지는 않습니다. 그러면 워드프레스에서 어떻게 SFTP를 사용할 수 있을까요? 이 글에서는 가장 간단한 방법인 SFTP 지원 플러그인을 설치해서 SFTP를 사용할 수 있도록 만들어 봅니다. 1. SSH SFTP Updater Support 다운로드 먼저 워드프레스 관리자 페이..