aws ec2 로 aws에 입문해보려고 한다.

 

 

 

1. 아래 사이트에 접속해주자

 

aws.amazon.com/ko/ec2/?nc2=h_ql_prod_fs_ec2&ec2-whats-new.sort-by=item.additionalFields.postDateTime&ec2-whats-new.sort-order=desc

 

아마존 클라우드 서버 호스팅 | Amazon Web Services

다양한 구매 모델 온디맨드, 스팟 인스턴스, Savings Plan과 같은 여러 가지 구매 모델을 제공합니다. 스팟 인스턴스를 사용하면 내결함성을 갖춘 워크로드 요금을 90%까지 절감할 수 있습니다. Saving

aws.amazon.com

 

 

 

시작하기 클릭

 

 

2. EC2 대시보드 창으로 넘어와지면 오른쪽 상단에 지역 선택을 해야한다

 

서울 선택

 

3. 인스턴스 시작

 

 

4. Amazone Machine Image (AMI) 선택

나는 ubuntu 18.04 버전을 선택했다.

 

사양을 선택할 수 있다.

 

여기서 시작하기를 누르면,

 

key를 생성해야한다. 이전에 인스턴스를 만들어서 키를 만든 기록이 있으면 그 키를 선택할 수 있지만 처음이니깐

새 키 페어 생성 를 선택하고, 이름을 지정 후 키 페어 다운로드 를 해준다.

다운로드 받은 키 파일은 한번 다운 후 다시 받을 수 없으니 잘 보관해주자.

다운로드 하고 인스턴스 시작하자.

 

5. ssh 접속

인스턴스 세부 정보

인스턴스 세부 정보에 퍼블릭 IPv4 주소가 있다. 이걸로 ssh 접속을 해보자.

 

MobaXterm

내가 주로 쓰는 ssh 클라이언트인 MobaXterm 으로 접속을 했다. 

host 는 아까 위에서 본 IPv4 주소, username 은 기본값으로 ubuntu 로 설정되어있다.

그리고 다운받은 key 를 private key 에 넣어서 접속해보자

 

 

성공적으로 접속되었다.

 

회사 메신저로 Mattermost(매터모스트)를 사용 중이다.

얼마 전 사원들 생일파티(...) 담당을 맡게되었는데 메신저에 생일파티 알람을 주면 어떨까 싶어서 찾아봤다.

 

github.com/jonathanwiesel/node-mattermost

 

jonathanwiesel/node-mattermost

a nodejs module for sending and receiving messages from Mattermost - jonathanwiesel/node-mattermost

github.com

위의 프로젝트를 이용했다.

일단 테스트를 위해 채널을 하나 새로 만들었다.

 

1. Hook URL 구하기

 

test channel 생성

 

Menu -> intergrations

작성 후 제일 아래에 Save 를 눌러준다.

3번째의 Channel 은 메세지 수신을 위해 사용하는 듯 한데.. 나중에 더 자세히 찾아봐야겠다.

 

 

해당 URL 이 hook url 이다. 다시 들어와서 보는것도 가능하니 막 어디 적어둘 필요는 없을 듯 하다.

 

 

2. NodeJS js 파일 작성하기

일단 npm 으로 상단의 git 프로젝트를 인스톨하자

npm install node-mattermost

 

//app.js
const Mattermost = require('node-mattermost');
const hookurl = json.hookurl; // 상단에서 구한 hook url
const mattermost = new Mattermost(hookurl);

// 프사 설정을 위해
function base64_encode(file) {
    var bitmap = fs.readFileSync(file);
    return bitmap.toString('base64');
}

mattermost.send({
  text: "생일 축하합니다",

  // 채널명을 입력해준다. 채널명이 한글이면 좀 다른데 아래에서 설명..
  channel: '#test',
  username: '생일축하 봇',
  // 프로필 사진을 지정해준다. 나는 같은 폴더에 있는 케이크 사진을 base64 형태로 추가했다 
  icon_url: 'data:image/png;base64,' + base64_encode('./public/img/cake.png'),

})

 

실행해보자

node app.js

테스트

 

 

3. 채널명이 한글일 때

 

{
    // ...
    channel : 'testz'
    // ...
}

 

 

우분투 서버에 리액트 앱을 올려놓으려고 

serve -l 1234 -s build

를 하고 http://[서버주소]:1234 를 접속하려는데

 

자꾸 "404 The requested path cloud not be found" 위에 있는 에러가 뜬다.. 분명 잘됐었는데.

알고보니 빌드를 새로하려고 build 폴더를 삭제했다가 빌드를 다시 안했더라

 

npm run-script build

로 react 다시 빌드하고 해결 ㅎㅎ;;

이미 리액트 프로젝트, 리포지토리가 있다는 가정하에 진행한다.

 

gh-pages 를 설치한다

npm install gh-pages --save-dev

 

package.json 파일에

"homepage" 를 추가한다

http://[사용자 ID].github.io/[리포지토리 이름]  
//package.json 

//....
  "homepage": "https://mika0203.github.io/Pathfinding-Algorithm-js/"

 

package.json 파일에 script 부분에 predeploy, deploy 를 추가한다

 

// package.json

"scripts": {
  //...
  "predeploy": "npm run build",
  "deploy": "gh-pages -d build"
}

 

저장하고,

npm run deploy

 

 

 

이제 github로 가보자

 

 

제일 아래로

 

누른 후 세이브하고 위에서 homepage 에 입력한 주소로 들어가면 

 

해당 주소에서 실행되는 나의 리액트 프로젝트를 확인할 수 있다.

'Frontend > React' 카테고리의 다른 글

[Nextjs] useEffect 가 2번 실행되는 문제  (6) 2022.06.07
[React] input 입력 시 콘솔 에러  (13) 2021.01.19

pm2 에 문제가 생겨 업데이트 후 사용하려니 저런 보안 오류가 뜬다.

 

 

 

 

 

PowerShell 을 관리자 권한으로 실행시키고

 

 

 

executionpolicy 를 입력하면

Restricted 가 나온다. 나는 이미 해서 Unrestricted 가 나오는 듯..

 

그 다음

set-executionpolicy unrestricted 입력하고 y 입력하여 설정을 변경한다.

 

 

----------------------------------------------------------------------------------------------------------------------

 

정상작동 된다.

+ Recent posts