반응형

I earlier had this issue while installing. Checked with other threads too, but could not able to find a proper solution in my case.








Uncheck the Install MongoDB Compass option in the setup wizard. Worked for me.




For Windows 10, you will have to install MongoDB Compass separately. After install MongoDB, then download MongoDB Compass separately from here. For MongoDB Compass, make sure to select the correct Version (note: the Community Edition version is not the default version) and Platform to download. It should install successfully.




ref : https://stackoverflow.com/questions/49721421/mongodb-installation-error-mongodb-setup-wizard-ended-prematurely


반응형
반응형


제어판 -> Windows 방화벽


고급 설정 클릭


인바운드 규칙 클릭




우측 상단에 새 규칙 클릭


포트(O)를 선택하시고 다음 클릭

TCP, 특정 로컬 포트에 포트번호를 적고 다음 클릭


연결 허용을 선택 다음 클릭


다음 클릭


이름과 설명을 쓰시고 마침 클릭


인바운드 규칙에 새로운 규칙을 추가하신걸 확인하실 수 있습니다.


ref : http://j07051.tistory.com/392



반응형
반응형

현재 WIndows Server 2012 Standard를 사용하는데 IE에서 파일 다운로드시 "현재 보안 설정 때문에 이 파일을 다운로드할 수 없습니다"라고 뜨는데

이부분을 해결하려고 하면 로컬 보안 정책에서 어느것을 수정해주어야 하나요??






Internet Explorer의 보안 강화 구성 설정 또는 해제 절차


이 절차를 시작하기 전에 어떤 Internet Explorer 인스턴스도 실행 중이지 않는지 확인합니다. 그렇지 않으면 이 절차를 완료한 후 모든 Internet Explorer 인스턴스를 닫았다가 다시 열어야 합니다.

  1. 서버 관리자를 열고 이 로컬 서버 구성을 클릭하여 로컬 서버 구성 페이지를 엽니다.

  2. 속성 영역의 IE 보안 강화 구성 옆에 있는 사용을 클릭하여 Internet Explorer 보안 강화 구성대화 상자를 엽니다.

  3. 로컬 Administrators 보안 그룹의 구성원이 기본 클라이언트 구성에서 Internet Explorer를 사용하도록 허용하거나 사용하지 못하도록 제한하려면 관리자에서 사용 또는 사용 안 함을 클릭합니다.

  4. 다른 모든 그룹의 구성원이 기본 클라이언트 구성에서 Internet Explorer를 사용하도록 허용하거나 사용하지 못하도록 제한하려면 사용자에서 사용 또는 사용 안 함을 클릭합니다.

그 후에도  다운로드 불가능하다면,

Internet Explorer의 인터넷 옵션에서 보안 탭을 누르시고 사용자 지정에 가셔서 다운로드 항목에서 파일 다운로드 사용을 선택되어져있는지 확인 부탁드립니다.




ref : https://social.technet.microsoft.com/Forums/ko-KR/c0f21145-74e8-4c87-8874-1144ca7eceef/509524602050864-4943648260-2012-510605085749884-5402851068?forum=winserver2012ko

반응형
반응형
Gnome에서 한글 설정

다음과 같이 Korean 한글 설치

영문버전으로 설치 시 한글 설정

한글 폰트 설치
한글 관련 모든 패키지 설치
/etc/sysconfig/i18n 파일 수정
다음과 같이 적용
만약, 이 방법으로 문제 해결이 되지 않는다면 다음 내용 확인

font를 바탕으로 변경

fc-cache를 하지 않아서 font가 리스트에 나오지 않았다. 설정에 나오지 않는다면 이 명령을 실행해야 한다.
언어 설정 후, logout-login 한다.


ref : http://hasunjjang.blogspot.com/2015/04/centos-2013.html


반응형
반응형

리눅스 명령어를 이용한 시스템 모니터링 하기

시스템 성능 측정을 위한 항목에는 CPU, Memory, Disk, Traffic 등이 있습니다.
리눅스 환경에서 이런 리소스들을 확인 할 수 있는 다양한 명령어들을 지원하고 있는데요.
각각의 명령어들을 통해 시스템을 모니터링 하는 방법에 대해 알아봅시다.

uname

시스템과 커널의 정보를 확인할 수 있습니다.
저는 모든 정보를 확인하기 위하여 -a 옵션을 사용하였습니다.

20150903_uname

 

보여지는 순서는
Linux . localhost . 3.13.0-24-generic . #47-Ubuntu SMP Fri May 2 23:30:00 UTC 2014 . x8664 . x8664 . x86_64 . GNU/Linux
[커널명] [호스트명] [릴리즈정보] [커널버전] [머신하드웨어이름] [프로세서종료] [하드웨어플랫폼] [운영체제]
입니다.

참고 >>
uname --help
-a, --all
-s, --kernel-name print the kernel name
-n, --nodename print the network node hostname
-r, --kernel-release print the kernel release
-v, -kernel-version 커널 버전 출력
-m, --machine 머신 하드웨어 이름 출력
-p, --processor 프로세서 종류 또는 "unknown" 출력
-i,- -hardware-platform 하드웨어 플랫폼 또는 "unknown" 출력
-o, --operating-system 운영 체제 출력

ifconfig

시스템에 설정된 네트워크 인터페이스의 상태를 확인&변경 할 수 있습니다.

20150903_ifconfig

  • Eth0, Eth1 : 흔히 랜카드라고 불리는 유선 네트워크 인터페이스 입니다. 따라서 저는 랜카드가 2개!
  • Lo : 루프백 인터페이스로 자기자신과 통신하는데 사용하는 가상 장치입니다. IP가 127.0.0.1이라고 보이시나요?

IP주소는 서버에 하나씩 부여되는 것이 아니라 네트워크 인터페이스에 할당되기 때문에 각 네트워크 인터페이스마다 다른 IP주소를 가지고 있습니다.

  • HWaddr : 네트워크 인터페이스의 하드웨어 주소(MAC Address)
  • inetaddr : 네트워크 인터페이스에 할당된 IP 주소
  • Bcast : 브로드캐스트 주소
  • Mask : 넷마스크
  • MTU : 네트워크 최대 전송 단위(Maxium Transfer Unit)
  • RX packets : 받은 패킷 정보
  • TX packets: 보낸 패킷 정보
  • collision : 충돌된 패킷 수
  • Interrupt : 네트워크 인터페이스가 사용하는 인터럽트 번호
참고 >>

Ifconfig 명령어로는 private ip밖에 확인되지 않습니다.
공인아이피(Public IP) 확인하는 방법이 있을까요?
Curl을 설치후에 확인해 보세요.

curl ifconfig.me

top

윈도우의 작업관리자와 비슷한 기능을 하는 명령어입니다.
프로세스 작업 명령어로, 시스템 프로세스들의 CPU/Memory 점유율을 실시간으로 볼 수 있습니다.

현재 몇 개의 프로세스가 있는지, CPU의 자세한 사용률은 어떻게 되는지,
Memory와 Swap은 얼마나 사용하고 있는지를 확인할 수 있습니다.

20150903_top

 

CPU
  • us : 사용자가 사용중인 사용률
  • sy : 시스템이 사용중인 사용률
  • ni : 프로세스 우선순위를 기반으로 사용되는 사용률(사용자 공간에서 사용됨)
  • id : 아무일도 하지 않는 여유율
  • wa : 입출력을 기다리는 프로세스 사용률
  • hi : 하드웨어 인터럽트 사용률
  • si : 소프트웨어 인터럽트 사용률
  • st : 가상화 환경에서 손실률

User값이 높다면, 사용자 코드를 수행하는데 시간이 오래 걸린다면 내부적으로 계산을 많이 하고 있다는 것입니다.
System값이 높다면, 시스템에 의해 사용되고 있는 시간이 오래 걸린다면 프로세스들이 시스템 호출 또는 I/O가 많다고 할 수 있습니다.
idle의 값이 항상 0이라면 CPU를 100% 사용하고 있다는 것을 의미합니다. CPU를 계속사용하고 있는 프로세스를 찾아 적절하게 대응 할 필요가 있습니다.

PROCESS
  • PID : 프로세스 ID
  • USER : 프로세스를 실행 시킨 사용자 ID
  • PR : 프로세스의 우선순위
  • NI : NICE 값, 마이너스를 가지는 값이 우선순위가 높음
  • VIRT : 가상 메모리의 사용량(SWAP+RES)
  • RES : 현재 페이지가 상주하고 있는 크기
  • SHR : 가상 메모리 중 사용중인 메모리를 제외한 잔여 가상 메모리
  • S : 프로세스의 상태
  • %CPU : 프로세스가 사용하는 CPU의 사용율
  • %MEM : 프로세스가 사용하는 메모리의 사용율
  • TIME+ : 프로세스가 CPU를 사용한 시간
  • COMMAND : 실행된 명령어
참고 >>

프로세스목록을 원하는 특정 기준에 따라 정렬할 수 있을까요? top 실행화면에서 Shift 키와 영문자를 누르면 프로세스의 정렬 기준을 변경할 수 있습니다.

SHIFT + M 메모리 사용률 정렬 SHIFT + N PID 기준 정렬 SHIFT + P CPU 사용률 정렬 SHIFT + T 실행시간 기준 정렬 SHIFT + R 정렬 기준변경 (오름차순인 경우 내림차순으로, 내림차순인 경우 오름차순으로 변경)

free

메모리에 대한 정보를 확인 할 수 있습니다. 저는 Memory와 Swap에 대한 값의 총 합을 확인 하기 위하여 -t 옵션을 주었습니다.

20150903_free

 

Mem는 실제 메모리를, Swap은 일종의 가상메모리입니다.
Buffers는 일부 프로세스에 의해 발생한 임시 메모리입니다.
Cached는 기존에 실행된 프로그램들이 사용했던 메모리로 실행 중이거나 새로 시작될 프로그램들이 필요할 때 빠르게 재 사용할 수 있는 메모리 영역입니다.

Buffers와 Cached 둘 다 Free영역의 일부이므로 실제로는 2번째 줄에 보이는 364812가 실 여유메모리 즉 사용자가 사용가능한 메모리 입니다.
실제 사용률은 1번째 줄에 보이는 used – (buffers + cached)인 2번째 줄에 보이는 used값 인 것이지요.

참고 >>

옵션을 이용하여 단위 별로 출력하기

free -b # or –bytes show output in bytes free -k # or –kilo show output in kilobytes free -m # or –mega show output in megabytes free -g # or –giga show output in gigabytes

vmstat

시스템 작업, 하드웨어 및 시스템 정보를 확인 할 수 있습니다. 메모리, 페이징, 블록장치의 I/O, CPU상태 등을 볼 수 있습니다.

20150903_vmstat

Procs => 메모리가 읽어야 할 데이터의 수로 5이하가 좋다.

  • r : 현재 실행중인 프로세스의 수
  • b : 인터럽트가 불가능한 sleep 상태에 있는 프로세스의 수 (I/O 처리를 하는 동안 블럭 처리된 프로세스) 만약 b의 수치가 높은 경우라면 CPU가 계속 대기상태로 있다는 의미이므로 디스크I/O를 확인해 볼 필요가 있습니다.

Swap => 메모리가 가득 차 작업을 할 수 없을 때, 대기중인 작업을 넣어 두는 곳.

  • si(swap in) : 사용되고 있는 디스크메모리(스왑공간에 있는 데이터)가 해제되는 양(per sec)
  • so(swap out) : 물리적 메모리가 부족할 경우 디스크로부터 사용되는 메모리 양(per sec) 이 때, swap out이 지속적으로 발생한다면 메모리 부족을 의심 해 볼 수 있습니다. swap out값이 증가하면 메모리가 부족하다는 의미이므로 메모리를 늘려야 할 것 입니다. Swap out값은 0에 가까워야 좋고 초당 10블럭이하가 좋습니다. 그러나 swap필드의 값이 높다고 해도 free 메모리에 여유가 있다면 메모리가 부족한 것은 아니랍니다.

-s 옵션을 주면 메모리 통계 항목들을 확인할 수 있습니다.

20150903_vmstat-s

 

참고 >>

실시간으로 메모리 상태를 확인할 수 있습니다. 방법은? vmstat [delay [count] ]

vmstat 35# 3초 간격으로 모니터링 정보를 5개 출력하고 끝내라.

iostat

평균 CPU부하 와 디스크 I/O의 세부적인 내용을 확인 할 수 있습니다.

20150903_iostat

  • tps : 디바이스에 초당 전송 요청 건수
  • kB_read/s : 디바이스에서 초당 읽은 데이터 블록 단위
  • kB_wrtn/s : 디바이스에서 초당 쓴 데이터 블록 단위
  • kB_read : 디바이스에서 지정한 간격 동안 읽은 블록 수
  • kB_wrtn : 디바이스에서 지정한 간격 동안 쓴 전체 블록 수

더 자세한 정보를 확인하기 위해 -x옵션을 사용할 수 있습니다.

20150903_iostat-x

 

참고 >>

실시간으로 디스크 상태를 확인할 수 있습니다. 방법은? iostat [delay [count] ]

iostat 35# 3초 간격으로 모니터링 정보를 5개 출력하고 끝내라.

netstat

현재 시스템에 연결된 네트워크 상태, 라우팅테이블, 인터페이스 상태 등을 볼 수 있습니다.

20150903_netstat

2개의 영역으로 나누어져 보여집니다.
Active Internet connections : TCP, UDP, raw로 연결 된 목록만 보여집니다.
Active UNIX domain sockets : 도메인소켓으로 연결 된 목록만 보여집니다.

  • -n : 호스트명, 포트명을 lookup하지 않고(도메인으로 보이지 않고) IP, Port번호를 보여준다.
  • -a : 모든 네트워크상태를 보여준다.
  • -t : TCP 프로토콜만 보여준다.
  • -u : UDP 프로토콜만 보여준다.
  • -p : 해당 포트를 사용하는 프로그램과 프로세스ID(PID)를 보여준다.
  • -r : 라우팅 테이블 출력
  • -s : 프로토콜 별(IP, ICMP, TCP, UDP 등)로 통계를 보여준다
  • -c : 연속적으로 상태를 보여준다.
  • -l : 대기중인 소켓 목록을 보여준다.

State

  • 공백 : 연결되어 있지 않음
  • FREE : socket은 존재하지만 할당되어 있지 않다.
  • LISTENING : 연결요청에 대한 응답준비가 되어 있는 상태
  • CONNECTING : 연결이 막 이루어진 상태.
  • DISCONNECTING : 연결해제 되고 있는 상태
  • UNKNOWN : 알 수 없는 연결, 알려지지 않은 연결 상태
  • LISTEN : 연결가능하도록 daemon이 떠있으며 연결이 가능한 상태
  • SYS-SENT : 연결을 요청한 상태.
  • SYN_RECEIVED : 연결요구에 응답 후 확인메세지 대기중인 상태
  • ESTABLISHED : 연결이 완료된 상태
  • FIN-WAIT1 : 소켓이 닫히고 연결이 종료되고 있는 상태
  • FIN-WAIT2 : 로컬이 원격으로부터 연결 종료 요구를 기다리는 상태
  • CLOSE-WAIT : 종료 대기 중
  • CLOSING : 전송된 메세지가 유실되었음
  • TIME-WAIT : 연결종료 후 한동안 유지되어 있음
  • CLOSED : 연결이 완전히 종료
참고 >>

각 옵션들을 어떻게 사용하냐에 따라 다른 정보를 확인 할 수 있는데 유용하게 쓰이는 옵션들 알아 두시면 좋을 것 같습니다.

netstat -r # 서버의 라우팅 테이블 출력 netstat -na --ip # tcp/udp의 세션 목록 표시 netstat -na | grep ESTABLISHED | wc -l # 활성화된 세션수 확인 netstat -nap | grep :80 | grep ESTABLISHED | wc -l # 80포트 동시 접속자수 netstat -nltp # LISTEN 중인 포트 정보 표시

df

현재 디스크의 전체 용량 및 남은 용량을 확인 할 수 있습니다.

20150903_df

참고 >>
df --help -h : 용량을 읽기 쉽게 단위를 계산하여 보여준다. -T : 파일 시스템 종류와 함께 디스크 정보를 보여준다. --total : 전체 용량을 보여준다.

마치며

지금까지 시스템모니터링을 알아볼 수 있는 명령어들을 살펴보았습니다. 간단하게만 살펴보았는데도 명령어와 옵션값들이 많고 필요에 따라 적절한 옵션값을 이용하여 모니터링 하는 것이 쉬워 보이지는 않습니다. 이 때 필요한 것이 Whatap! 아닐까요? 웹&앱 기반 모니터링 툴로써 위에서 확인했던 다양한 성능지표(CPU/Memory/Disk/Traffic/Process/Log/DB까지!)들을 언제 어디서나 손쉽게 확인할 수 있습니다. 시스템에 이상이 생겼을 때 알림을 보내 사용자가 바로 인지할 수 있고 따라서 빠르게 대응 할 수 있습니다. 직관적이며 사용하기 편한 인터페이스로, 시스템 모니터링을 원한다면 Whatap을 사용해 보세요.



ref : http://tech.whatap.io/2015/09/03/linux-monitoring/


반응형
반응형





우분투에서 한글 사용에 대한 과정 정리


우분투에서 한글 사용에 대한 과정을 정리해 보면 이렇습니다.
https://plus.google.com/101028813073033149665/posts/GaVEW9GaTuk

1) 키보드 레이아웃
101/104 한국어 호환 키보드 여야 합니다.

2) 언어 패키지
영어와 한국어 패키지를 기본으로 설치해야 합니다.
language-pack-gnome-ko 와 language-pack-gnome-en

한글 입력만 하고 싶다면 굳이 설치하지 않아도 좋지만
보통 모든 사용 하는 기본 프로그램들이 이 언어 패키지 안에 포함되어 설치되기 때문에,
한글로 번역된 프로그램들을 이용하시고자 한다면
설치하세요( 일반 적인 사용자 들은 기본으로 설치하게 됩니다.)

언어 패키지가 잘못 설치된 경우에는 위의 한국어 영어 패키지만 기본으로 설치하고
필요로 하시는 언어 패키지는 별도로 설치하시면 됩니다.
$ sudo apt purge language-pack-*
$ sudo apt install language-pack-gnome-ko language-pack-gnome-en
$ sudo apt-get autoremove --purge 

기타 자주 쓰이는 프로그램들 중에 별도로 설치되는 언어 패키지들
firefox-locale-ko
thunderbird-locale-ko
libreoffice-l10n-ko

3) 한글 입력기
여러가지 입력기들이 있습니다.
dasom
nabi
ibus-hangul
uim-byeoru
fcitx-hangul
각자 취향에 맞는 입력기를 설치하고 이용하면 됩니다.
각 입력기에 따른 설정 도구들이 있습니다.
그곳에서, 한/영 키나, 한자 키를 지정해서 이용하게 되어 있습니다.
http://bagjunggyu.blogspot.kr/2015/09/1510-ubuntu-1510.html

여러 가지 한글 입력기 설정 방법
http://bagjunggyu.blogspot.kr/2015/04/ubuntu-1504.html  
그리고, 노트북을 이용하시는 분들이나,
혹은 특별한 키를 지정해서 이용하고자 하는 경우에는
'조합 키(Compose Key)'를 지정해서 이용하면 편리합니다.
맥북을 이용하는 경우에는 특히 유용합니다.

4) 입력기 지정 도구
사용할 입력기를 지정해주는 도구입니다.
$ sudo apt install im-config
$ im-config

또는,
이런 일련의 과정을 쉽게 할 수 있도록 도와주는 도구가
우분투의 언어 지원(Language Support)입니다.
$ sudo apt install language-selector-gnome
$ gnome-language-selector

5) 글꼴
혹시 한글이 제대로 나오지 않는 경우에는
글꼴을 설치해보세요
권장하는 기본 글꼴은 nanum 입니다.
$ sudo apt install fonts-nanum

콘솔을 주로 이용하는 사람들에게는
$ sudo apt install fonts-nanum-coding

기타 유명한 한글 글꼴
* fonts-noto-cjk
* fonts-unfonts

fonts-noto-cjk는 중국어와 일본어 글꼴에도 적용됩니다.


ref : http://bagjunggyu.blogspot.com/2016/03/blog-post.html


반응형
반응형


How To Install Node.js on Ubuntu 16.04






Introduction

Node.js is a JavaScript platform for general-purpose programming that allows users to build network applications quickly. By leveraging JavaScript on both the front- and back-end, development can be more consistent and designed within the same system.

In this guide, we'll show you how to get started with Node.js on an Ubuntu 16.04 server.

If you are looking to set up a production Node.js environment, check out this link: How To Set Up a Node.js Application for Production.

Prerequisites

This guide assumes that you are using Ubuntu 16.04. Before you begin, you should have a non-root user account with sudo privileges set up on your system. You can learn how to do this by completing steps 1-4 in the initial server setup for Ubuntu 16.04.

How To Install the Distro-Stable Version for Ubuntu

Ubuntu 16.04 contains a version of Node.js in its default repositories that can be used to easily provide a consistent experience across multiple systems. At the time of writing, the version in the repositories is v4.2.6. This will not be the latest version, but it should be quite stable and sufficient for quick experimentation with the language.

In order to get this version, we just have to use the apt package manager. We should refresh our local package index first, and then install from the repositories:

  • sudo apt-get update
  • sudo apt-get install nodejs

If the package in the repositories suits your needs, this is all you need to do to get set up with Node.js. In most cases, you'll also want to also install npm, which is the Node.js package manager. You can do this by typing:

  • sudo apt-get install npm

This will allow you to easily install modules and packages to use with Node.js.

Because of a conflict with another package, the executable from the Ubuntu repositories is called nodejsinstead of node. Keep this in mind as you are running software.

To check which version of Node.js you have installed after these initial steps, type:

  • nodejs -v

Once you have established which version of Node.js you have installed from the Ubuntu repositories, you can decide whether or not you would like to work with different versions, package archives, or version managers. Next, we'll discuss these elements along with more flexible and robust methods of installation.

How To Install Using a PPA

An alternative that can get you a more recent version of Node.js is to add a PPA (personal package archive) maintained by NodeSource. This will have more up-to-date versions of Node.js than the official Ubuntu repositories, and allows you to choose between Node.js v4.x (the older long-term support version, which will be supported until April of 2018), Node.js v6.x (supported until April of 2019), and Node.js v8.x (the current LTS version, supported until December of 2019).

First, you need to install the PPA in order to get access to its contents. Make sure you're in your home directory, and use curl to retrieve the installation script for your preferred version, making sure to replace 8.x with your preferred version string (if different):

  • cd ~
  • curl -sL https://deb.nodesource.com/setup_8.x -o nodesource_setup.sh

You can inspect the contents of this script with nano (or your preferred text editor):

  • nano nodesource_setup.sh

And run the script under sudo:

  • sudo bash nodesource_setup.sh

The PPA will be added to your configuration and your local package cache will be updated automatically. After running the setup script from nodesource, you can install the Node.js package in the same way you did above:

  • sudo apt-get install nodejs

To check which version of Node.js you have installed after these initial steps, type:

  • nodejs -v
Output
v8.10.0

The nodejs package contains the nodejs binary as well as npm, so you don't need to install npmseparately.

npm uses a configuration file in your home directory to keep track of updates. It will be created the first time you run npm. Execute this command to verify that npm is installed and to create the configuration file:

  • npm -v
Output
5.6.0

In order for some npm packages to work (those that require compiling code from source, for example), you will need to install the build-essential package:

  • sudo apt-get install build-essential

You now have the necessary tools to work with npm packages that require compiling code from source.

How To Install Using NVM

An alternative to installing Node.js through apt is to use a specially designed tool called nvm, which stands for "Node.js version manager". Rather than working at the operating system level, nvm works at the level of an independent directory within your home directory. This means that you can install multiple, self-contained versions of Node.js without affecting the entire system.

Controlling your environment with nvm allows you to access the newest versions of Node.js and retain and manage previous releases. It is a different utility from apt-get, however, and the versions of Node.js that you manage through it are distinct from the distro-stable version of Node.js available from the Ubuntu repositories.

To start off, we'll need to get the software packages from our Ubuntu repositories that will allow us to build source packages. The nvm script will leverage these tools to build the necessary components:

  • sudo apt-get update
  • sudo apt-get install build-essential libssl-dev

Once the prerequisite packages are installed, you can pull down the nvm installation script from the project's GitHub page. The version number may be different, but in general, you can download it with curl:

  • curl -sL https://raw.githubusercontent.com/creationix/nvm/v0.33.8/install.sh -o install_nvm.sh

And inspect the installation script with nano:

  • nano install_nvm.sh

Run the script with bash:

  • bash install_nvm.sh

It will install the software into a subdirectory of your home directory at ~/.nvm. It will also add the necessary lines to your ~/.profile file to use the file.

To gain access to the nvm functionality, you'll need to log out and log back in again, or you can source the ~/.profile file so that your current session knows about the changes:

  • source ~/.profile

Now that you have nvm installed, you can install isolated Node.js versions.

To find out the versions of Node.js that are available for installation, you can type:

  • nvm ls-remote
Output
... v8.5.0 v8.6.0 v8.7.0 v8.8.0 v8.8.1 v8.9.0 v8.9.1 v8.9.2 v8.9.3 -> v8.9.4 (Latest LTS: Carbon)

As you can see, the newest LTS version at the time of this writing is v8.9.4. You can install that by typing:

  • nvm install 8.9.4

Usually, nvm will switch to use the most recently installed version. You can explicitly tell nvm to use the version we just downloaded by typing:

  • nvm use 8.9.4

When you install Node.js using nvm, the executable is called node. You can see the version currently being used by the shell by typing:

  • node -v
Output
v8.9.4

If you have multiple Node.js versions, you can see what is installed by typing:

  • nvm ls

If you wish to default one of the versions, you can type:

  • nvm alias default 8.9.4

This version will be automatically selected when a new session spawns. You can also reference it by the alias like this:

  • nvm use default

Each version of Node.js will keep track of its own packages and has npm available to manage these.

You can have npm install packages to the Node.js project's ./node_modules directory by using the normal format. For example, for the express module:

  • npm install express

If you'd like to install it globally (making it available to the other projects using the same Node.js version), you can add the -g flag:

  • npm install -g express

This will install the package in:

~/.nvm/node_version/lib/node_modules/package_name

Installing globally will let you run the commands from the command line, but you'll have to link the package into your local sphere to require it from within a program:

  • npm link express

You can learn more about the options available to you with nvm by typing:

  • nvm help

Removing Node.js

You can uninstall Node.js using apt-get or nvm, depending on the version you want to target. To remove the distro-stable version, you will need to work with the apt-get utility at the system level.

To remove the distro-stable version, type the following:

  • sudo apt-get remove nodejs

This command will remove the package and retain the configuration files. These may be of use to you if you intend to install the package again at a later point. If you don’t want to save the configuration files for later use, however, then run the following:

  • sudo apt-get purge nodejs

This will uninstall the package and remove the configuration files associated with it. 
As a final step, you can remove any unused packages that were automatically installed with the removed package:

  • sudo apt-get autoremove

To uninstall a version of Node.js that you have enabled using nvm, first determine whether or not the version you would like to remove is the current active version:

  • nvm current

If the version you are targeting is not the current active version, you can run:

  • nvm uninstall node_version

This command will uninstall the selected version of Node.js.

If the version you would like to remove is the current active version, you must first deactive nvm to enable your changes:

  • nvm deactivate

You can now uninstall the current version using the uninstall command above, which will remove all files associated with the targeted version of Node.js except the cached files that can be used for reinstallment.

Conclusion

As you can see, there are a quite a few ways to get up and running with Node.js on your Ubuntu 16.04 server. Your circumstances will dictate which of the above methods is the best idea for your circumstance. While the packaged version in Ubuntu's repository is the easiest, the nvm method is definitely much more flexible.


ref : https://www.digitalocean.com/community/tutorials/how-to-install-node-js-on-ubuntu-16-04


반응형
반응형

How to Install and Configure VNC on Ubuntu 16.04


Introduction

VNC, or "Virtual Network Computing", is a connection system that allows you to use your keyboard and mouse to interact with a graphical desktop environment on a remote server. It makes managing files, software, and settings on a remote server easier for users who are not yet comfortable with the command line.

In this guide, we will be setting up VNC on an Ubuntu 16.04 server and connecting to it securely through an SSH tunnel. The VNC server we will be using is TightVNC, a fast and lightweight remote control package. This choice will ensure that our VNC connection will be smooth and stable even on slower internet connections.

Prerequisites

To complete this tutorial, you'll need:

  • An Ubuntu 16.04 Droplet set up via the Ubuntu 16.04 initial server setup tutorial, which includes having a sudo non-root user. Note that this tutorial can be completed using any size Droplet, but a VNC built on a smaller droplet may have more limits on functionality than a larger one.

  • A local computer with a VNC client installed that supports VNC connections over SSH tunnels. If you are using Windows, you could use TightVNC, RealVNC, or UltraVNC. Mac OS X users can use the built-in Screen Sharing program, or can use a cross-platform app like RealVNC. Linux users can choose from many options: vinagrekrdc, RealVNC, TightVNC, and more.

Step 1 — Installing the Desktop Environment and VNC Server

By default, an Ubuntu 16.04 Droplet does not come with a graphical desktop environment or a VNC server installed, so we'll begin by installing those. Specifically, we will install packages for the latest Xfce desktop environment and the TightVNC package available in the official Ubuntu repository.

On your server, install the Xfce and TightVNC packages.

  • sudo apt-get update
  • sudo apt install xfce4 xfce4-goodies tightvncserver

To complete the VNC server's initial configuration after installation, use the vncserver command to set up a secure password.

  • vncserver

You'll be prompted to enter and verify a password, and also a view-only password. Users who log in with the view-only password will not be able to control the VNC instance with their mouse or keyboard. This is a helpful option if you want to demonstrate something to other people using your VNC server, but isn't necessary.

Running vncserver completes the installation of VNC by creating default configuration files and connection information for our server to use. With these packages installed, you are now ready to configure your VNC server.

Step 2 — Configuring the VNC Server

First, we need to tell our VNC server what commands to perform when it starts up. These commands are located in a configuration file called xstartup in the .vnc folder under your home directory. The startup script was created when you ran the vncserver in the previous step, but we need modify some of the commands for the Xfce desktop.

When VNC is first set up, it launches a default server instance on port 5901. This port is called a display port, and is referred to by VNC as :1. VNC can launch multiple instances on other display ports, like :2:3, etc. When working with VNC servers, remember that :X is a display port that refers to 5900+X.

Because we are going to be changing how the VNC server is configured, we'll need to first stop the VNC server instance that is running on port 5901.

  • vncserver -kill :1

The output should look like this, with a different PID:

Output
Killing Xtightvnc process ID 17648

Before we begin configuring the new xstartup file, let's back up the original.

  • mv ~/.vnc/xstartup ~/.vnc/xstartup.bak

Now create a new xstartup file with nano or your favorite text editor.

  • nano ~/.vnc/xstartup

Paste these commands into the file so that they are performed automatically whenever you start or restart the VNC server, then save and close the file.

~/.vnc/xstartup
#!/bin/bash xrdb $HOME/.Xresources startxfce4 &


위 구문을 수행해야 화면에 폴더들이 제대로 보임


The first command in the file, xrdb $HOME/.Xresources, tells VNC's GUI framework to read the server user's .Xresources file. .Xresources is where a user can make changes to certain settings of the graphical desktop, like terminal colors, cursor themes, and font rendering. The second command simply tells the server to launch Xfce, which is where you will find all of the graphical software that you need to comfortably manage your server.

To ensure that the VNC server will be able to use this new startup file properly, we'll need to grant executable privileges to it.

  • sudo chmod +x ~/.vnc/xstartup

Now, restart the VNC server.

  • vncserver

The server should be started with an output similar to this:

Output
New 'X' desktop is your_server_name.com:1 Starting applications specified in /home/sammy/.vnc/xstartup Log file is /home/sammy/.vnc/liniverse.com:1.log

Step 3 — Testing the VNC Desktop

In this step, we'll test the connectivity of your VNC server.

First, we need to create an SSH connection on your local computer that securely forwards to the localhost connection for VNC. You can do this via the terminal on Linux or OS X with following command. Remember to replace user and server_ip_address with the sudo non-root username and IP address of your server.

  • ssh -L 5901:127.0.0.1:5901 -N -f -l username server_ip_address

If you are using a graphical SSH client, like PuTTY, use server_ip_address as the connection IP, and set localhost:5901 as a new forwarded port in the program's SSH tunnel settings.

Next, you may now use a VNC client to attempt a connection to the VNC server at localhost:5901. You'll be prompted to authenticate. The correct password to use is the one you set in Step 1.

Once you are connected, you should see the default Xfce desktop. It should look something like this:



You can access files in your home directory with the file manager or from the command line, as seen here:

Step 4 — Creating a VNC Service File

Next, we'll set up the VNC server as a systemd service. This will make it possible to start, stop, and restart it as needed, like any other systemd service.

First, create a new unit file called /etc/systemd/system/vncserver@.service using your favorite text editor:

  • sudo nano /etc/systemd/system/vncserver@.service

Copy and paste the following into it. Be sure to change the value of User and the username in the value of PIDFILE to match your username.

/etc/systemd/system/vncserver@.service
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
[Unit]
Description=Start TightVNC server at startup
After=syslog.target network.target
 
[Service]
Type=forking
User=sammy
PAMName=login
PIDFile=/home/sammy/.vnc/%H:%i.pid
ExecStartPre=-/usr/bin/vncserver -kill :%i > /dev/null 2>&1
ExecStart=/usr/bin/vncserver -depth 24 -geometry 1280x800 :%i
 
ExecStop=/usr/bin/vncserver -kill :%i
 
[Install]
WantedBy=multi-user.target


Save and close the file.

Next, make the system aware of the new unit file.

  • sudo systemctl daemon-reload

Enable the unit file.

  • sudo systemctl enable vncserver@1.service

The 1 following the @ sign signifies which display number the service should appear over, in this case the default :1 as was discussed above. 
Stop the current instance of the VNC server if it's still running.

  • vncserver -kill :1

Then start it as you would start any other systemd service.

  • sudo systemctl start vncserver@1

You can verify that it started with this command:

  • sudo systemctl status vncserver@1

If it started correctly, the output should look like this:

Output
vncserver@1.service - TightVNC server on Ubuntu 16.04
   Loaded: loaded (/etc/systemd/system/vncserver@.service; enabled; vendor preset: enabled)
   Active: active (running) since Mon 2016-04-25 03:21:34 EDT; 6s ago
  Process: 2924 ExecStop=/usr/bin/vncserver -kill :%i (code=exited, status=0/SUCCESS)

...

 systemd[1]: Starting TightVNC server on Ubuntu 16.04...
 systemd[2938]: pam_unix(login:session): session opened for user finid by (uid=0)
 systemd[2949]: pam_unix(login:session): session opened for user finid by (uid=0)
 systemd[1]: Started TightVNC server on Ubuntu 16.04.

Conclusion

You should now have a secured VNC server up and running on your Ubuntu 16.04 server. Now you'll be able to manage your files, software, and settings with an easy-to-use and familiar graphical interface


ref : https://www.digitalocean.com/community/tutorials/how-to-install-and-configure-vnc-on-ubuntu-16-04


반응형
반응형

Unix/Linux 디스크 용량 확인 (df/du)



디스크 용량을 확인하는 명령어들이다. 


  df : 디스크의 남은 용량을 확인 

df -k : 킬로바이트 단위로 현재 남은 용량을 확인

df -m : 메가바이트 단위로 남은 용량을 왁인 

df -h : 보기 좋게 보여줌

df . : 현재 디렉토리가 포함된 파티션의 남은 용량을 확인






  du : 현재 디렉토리에서 서브디렉토리까지의 사용량을 확인 

du -a : 현재 디렉토리의 사용량을 파일단위 출력

du -s : 총 사용량을 확인

du -h : 보기 좋게 바꿔줌 

du -sh * : 한단계 서브디렉토리 기준으로 보여준다. 


* 의 있고 없고의 차이 




http://ra2kstar.tistory.com/135

반응형
반응형

Tutorial: Setting Up Node.js on an Amazon EC2 Instance

A common scenario for using Node.js with the SDK for JavaScript is to set up and run a Node.js web application on an Amazon Elastic Compute Cloud (Amazon EC2) instance. In this tutorial, you will create a Linux instance, connect to it using SSH, and then install Node.js to run on that instance.

Prerequisites

This tutorial assumes that you have already launched a Linux instance with a public DNS name that is reachable from the Internet and to which you are able to connect using SSH. For more information, see Step 1: Launch an Instance in the Amazon EC2 User Guide for Linux Instances.

You must also have configured your security group to allow SSH (port 22), HTTP (port 80), and HTTPS (port 443) connections. For more information about these prerequisites, see Setting Up with Amazon EC2 in the Amazon EC2 User Guide for Linux Instances.

Procedure

The following procedure helps you install Node.js on an Amazon Linux instance. You can use this server to host a Node.js web application.

To set up Node.js on your Linux instance

  1. Connect to your Linux instance as ec2-user using SSH.

  2. Install the current version of node version manager (nvm) by typing the following at the command line to install version 33.8.

    curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.8/install.sh | bash

    We will use nvm to install Node.js because nvm can install multiple versions of Node.js and allow you to switch between them. See the nvm repo on GitHub for the current version to install.

  3. Activate nvm by typing the following at the command line.

    . ~/.nvm/nvm.sh
  4. Use nvm to install the version of Node.js you intend to use by typing the following at the command line.

    nvm install 6.11.5

    To install the latest LTS (long-term-support) release of Node.js, type the following at the command line.

    nvm install --lts

    Installing Node.js also installs the Node Package Manager (npm) so you can install additional modules as needed.

  5. Test that Node.js is installed and running correctly by typing the following at the command line.

    node -e "console.log('Running Node.js ' + process.version)"

    This should display the following message that confirms the installed version of Node.js running.

    Running Node.js v6.11.5


Creating an Amazon Machine Image

After you install Node.js on an Amazon EC2 instance, you can create an Amazon Machine Image (AMI) from that instance. Creating an AMI makes it easy to provision multiple Amazon EC2 instances with the same Node.js installation. For more information about creating an AMI from an existing instance, see Creating an Amazon EBS-Backed Linux AMI in the Amazon EC2 User Guide for Linux Instances.

Installing Node.js on Enterprise Linux

For instructions on how to install Node.js on any Red Hat® Enterprise Linux® / RHEL, CentOS and Fedora or other distributions, see the following Node.js documentation at https://nodejs.org/en/download/package-manager/.





Hello world 예제

기본적으로 이 앱은 여러분이 작성할 수 있는 가장 간단한 Express 앱일 것입니다. 이 앱은 하나의 파일로 된 앱이며 Express 생성기를 통해 얻게 되는 앱과는 같지 않습니다. (이 예제와 달리 Express 생성기를 통해 얻게 되는 앱은 다양한 목적을 위한 여러 JavaScript 파일, Jade 템플리트 및 하위 디렉토리를 포함하는 전체 앱에 대한 스캐폴딩을 작성합니다.)

먼저, myapp이라는 이름의 디렉토리를 작성한 후 이 디렉토리로 이동하여 npm init를 실행하십시오. 이후 설치 안내서에 따라 express를 종속 항목으로서 설치하십시오.

myapp 디렉토리에 app.js라는 이름의 파일을 작성한 후 다음과 같은 코드를 추가하십시오.



1
2
3
4
5
6
7
8
9
10
11
var express = require('express');
var app = express();
 
app.get('/'function (req, res) {
  res.send('Hello World!');
});
 
app.listen(3000function () {
  console.log('Example app listening on port 3000!');
});
 




앱은 서버를 시작하며 3000번 포트에서 연결을 청취합니다. 앱은 루트 URL(/) 또는 라우트에 대한 요청에 “Hello World!”로 응답합니다. 다른 모든 경로에 대해서는 404 Not Found로 응답합니다.

req(요청) 및 res(응답)는 Node가 제공하는 동일한 오브젝트이며, 따라서 req.pipe()req.on('data', callback) 그리고 Express의 관여가 필요 없는 다른 모든 항목을 호출할 수 있습니다.

다음의 명령을 이용하여 앱을 실행하십시오.


$ node app.js





ref : https://docs.aws.amazon.com/ko_kr/sdk-for-javascript/v2/developer-guide/setting-up-node-on-ec2-instance.html

ref : http://expressjs.com/ko/starter/hello-world.html

반응형
반응형

viertualbox 에서 네트웍 설정을 아래처럼 바꿔준 다음





우분투에서 

ip addr show


로 ip 를 알아 볼 수 있고 그 중에서


inet 211.225.40.81/25


이 ip 로  window 쪽 브라우저에서  우분투 nodejs 서버 in virtualbox    로 접속



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
xxxxx@xxxxx-VirtualBox:~$ ip addr show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
 
2: enp0s3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/ether 08:00:27:c6:16:1d brd ff:ff:ff:ff:ff:ff
    inet 211.225.40.81/25 brd 211.225.40.127 scope global dynamic noprefixroute enp0s3
       valid_lft 3365sec preferred_lft 3365sec
    inet6 fe80::3eec:9e3b:1fcb:c723/64 scope link noprefixroute 
       valid_lft forever preferred_lft forever
 
3: enp0s8: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc fq_codel state DOWN group default qlen 1000
    link/ether 08:00:27:20:7c:02 brd ff:ff:ff:ff:ff:ff
    inet6 fe80::918:f04e:bfb8:4621/64 scope link noprefixroute 
       valid_lft forever preferred_lft forever
4: enp0s9: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc fq_codel state DOWN group default qlen 1000
    link/ether 08:00:27:85:0f:a1 brd ff:ff:ff:ff:ff:ff
    inet6 fe80::8d6f:592b:c08c:f10f/64 scope link noprefixroute 
       valid_lft forever preferred_lft forever
 



반응형
반응형


1. 먼저 일반->고급-> 클립보드 공유와 드래그 앤 드롭을 양방향으로 세팅





그다음 저장소->컨트롤러IDE->iso 이미지를 VBoxGuestAdditions.iso 로 변경 해준 다음







파일 창에서 VBox_CAs_5.2.12 를 클릭하면 왼쪽 상단에 '프로그래 실행'  버튼이 보이게 되는데 이것을 눌러 실행한다음






현재 상태 저장하고 난 이후 , 다시 시작하면 복붙이 됨






ref : https://www.youtube.com/watch?v=_0V2AMAcB5s


반응형
반응형




  1. https://code.visualstudio.com/  에서 ubuntu 버전 vs code  설치
  2. sudo dpkg -i code_1.......deb   실행하여 vs code 설치
  3. vnc 를 통해 vs code 실행 또는 
    code  명령어로 터미널에서 실행이 가능



그런데 실행이 안되는 경우 아래 한줄 실행 하면 vs code 가 실행됨




I've installed vscode 1.0 on ubuntu 14.4 LTS. It works fine if I log in locally with unity desktop and type the "code" command in the terminal.

However, when I rdp into the box I have to use xfce4 desktop because xrdp apparently doesn't work with unity, and when I try to launch it from the command line there I get no errors in the terminal but the UI never appears.

I did previously install an older version of vscode and did not uninstall that prior to installing 1.0 in case that could be a factor.

when I type

code --version

it correctly reports 1.0.0

anyone have any ideas to solve this? I really want to be able to work using rdp from my windows 10 machine

UPDATE: this problem seems to only occur using rdp, if I login locally with xfce4 it works as expected just as with unity desktop. My ubuntu box an intel nuc5ppyh with latest bios, I think maybe code is launching on a not visible display output. Previously the box was configured to mirror to an hdmi output at I use this also connected to a tv. I've tried disabling the hdmi output from the bios and messing around with xrandr but still cannot get it working over rdp. I'm not a linux expert but still think it might actually be loading code in a non visible display output but not sure how to troubleshoot the problem



The suggested command from the second link above helps:

sudo sed -i 's/BIG-REQUESTS/_IG-REQUESTS/' /usr/lib/x86_64-linux-gnu/libxcb.so.1
  • This single fix allowed me to run vscode on my AWS instance over xrdp without any other changes. – steviebJul 7 '16 at 20:37


works on my ubuntu 14.04, thanks!! – sunhs May 24 '17 at 6:42

works for me on Ubuntu Server LTS 16 – RandomClown Mar 15 at 22:22



This works fine, I am using Ubuntu 16.04 XRDP:

sudo sed -i 's/BIG-REQUESTS/_IG-REQUESTS/' /usr/lib/x86_64-linux-gnu/libxcb.so.1











ref : https://www.youtube.com/watch?v=uYE0XrM-VZA

ref : https://stackoverflow.com/questions/36694941/visual-studio-code-1-fails-to-launch-on-ubuntu-using-xrdp

반응형
반응형


먼저 vnc 설치




RealVNC 무료버전은 업데이트된지 너무 오래되었고, 더이상 업데이트되지도 않을 것 같아 대체 프로그램을 생각함.

VNC는 현재 난립한 상태로 보이며 종류가 엄청 많다.

대략, UltraVNC, TightVNC, TigerVNC 정도 테스트 해봤고 이중 TigerVNC를 사용하기로 했다.

UltraVNC는 파일전송이 가능해 매력적이었으나, 사용하는데 좀 무겁고 느렸음

아직 모든 VNC는 한글입력에 문제있음. 소스수정을 하면 되나, 그러긴 싫다.



이하 테스트를 위해 이곳저곳을 둘러보며 정리했던 내용


TigerVNC 기능점검: 파일전송, 원격지 copy/paste, 속도, 안정성, 그래픽 민첩성



Virtual Network Computing (VNC) 비교



원문: http://www.dbuggr.com/milly/vnc-viewer-comparison-tightvnc-ultravnc-realvnc/


RealVNC: http://www.realvnc.com - free버전만 무료

최초개발자가 작성하여 시장에서 가장 오래 사용됨.

무료버전은 다른 무료VNC에 비해 기능이 떨어지고, 개발이 더이상 진행되는것 같지 않음

상용화의 목적이 강해 대략 좋지 않음



TightVNC: http://www.tightvnc.com - 완전 무료

서버-클라이언트간 VNC 압축 방식을 개선

RealVNC의 대안으로 좋으나, 그래픽과 성능이 가끔 병맛이 됨

로컬-원격지간 복사/붙여넣기를 지원

개발이 활발함



UltraVNC: http://www.uvnc.com - 완전 무료

기존 VNC에 파일전송, 채팅 기능을 추가

위의 2 VNC보다 빠르며, 향상된 그래픽을 제공하고 파일전송과 채팅을 지원함

로컬-원격지간 복사/붙여넣기를 지원



TigerVNC: http://tigervnc.org - 위 3개를 아우르는 차세대(?) VNC



tigervnc > realvnc > tightvnc > ultravnc > turbovnc(?) > winvnc


realvnc: 속도

tightvnc, ultravnc: 파일전송, 로컬-원격지간 복사/붙여넣기 지원



기타

tigervnc: realvnc의 변종으로, tightVNC의 기능중 많은 부분을 흡수

turbovnc

winvnc









먼저 크롬때문에 apt-get install 이 아래 에러와 함께  설치가 안된다면 

google-chrome-stable : Depends: libappindicator1 but it is not going to be installed

sudo apt-get update

sudo apt-get -f install







First install autocutsel.

Now, you need to modify the file ~/.vnc/xstartup.

Add the following lines to it:

1
2
export XKL_XMODMAP_DISABLE=1
autocutsel -fork

The file finally looks like this:

1
2
3
4
5
6
#!/bin/sh
xrdb $HOME/.Xresources
xsetroot -solid grey
export XKL_XMODMAP_DISABLE=1
autocutsel -fork
/etc/X11/Xsession

You may need to install autocutsel



First install autocutsel (sudo apt-get install autocutsel)

Then open your /home/pi/.vnc/xstartup (nano /home/pi/.vnc/xstartup) and put autocutsel -forkon it like this:

1
2
3
4
5
6
7
8
9
10
#!/bin/sh
 
xrdb $HOME/.Xresources
xsetroot -solid grey
autocutsel -fork
#x-terminal-emulator -geometry 80x24+10+10 -ls -title "$VNCDESKTOP Desktop" &
#x-window-manager &
# Fix to make GNOME work
export XKL_XMODMAP_DISABLE=1
/etc/X11/Xsession


Then it will work after restart of the vnc server

To Stop VNC Server:

vncserver –kill :1 (pick your display)

To Start VNC Server:

vncserver :1 –geometry 1024x600 –depth 24





autocutsel 다운

*Download

This software is released under the GNU GPL.

*News






ref : https://m.blog.naver.com/PostView.nhn?blogId=myunggyu&logNo=60136003809&proxyReferer=https%3A%2F%2Fwww.google.co.kr%2F

ref: https://askubuntu.com/questions/787725/ubuntu-16-google-chrome-stable-depends-libappindicator1-but-it-is-not-going

ref : https://blog.droidzone.in/2015/04/11/allow-copy-and-paste-between-tightvnc-server-and-client/

ref : https://www.nongnu.org/autocutsel/



반응형
반응형

Open a terminal and write-

  1. cd /tmp
  2. wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb
  3. sudo dpkg -i google-chrome-stable_current_amd64.deb
  4.  

The 32-bit version is no longer available.

If you encounter any errors simply use

  1. sudo apt-get -f install
  2.  

To run it from terminal use google-chrome or hit the super key and search Google or Chrome









ubuntu 16.04 에서 chrome 설치하기.


인프런 강의를 하나 듣기 시작했다. 크롤링을 한번 해보고 싶었는데, 막상 시작을 하려고 하니 어디서 시작을 해야할지 감이 오지 않았다. 그래서 혹시나 강의가 있지 않나 해서 검색을 하니, 역시나 검색이 되어서 나온다. 세상에는 참 고마운 분들이 많은 것 같다. 나도 지금까지 일해온 것들을 정리해서 하나씩 공유하고 싶었는데, 막상 시작하려니 쉽지가 않다. 그리고 트렌드 자체가 바뀌어 버려서 정작 내용을 정리해서 공유하더라도 누가 관심을 가져 주겠나 하는 탄식도 하게 되어서, 계속 머뭇거리고는 있다. 좀 더 내공을 쌓으면 시도해봐야겠다. 언제 내공이 쌓일지... 

강의는 "파이썬을 이용한 웹 크롤링 서비스 어플리케이션 만들기" 이다. 쉽게 개념과 실전을 설명을 원큐님이 해주셔서 많은 도움이 된 것 같다. 크롤링을 하기 위해서 웹페이지의 요소를 분석을 하는 부분이 있다. 이런 기능을 처음 알게 되었는데, 이 기능을 이용하니깐 지금 보고 있는 요소가 HTML 의 어디에 해당하는지를 금방 알 수 있었다. 툴의 사용법을 잘 익히는 사람이 참 부럽기도 하는데, 한 가지 기술을 쉽게 하나 알게 되었다. 요소를 표현하는 방법이 CSS 와 xpath 를 이용한 방법이 있다는 것을 알게 되었고, 이러한 형태로 웹 브라우저가 기능을 제공한다면 확인해볼 수 있다. 윈도우에서 chrome 을 사용하고 있는 나는 바로 이것을 시도해봤다. 그러나, 윈도우의 chrome 에서는 이 기능이 지원되지 않는 것 같다. 결국 이 기능을 확인해보려면, 원큐님이 사용하고 있는 환경에서 해보는 수 밖에 없었다. 어짜피 강의의 예제도 실행해볼 겸, virtualbox 를 이용해서 ubuntu 16.04 를 설치했다. 기본적인 빌드 환경을 설치해놓고, ubuntu 에서 기본적으로 제공하는 firefox 를 실행해서, 확인해보는 것을 시도했다. 그러나, firefox에서는 요소에 대해서 CSS 를 이용한 표현법만 제공을 했다. 난감했다. 이거 하나 확인해보겠다고 virtualbox, ubuntu 까지 설치했는데... 이제는 ubuntu 에서 chrome 을 설치해야겠다는 생각이 들었다. chrome 웹 사이트 접속해서 다운로드하고 실행. 그러나 진행은 제대로 되지 않고... 파일 자체를 받아서 수작업으로 설치를 시작했지만, 종속성 때문에 설치가 되지 않는 듯 했다.

수작업으로 설치한 내용은,

sudo dpkg -i google-chrome-stable_current_amd64.deb

chrome 데비안 패키지 많으로는 설치가 되지 않는다. libappindicator1 와 ca-certificates 패키지가 우선적으로 설치 되어야 한다.

기존에 실패한 패키지 작업을 되돌리기 위해서,

sudo apt-get remove google-chrome-stable

종속성을 가지는 패키지를 우선 설치하고, 다시 chrome 설치를 시도했다. 

sudo apt-get install ca-certificates

sudo apt-get install libappindicator1

sudo dpkg -i google-chrome-stable_current_amd64.deb

무사히, chome 을 설치할 수 있었다.

어이없는 상황이 발생했는데, xpath 확인은 윈도우의 chrome 에서도 확인할 수 있었다. 웹 페이지의 컨텍스트 메뉴에서 바로 볼 수 있다고 생각하고 시도했었는데, 그것이 아니라 요소 검사 윈도우에서 특정 요소에 대해 컨텍스트 메뉴를 이용해야 하는 것이었다. 삽질을 엄청하긴 했지만, chrome 을 설치했다는 부분으로 만족하는 수 밖에... 종종 차분하지 못한 나의 모습이 안타깝게 느껴지긴 한다.








크롬 실행


Symbolic Link터미널에서 웹브라우저(Chrome) 열기

#Ubuntu 16.04 LTS


 시작 전 테스트환경 살피기

   Time

    2017년 08월 18일

   OS

    Linux(Ubuntu 16.04 LTS)



기본적으로 터미널에서 firefox를 실행시키면 실행이된다.

하지만, 동일한 방법으로 chrome을 실행시키면 열리지 않는다. 


# firefox 


# chrome

chrome: command not found



이유는 실행파일의 위치를 정의해 놓은 환경변수( PATH )에 크롬의 위치가 정의되어있지 않기 때문이다.

이를 해결하는 방법은 두 가지가 있다.



1. 환경변수( PATH ) 파일 편집


- 환경변수 파일을 편집하여 크롭에 속해 있는 폴더를 환경변수에 추가 시킨다.



2. 크롬파일 이동


- 크롬파일을 이미 환경변수에 등록되어 있는 폴더에 옮긴다.


A. locate 명령어로 실행파일의 위치를 찾는다. (  /opt/google/chrome 에 위치해있다. )

B. 위 폴더로 이동 후 ls를 쳐보면 녹색파일( chrome )을 볼 수 있는데 이것이 바로 실행파일이다.

C. /opt/google/chrome/ 에 있는 chrome 파일의 심볼릭링크 파일을 일반 유저들이 자주 쓰는 어플리케이션들이 담겨있는 /usr/bin 에 만든다.

sudo ln -s /opt/google/chrome/chrome /usr/bin/chrome


- 링크파일을 만드는 명령어 ln에 심볼릭링크 옵션 -s를 주고 앞에는 파일이 있는 절대경로, 뒤에는 만들고자하는 파일의 위치를 적어준다.


D. 터미널창에 Chrome이라고 쳐서 실행되는지 확인한다.




+ Tips


1. 아래 명령어를 터미널에 입력하면 해당 url로 chrome을 통해서 이동한다.

# chrome 홈페이지url


- 컴퓨터에 저장되어 있는 html 문서또한 절대경로 혹은 상대경로를 적어주면 열린다.





ref : https://www.quora.com/How-do-you-install-chrome-on-Ubuntu


반응형
반응형

[리눅스] Linux, 현재 디렉토리를 터미널에서 열기: nautilus-open-terminal


때때로, 노틸러스를 이용해 디렉토리를 탐색하다가 그 디렉토리에서 특정 터미널 작업을 하고 싶을 때가 있다. 그 때를 위해서 깔면 좋은 프로그램을 소개한다.


$ sudo apt-get install nautilus-open-terminal


설치 후 활성화를 위해 로그아웃하고 다시 로그인 한다.


원하는 디렉토리에 가서 마우스 오른쪽 버튼을 누르면 '터미널에서 열기'라는 새로운 메뉴가 뜨는 걸 볼 수 있다. 클릭하면 그 디렉토리 상태에서 터미널을 열어준다.






덧붙여: 


앗, 근데 반대로 터미널에서 작업하다가 노틸러스 탐색기를 갑자기 열고 싶을 때는?


생각해보면 당연히 쉽게 할 수 있다.


$ nautilus .& 





간단한 자료이지만 자주 잊어버려서 적어둔다. find로 검색하는 간단한 방법.



1. 현재 디렉토리 + 하위 디렉토리


$ find -name '*.abc'



2. 전체 시스템에서 찾기


$ find / -name '*.abc'



3. abc라는 이름이 들어가는 디렉토리 찾기


$ find / -name 'abc*' -type d




ref : http://yongsop.tistory.com/67
ref: http://yongsop.tistory.com/entry/Linux-리눅스-find-명령어-사용법

반응형
반응형


무료 아마존 웹 서비스, 100% 알뜰하게 사용하는 방법


아마존 웹 서비스(Amazon Web Services)의 무료 서비스인 '프리 티어'(free tier)는 디딤돌 정도로 생각하면 가장 적절하다. AWS와 EC2의 기본 메카니즘에 흠뻑 빠지게 하고 가상 머신 인스턴스와 스토리지, 데이터, 네트워킹을 다루는 아마존의 방식을 이해시키고 궁극적으로는 유료 AWS로 유인하려는 징검다리인 것이다. 또한 어떻게 AWS 사용을 관리하고 제한하는지도 배울 수 있는데 부주의하게 사용하면 '프리 티어'라고 해도 결국 비용을 지불해야 하는 상황에 직면할 수 있다.
 
따라서 여기서는 프리 티어의 무료 사용 조건을 자세하게 살펴보고 그 제한 범위 내에서 무엇이 가능한지 실용적인지도 상세하게 살펴본다. 아마도 거의 모든 AWS 사용자들은 아마존 클라우드가 제공하는 모든 혜택을 누리고 싶어할 것이다. 그렇다면 무료 서비스도 최대한 활용해야 할지 않을까. 프리 티어는 AWS를 시험해보고 몇몇 프로젝트를 시작해보고 심지어 기능적 애플리케이션까지 구축해보는 매우 훌륭한 방법이다.
 
한 가지 덧붙이면,  아마존의 프리 티어 관련 설명 중에는 “아마존은 이 무료 사용의 신규 등록을 언제라도 중단할 수 있다”라는 불길한 문장이 포함돼 있다. 이 문구는 아마존의 입장에서 보면 일종의 면피책이 될 수 있지만 만약 무료 계정을 사용해 볼 생각이 있다면 아마존이 중단하기 전에 지금 바로 실행하는 것이 좋을 것이다.
 
월 0달러로 무엇을 얻을 수 있나
AWS 무료 사용 티어(AWS Free Usage Tier)는 설정과 실행을 하기에 충분할 정도의 다양한 AWS 요소들을 제공한다. 유용한 무언가를 개발할 필요한 모든 것을 지원해 주지는 않지만 분명히 무언가 기능적인 성과물을 만들어낼 수 있다. 가장 대표적인 다음과 같은 것들이다.
 
서버 : 613MB의 RAM과 함께 구성된 EC2상에 리눅스나 윈도우 서버 마이크로 인스턴스를 월 750시간까지 실행할 수 있다. 이는 한달 내내 무료로 연속적으로 사용할 수 있다는 것을 의미한다.
 
아마존은 다량의 우분투 서버 12.04와 12.10, 마이크로소프트 윈도우 서버 2008과 2012, 그리고 아마존의 자체 아마존 리눅스 AMI(Amazon Linux AMI)등을 포함한 각기 다른 리눅스와 윈도우 시스템들을 실행할 수 있게 해주는 AMI(Amazon Machine Images) 카탈로그를 지원한다.

모든 AMI를 무료로 사용할 수 있는 것은 아니지만 실행 가능한 것들이 다수 포함돼 있다. AWS 마켓플레이스(AWS marketplace)에도 역시 AMI 인스턴스로 이용할 수 있는 다양한 서드파티 애플리케이션 어플라이언스들과 서버가 있지만 이를 모두 무료로 사용할 수는 없다.  
 
스토리지 : EC2 인스턴스는 스토리지 공간 없이는 별로 쓸모가 없다. 프리 티어는 기본적으로 30GB의 엘라스틱 블록 스토리지(Elastic Block Storage)와 5GB의 아마존 S3 스토리지, 200만 I/O, 그리고 1GB의 스냅샷 스토리지가 제공된다. I/O 사용량 한도에 주목해보자. 아마존은 I/O에 따라 과금하기 때문에 여기에서 문제가 복잡해질 수 있다.

프리 티어를 넘어서면 아마존은 월 100만 I/O마다 10센트씩 요금을 부과하는데 주어진 인스턴스에 의해 사용되는 I/O의 양은 이를 어떻게 사용하느냐에 따라 크게 달라질 수 있다. (잠시 후 이를 관리하는 팁을 살펴본다)
 
데이터베이스 : 아마존의 관계형 데이터베이스 서비스(Relational Database Services)에는 MySQL, 오라클(Oracle) BYOL, 혹은 마이크로소프트 SQL 서버 익스프레스(SQL Server Express) 등이 포함돼 있다. 사용자는 이 중 선택할 수 있으며 각각 월 750시간, 20GB의 스토리지, 1000만 I/O, 20GB의 백업 스토리지 등을 제공받는다.

NoSQL을 선호하는 이들의 경우 아마존은 이를 다이나모DB(DynamoDB) 형태로 제공하지만 프리 티어에는 단 100MB의 스토리지만 제공한다. 여기서도 또다시 I/O 추산이 복잡해지지만 저-트래픽, 데이터베이스-주도형 사이트를 테스트하기에는 충분하기 때문에 크게 문제가 되지는 않을 것이다.
 
데이터 전송 : 이 부분은 쉽다. 15GB의 외부 송출 대역폭이 모든 AWS 기능에 걸쳐 주어진다. 이해를 돕기 위해 예를 들면 월 5000명의 방문객이 오는 필자의 개인 사이트는 월 1.2GB의 대역폭을 소모한다. 비교적 간단하거나 개인적인 웹사이트의 경우 15GB는 충분하고도 남는 수준이다.
 
제약은 무엇인가
이제 나쁜 소식을 들려줄 차례다. 아마존은 프리 티어 사용에 엄격한 조건들을 덧붙였다. 앞서 설명한 사용량 외에도 다른 제한사항이 많다.
 
핵심 서비스는 단 12개월만 무료 : EC2, S3, RDS등을 포함한 대부분의 주요 AWS 서비스는 최초 등록 이후 12개월만 무료로 사용할 수 있다. 그 기간이 지나면 보통의 요금제와 마찬가지로 사용한 만큼 돈을 지불해야 한다.

다행인 것은 일부 서비스의 경우 12개월 이후에도 프리 티어로 사용할 수 있다는 것이다. 다이나모DB, 심플 워크플로(Simple Workflow), 심플 큐 서비스(Simple Queue Service), 심플 노티피케이션 서비스(Simple Notification Service), 아마존 엘라스틱 트랜스코더(Amazon Elastic Transcoder) 클라우드워치(CloudWatch) 등이 대표적이다.
 
CPU(와 대역폭) 감속을 예상하라 : 마이크로 인스턴스는 간헐적으로 수요가 폭증할 때를 대비해 최대 CPU에 맞춰 공급하도록 설계됐다. 아마존은 '연산 유닛'(compute unite)이라 부르는 전체의 연속적인 인스턴스는 공급하지 않는데 이를 위해서는 M1 스몰 인스턴스로 업그레이드해야 한다. 이를 통해 아마존의 표현대로라면 마이크로 인스턴스를 '추가적인 연산 사이클을 주기적으로 필요로 하는 낮은 스루풋 애플리케이션과 웹사이트에 적합'하게 만들어준다.
 
CPU가 가끔씩 100퍼센트까지 치솟게 만드는 애플리케이션을 실행한다면 문제는 없을 것이다. 그러나 장시간 CPU를 100퍼센트로 고정시키는 앱이라면 처음에는 100퍼센트로 실행되지만 차후 감속된다. 감속 머신의 내부 통계는 여전히 CPU가 100퍼센트로 실행되고 있다고 보고하기 때문에 이에 속으면 안 된다는 점을 명심하라.
  
아마존의 EC2 대시보드를 통해 사용량 통계를 모니터할 수 있지만 실행 기계 내부의 통계에서 더욱 세분화된 정보를 얻을 수 있다.
 
프리 티어의 윈도우 서버 인스턴스가 부족할 수 있다. 또 무엇을 계획하느냐에 따라 윈도우 서버 인스턴스에 할당된 메모리가 이를 실행하기에 불충분할 수도 있다. 정적 웹페이지를 유지하는 정도라면 문제될 것이 없다. 필자는 MySQL/아파치(Apache) 인스턴스를 그런 머신에 (AMPPS 웹 스택을 통해) 설치해 20%정도의 RAM을 남기고 실행할 수 있었다.
 
만약 AWS 호스트된 데이터베이스 인스턴스(RDS)를 통해 데이터베이스를 사용하고 있다면, 다행이도 이 데이터베이스는 전적으로 실행중인 머신과 분리되어 시작된다. 이 때문에 RDS로 인해 사용하는 실제 인스턴스상에 데이터베이스 서버를 실행해 훨씬 많은 메모리를 잡아먹게될 걱정을 할 필요가 없어진다.
 
기본 설정상 일관된 IP 주소를 쓸 수 없다 : 프리 티어는 AWS가 주소를 할당하는 방식이기 때문에 인스턴스는 고정 IP 주소나 일관된 사설 DNS 이름이 자동적으로 따라오지 않는다. 이 때문에 사용하는 인스턴스 재설정이 IP 주소 역시 재설정시켜 일종의 DNS 기술을 적용하지 않으면 외부 사용 목적의 무료 사이트 호스팅을 하기 어렵다.
 
다행히도 이런 문제는 해결하기 비교적 쉽다. 만약 누구나 지금 서비스하는 서버에 지속적으로 접속할 수 있도록 하려면 EC2 엘라스틱 IP 주소(EC2 Elastic IP Addresses)를 사용해 무료 인스턴스에 고정 IP를 제공할 수 있다. 단 주소를 보관한 채 실제로 이를 인스턴스와 연결하지 않는다면 소정의 요금이 부과될 것이다.
 
프리 티어, 100% 활용하기
분명 프리 티어에는 많은 함정들이 있다. 자원 제약들은 사용자가 미리 조심하지 않으면 너무나도 쉽게 넘어서게 되어 있다. 따라서 마이크로 인스턴스 최대한을 활용하고 싶다면 다음과 같은 점을 반드시 명심하기 바란다.
 
요금에 신경써라 : 말할 필요도 없겠지만 정기적으로 AWS 계정 활동 페이지를 체크해 아무도 모르게 요금이 부과되지 않는지 확인하라. 기본 설정상 아마존은 프리 티어 한도를 넘어서서 요금이 부과되더라도 따로 알려주지 않는다. 별도의 통지도 없이 사용 초과분만큼 그대로 요금이 부과된다.

만약 추정 사용량에 대한 알림을 받고싶거나 정해 놓은 예산을 초과할때 경고를 받고 싶다면 아마존이 제공하는 요금 경고 시스템을 사용하면 된다. 그러나 프리 티어에서는 설정가능한 경고와 알림의 수가 제한되어 있다.
 
I/O 사용량을 챙겨라 : 만약 개인용도로 서버를 사용한다면 I/O 요금 폭탄을 맞을 일은 없을 것이다. 그러나 서버를 공공으로 돌리면 상황이 하늘과 땅차이로 완전히 뒤바뀔 수도 있다.
 
인스턴스 I/O 사용량을 알아내는건 그리 어렵지 않지만 성실성과 정밀한 조사가 필요하다.  EC2 관리 콘솔은 모니터링 툴을 제공하지만 프리 티어의 콘솔은 유료 콘솔만큼 세분화되어 있지 않다. 무료 인스턴스를 오분 간격으로 체크하는데 유료일 경우 일분 간격으로 사용량을 볼 수 있다.
 
또한 인스턴스 자체 내에서도 OS의 자체 툴을 사용해 I/O 사용량을 확인할 수 있다. 리눅스 운영체제에서 사용할 수 있는 방법 하나를 소개한다. 윈도우내에서는 초당 디스크 전송(Disk Transfer) 성능 카운터를 사용할 수 있다.
  
아마존 리포팅 시스템을 통해 서비스 요금을 추적할 수 있고 CSV/XML 포맷의 세부 내역도 다운로드 할 수 있다.
 
골치 아픈 일을 피하기 위해 엘라스틱 주소를 할당하라 : 엘라스틱 주소(elastic address)를 사용하면 크게 요금이 늘어나지도 않으면서 훨씬 시스템에 연결하기 쉬워진다. 원격 데스크톱(Remote Desktop) 연결 툴이 연결 주소와 암호를 모두 저장하기 때문에 특히 윈도우 인스턴스에서는 더 편리하다. 그렇지 않으면 사이트가 새로운 IP 주소로 프로비저닝할 때마다 완전히 새로운 원격 데스크톱 연결을 만들어야 한다.
 
클라우드에 아이템들을 백업하라 : 작업중인 서버는 언제 고장나서 초기화 될지 모른다. 귀찮은 재 업로드를 하는 대신 아마존 클라우드에 적절한 데이터를 미리 넣어두는게 좋다. EBS 스냅샷(EBS Snapshot)은 이 작업을 위한 아주 편리한 방법 중 하나지만 프리 티어는 1GB의 스냅샷 스토리지 밖에 얻을 수 없다. 따라서 대신 시스템에서 외부 드라이브로 백업을 수행하는 방식처럼 EBS 볼륨을 덧붙여서 직접 파일을 백업할 수 있다.
 
그럼 이제 무엇을 해야 하나 
프리 티어 AWS에 어느 정도 익숙해지면 아마도 제대로 써보고 싶은 생각이 더 들 될 것이다. 마이크로 인스턴스의 차상위 단계는 M1 스몰 인스턴스로, 메모리가 두 배이고 온전한 연산-유닛치의 CPU가 제공된다. 대부분의 M1 인스턴스의 사용요금은 월 15달러에서 시작한다.
 
만약 일주일 내내 24시간 실행되는 서버가 필요하지 않은 구두쇠라면 스팟 인스턴스(spot instance)를 고려해 보라. 스팟 인스턴스는 시간당 지불할 의사가 있는 최대 가격을 특정지어 연산 용적을 입찰하는 식이다. 만약 스팟 인스턴스의 현재 시간당 가격이 (수요와 공급에 따라 변동적으로) 그 설정액을 초과하면 인스턴스가 자동으로 작동을 중단한다.
 
마지막으로 만약 백업 서버같이 무언가 자동으로 실행하고 싶다면, 예약 인스턴스(reserved instance)를 활용하라. 예약 인스턴스를 쓰면 일년에서 삼년 사이의 특정 기간에 일회 요금을 내고 상당폭 할인된 시간당 사용료로 이용할 수 있다. 예를 들어 지금 시점에서 단일 M1 스콜 리눅스 인스턴스는 연 61달러에 시간당 3.4센트인데 이를 100% 활용한다고 추정할 경우 연 354달러 정도 되는 가격이다.
 
M1 스몰, 스팟 인스턴스, 예약 인스턴스 모두 상당히 저렴한 가격이다. 프리 티어를 졸업해 이들 중 하나를 선택할 때가 되면 아마존의 툴을 사용하면서 비용을 절약하는 상당한 실전 경험을 가진 자신을 발견할 것이다. editor@idg.co.kr
  



스팟 인스턴스는 입찰을 통해 비사용 용량으로 기계를 실행하게 해준다. 이는 적은 돈으로 간헐적으로 기계를 구동하는 유용한 방식이다.




ref : http://www.itworld.co.kr/print/81311


반응형
반응형

사전 조건

PuTTY을(를) 사용하여 Linux 인스턴스에 연결하려면 먼저 다음 사전 요구 사항을 완료하십시오.

  • PuTTY 설치

    PuTTY 다운로드 페이지에서 PuTTY를 다운로드하여 설치합니다. 이미 이전 버전의 PuTTY가 설치되어 있다면 최신 버전을 다운로드하는 것이 좋습니다. 전체 제품군을 설치해야 합니다.

  • 인스턴스의 ID 보기

    Amazon EC2 콘솔을 사용하여 인스턴스의 ID를 볼 수 있습니다([Instance ID] 열에서). describe-instances(AWS CLI) 또는 Get-EC2Instance(Windows PowerShell용 AWS 도구) 명령을 사용할 수도 있습니다.

  • 인스턴스의 퍼블릭 DNS 이름 보기

    Amazon EC2 콘솔을 사용해서 사용자의 인스턴스에 대한 퍼블릭 DNS를 얻을 수 있습니다([Public DNS (IPv4)] 열 확인. 이 열이 숨겨진 경우는 [Show/Hide] 아이콘을 클릭하고 [Public DNS (IPv4)]를 선택). describe-instances(AWS CLI) 또는 Get-EC2Instance(Windows PowerShell용 AWS 도구) 명령을 사용할 수도 있습니다.

  • (IPv6 전용) 인스턴스의 IPv6 주소를 얻습니다.

    인스턴스에 IPv6 주소를 할당했다면 퍼블릭 IPv4 주소나 퍼블릭 IPv4 DNS 호스트 이름 대신 IPv6 주소를 사용하여 인스턴스에 연결할 수도 있습니다. 로컬 컴퓨터에 IPv6 주소가 있고 IPv6를 사용하도록 컴퓨터를 구성해야 합니다. Amazon EC2 콘솔을 사용하여 인스턴스의 IPv6 주소를 얻을 수 있습니다([IPv6 IPs] 필드 확인). describe-instances(AWS CLI) 또는 Get-EC2Instance(Windows PowerShell용 AWS 도구) 명령을 사용할 수도 있습니다. IPv6에 대한 자세한 내용은 IPv6 주소 단원을 참조하십시오.

  • 프라이빗 키 찾기

    인스턴스를 시작할 때 지정한 키 페어를 찾기 위해 .pem 파일의 컴퓨터 상 위치에 대한 정규화된 경로를 얻습니다.

  • 인스턴스를 시작하는 데 사용한 AMI의 기본 사용자 이름을 가져옵니다

    • Amazon Linux AMI의 경우 사용자 이름은 ec2-user입니다.

    • Centos AMI의 경우 사용자 이름은 centos입니다.

    • Debian AMI의 경우 사용자 이름은 admin 또는 root입니다.

    • Fedora AMI의 경우 사용자 이름은 ec2-user 또는 fedora입니다.

    • RHEL AMI의 경우 사용자 이름은 ec2-user 또는 root입니다.

    • SUSE AMI의 경우 사용자 이름은 ec2-user 또는 root입니다.

    • Ubuntu AMI의 경우 사용자 이름은 ubuntu 또는 root입니다.

    • ec2-user 및 root를 사용할 수 없는 경우 AMI 공급자에게 문의하십시오.

  • IP 주소에서 인스턴스로의 인바운드 SSH 트래픽 활성화

    인스턴스와 연관된 보안 그룹이 IP 주소로부터 들어오는 SSH 트래픽을 허용하는지 확인하십시오. 기본 보안 그룹은 기본적으로 들어오는 SSH 트래픽을 허용하지 않습니다. 자세한 내용은 Linux 인스턴스의 인바운드 트래픽 권한 부여 단원을 참조하십시오.





Install Ubuntu Desktop on AWS EC2

I assume that you already set up a VM on EC2 by choosing Ubuntu Server AMI.

First, install Ubuntu Desktop on the server instance by running the following command.

$ sudo apt-get install ubuntu-desktop

Reboot the VM instance.

Next, install VNC server on the VM.

$ sudo apt-get install tightvncserver

After installation, launch VNC server (as a non-root user):

$ vncserver :1

The first time you run VNC server, it will ask you for VNC password. The VNC password should be at least 6 characters and up to 8 characters long. If the typed password is longer than that, only the first 8 characters will be used.

Once VNC server is launched successfully, it will create ~/.vnc directory and configuration files in it. A log file for VNC server will be located at ~/.vnc/*.log







윈도우에서 Ubuntu (AWS EC2) GUI 이용

윈도우에서 AWS EC2에 올린 Ubuntu를 GUI로 접속할 일이 있었다.

그리고 몇 시간의 시도 끝에 해결!

[ubuntu] sudo apt-get update
[ubuntu] sudo apt-get install ubuntu-desktop

설치를 시도하면 알겠지만, ubuntu-desktop의 용량이 크다. (2G 넘었나?)

좀 더 작은 용량만으로 하고 싶다면 필수 패키지만 설치하는 방법이 있다. (작동은 똑같이 됨!

[ubuntu] sudo aptitude install --without-recommends ubuntu-desktop

이제 나머지 필요한 것들도 설치하자.

[ubuntu] sudo apt-get install tightvncserver gnome-panel gnome-settings-daemon metacity nautilus gnome-terminal

설치가 끝났다면 초기 세팅 파일을 만들기 위해 한번 VNC서버를 작동하자. (아마 비밀번호를 입력하라고 하는데 잘 기억해뒀다가 나중에 GUI접속을 할 때 사용하면 된다.)

[ubuntu] vncserver :1

그리고 설정파일을 수정하자.

[ubuntu] vi~/.vnc/xstartup

아래와 같이 수정해주면 된다.

#!/bin/sh

export XKL_XMODMAP_DISABLE=1
unset SESSION_MANAGER
unset DBUS_SESSION_BUS_ADDRESS

[ -x /etc/vnc/xstartup ] && exec /etc/vnc/xstartup
[ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources
xsetroot -solid grey

vncconfig -iconic &
gnome-panel &
gnome-settings-daemon &
metacity &
nautilus &
gnome-terminal &

변경된 사항을 반영하기 위해 서버를 끄고 다시 시작해주자.

[ubuntu] vncserver -kill :1
[ubuntu] vncserver :1

설정을 다 했으면 이제 SSH 터널을 설정해줘야 한다.

Putty를 켜서 EC2에 접속을 설정해둔 것을 LOAD한 후 다음과 같이 수정하자.

EC2에 접속하기 위해 사용하는 것을 Load! 해주자
1.1.1.1 대신 서버 IP주소를 입력해주고 Add 버튼을 누르면 된다.

이제 우리 로컬 5902포트에서 서버의 5901포트를 들어갈 수 있게 되는 것이다! 이제 AWS Management Console의 Security Groups 탭에 가서 5901포트틀 사용하겠다고 말해주면 된다.

마지막으로 Tight-VNC를 다운받아서 localhost::5902로 접속하면 된다.

localhost::5902로 접속을 누르고 위에서 설정했던 비밀번호를 입력하면 된다.

localhost::5902 로 접속하는 것은 Putty Configuration 을 통해서 먼저 EC2 에 접속 해놓은 다음에 연결이 가능한데 Remote Host: EC2_IP:5901   을 직접 기입하면 Putty Configuration 을 띄울 필요 없이 바로 원격 접속잉 가능하다

접속이 잘 안되면 

vncserver 를 kill 했다가 다시 켜보자

ref : https://docs.aws.amazon.com/ko_kr/AWSEC2/latest/UserGuide/putty.html
ref : http://xmodulo.com/how-to-set-up-ubuntu-desktop-vm-on-amazon-ec2.html
ref : https://medium.com/@ggomma/%EC%9C%88%EB%8F%84%EC%9A%B0%EC%97%90%EC%84%9C-ubuntu-aws-ec2-gui-%EC%9D%B4%EC%9A%A9-ee2567a85d8f


반응형
반응형


아마존 ElastiCache 소개

다루는 내용

∙ 아마존 ElastiCache 클러스터 생성하기
∙ 아마존 ElastiCache 클러스터에 접근 권한 부여하기
∙ 아마존 ElastiCache 클러스터에 접속하여 명령 실행하기
∙ 아마존 ElastiCache 클러스터 삭제하기

 

 

실습


준비


 

1. Putty 다운로드
2. EC2 인스턴스

 

 


아마존 ElastiCache 클러스터 생성하기


 

1. 콘솔에서 ElastiCache 클릭
2. Get Started Now 클릭
3. Select Engine 섹션

· Redis 선택
· Next 클릭

4. Specify Cluster Details

· Replication Group Name : ECLabcluster
· Replication Group Description : ECLabcluster TEST
· Next 클릭

5. Configure Advanced Settings

· VPC Security Group(s) : default 선택
· Next 클릭

6. Review

· Launch Replication Group 클릭
· Close 클릭

 

 


아마존 ElastiCache 클러스터에 접근 권한 부여하기


 

EC2 인스턴스에서 ElastiCache 클러스터에 접속하기위한 설정

 

1. 콘솔에서 EC2 클릭
2. NETWORK & SECURITY  Security Groups 클릭
3. 앞에서 클러스터의 보안그룹을 default를 사용하도록 하였으므로 Group Name이 default인 보안그룹 선택
4. 화면 하단의 Inbound 탭 클릭
5. Edit 클릭
6. 클러스터 접속에 사용될 6379 포트 허용

· Type : Custom TCP Rule
· Protocol : TCP
· Port Range : 6379
· Source : 0.0.0.0/0

7. EC2 접속에 사용될 22 포트 허용

· Type : SSH
· Protocol : TCP
· Port Range : 22
· Source : 0.0.0.0/0 혹은 MyIP

 



 

 


아마존 ElastiCache 클러스터 사용하기


 

EC2 인스턴스에서 ElastiCache 클러스터에 접속하여 기본 명령을 실행해 본다.

 

1. Putty로 EC2 인스턴스 SSH 로그인

· “아마존 Elastic Compute Cloud(EC2) 소개” 문서 참고

2. telnet 유틸리티 설치

· sudo yum install telnet

3. ElastiCache 클러스터의 Endpoint에 접속

· 콘솔에서 ElastiCache 클릭
· 왼쪽 메뉴에서 Replication Groups 클릭
· 생성한 클러스터 그룹 선택 (예. eclabcluster)
· 상세화면에서 Primary Endpoint 확인
예. eclabcluster.ugaeqh.ng.0001.use1.cache.amazonaws.com:6379
telnet eclabcluster.ugaeqh.ng.0001.use1.cache.amazonaws.com 6379

4. Redis 명령 실행

 

 

※ ElastiCache는 캐시 클러스터에 액세스하는 모든 클라이언트가 Amazon VPC 네트워크에 위치해야 하며, 보안 그룹을 통해 인증되어야 합니다.

 

 


아마존 ElastiCache 삭제하기


 

1. 콘솔에서 ElastiCache 클릭
2. 왼쪽 메뉴에서 Replication Groups 클릭
3. 삭제할 클러스터 그룹 선택
4. Delete 클릭
5. Delete Replication Group 화면에서

· Create final snapshot? No
· Delete 클릭

6. 왼쪽 메뉴 Cache Clusters 선택하여 개별 클러스터 삭제도 가능하다.

 

 


참고


ref : https://blog.wisen.co.kr/?p=174

반응형
반응형

nodejs 설치 파일을 이용해 Linux에 설치하는 경우 향후 파일 시스템 접근 시 권한 문제가 발생할 수 있다. 예를 들어 Yeoman, Bower, Grunt등을 설치할 때 permission 문제가 발생하여 곤란을 겪을 수 있다. 여러 가지 방법을 찾아보고 실행해 본 결과, 가장 좋은 방법은 node.js를 설치 시에 ‘sudo’ permission이 아니라 일반 계정의 permission으로 설치를 하는 것이다.

기존 nodejs 제거

시스템에 이미 nodejs가 설치되어 있는 경우 이를 제거 한다.

$ sudo rm -r /usr/local/bin/node /usr/local/bin/npm /usr/local/include/node /usr/local/lib/node_modules /usr/local/share/man/man/node.1

자신 계정의 .npm 폴더를 제거한다.

$ rm -r ~/.npm $ rm -r .npm

nvm 설치

nvm 다운로드 및 설치

사용자 계정의 루트 폴더에서 nvm을 설치하기 위해 다음 명령을 수행한다.

curl https://raw.githubusercontent.com/creationix/nvm/v0.23.3/install.sh | bash

또는 curl 대신 wget을 이용할 수 있다.

wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.23.3/install.sh | bash

이제 shell에 .nvm 설정을 추가한다.

$ source ~/.bashrc

nodejs 설치

stable 버전 설치

nvm을 이용하여 sudo permission없이 node.js를 설치하자.

$ nvm install stable

이제 nodejs가 잘 설치되었는지 확인해보자.

$ node -v

이제, sudo 권한 없이도 node를 성공적으로 설치하였다.

설정 & Test

다음 명령을 통해 node version을 확인할 수 있다.

$ node -v

위 명령의 결과를 ~/.bashrc 파일에 추가한다. (v4.0.0이 그 결과라고 가정한다.)

nvm use v4.0.0 



ref : http://hochulshin.com/linux-nodejs-installation/


반응형
반응형

PS 명령어의 상세설명

1.
기능
http://www.linuxone.co.kr/images/0.gif
유닉스는 동시에 여러 개의 프로세서가 동작되기 때문에 사용자가 그것들의 목록과 
상태를 점검할 필요가 있다
ps
라는 이름은 processor status를 의미한다. ps를 사용하여 프로세서들의 상태를 
점검할 수 있다.


2. 
문법 
http://www.linuxone.co.kr/images/0.gif
# ps [ 
옵션 ]


3. 
옵션
http://www.linuxone.co.kr/images/0.gif
-l : 
자세한 형태의 정보를 출력한다
-u : 
각 프로세서의 사용자 이름과 시작 시간을 보여준다
-j : 
작업 중심 형태로 출력한다.
-s : 
시그널 중심 형태로 출력한다.
-v : 
가상 메모리 중심 형태로 출력한다.
-m : 
메모리 정보를 출력한다
-a : 
다른 사용자들의 프로세서도 보여준다.
-x : 
로그인 상태에 있는 동안 아직 완료되지 않은 프로세서들을 보여준다
유닉스 시스템은 사용자가 로그아웃하고 난 후에도 임의의 프로세서가 계속 동작하게 할 수 있다그러면 그 프로세서는 자신을 실행시킨 셸이 없이도 계속 자신의 일을 
수행한다이러한 프로세서는 일반적인 ps 명령으로 확인할 수 없다이때 -x 옵션을 
사용하면 자신의 터미널이 없는 프로세서들을 확인할 수 있다
-S : 
차일드(child) CPU 시간과 메모리 페이지 결함(fault) 정보를 추가 한다
-c : 
커널 task_structure로 부터 명령 이름을 보여준다
-e : 
환경을 보여준다
-w : 
(wide) 형태로 출력한다한 행 안에 출력이 잘리지 않는다
-h : 
헤더를 출력하지 않는다
-r : 
현재 실행중인 프로세서를 보여준다.
-n : USER 
 WCHAN 을 위해 수치 출력을 지원한다.


4. 
사용방법 및 정보
http://www.linuxone.co.kr/images/0.gif
기본적으로 ps는 현재 명령이 내려지는 쉘에서 만들어진 프로세서들의 목록만을 
보여준다
ps
는 자신이 실행되는 당시현재의 쉘에 의해서 수행된 프로세서들을 검사하고 
보고한다는 점을 생각하자
그러면 ps의 출력결과 리스트에 ps 자신이 있는 이유를 쉽게 이해할 수 있을 것이다
각 필드의 의미는 다음과 같다
http://www.linuxone.co.kr/images/0.gif

COMMAND : 
명령어의 이름 
PID : 
프로세서 ID, 각 프로세서를 구분하기 위한 고유의 ID 
RSS : 
프로세서에 의해 사용되는 실제 메모리의 용량(K byte 단위
USER : 
프로세서를 실행시킨 소유자의 계정을 보여준다
SZ : 
프로세서의 자료와 스텍 크기의 (K byte 단위
TIME : 
현재까지 사용된 CPU의 시간(,
TT : 
프로세서의 제어 터미널(t3=/dev/tty3) 
%CPU : 
마지막 분동안 프로세서가 사용한 CPU시간의 백분율 
START : 
프로세서가 시작된 시간 
STAT : 
프로세서의 상태

이 중 STAT 필드는 몇 가지의 부호를 사용해서 프로세서의 상태를 표시하고 있다
그것들을 정리해 보면 다음과 같다.

P : 수행 가능/수행 중 
T : 
일시 정지 
D : 
디스크 입출력 대기 같은 인터럽트할 수 없는 대기상태 
S : 20
초 미만의 짧게 잠듦(sleep) 
I : 20
초 이상의 길게 잠듦 
Z : 
좀비(zombi) 프로세서

좀비(zomb) 상태라는 것은 프로세서가 사라질 때 시그널 처리의 문제로 완전히 
소멸되지 못한 상태를 말한다.

대개는 _aux 옵션을 많이 사용한다이 중 필요한 프로세스에 대한 결과만 선택적으로
보고자 한다면 grep 명령을 같이 사용한다

http://www.linuxone.co.kr/images/0.gif

[root@sense ~]# ps  -aux
USER       PID %CPU %MEM   VSZ  RSS TTY      STAT START   TIME COMMAND
root         1  0.0  0.1  3444  564 ?        S    Mar17   0:00 init [5]
root         2  0.0  0.0     0    0 ?        SN   Mar17   0:00 [ksoftirqd/0]
root         3  0.0  0.0     0    0 ?        S<   Mar17   0:00 [events/0] --------------------
lebowski  8632  0.0  0.2  5756 1376 pts/3    S    17:10   0:00 -bash
root      8683  0.0  0.2  5692 1152 pts/3    S    17:10   0:00 su -
root      8684  0.0  0.2  5324 1432 pts/3    S    17:10   0:00 -bash
root      8817  0.0  0.1  3244  776 pts/3    R+   18:11   0:00 ps _aux

 

[root@sense ~]# ps -aux | grep vsftpd
root      2319  0.0  0.1  4912  988 ?        S    Mar17   0:00 /usr/sbin/vsftpd /etc/vsftpd/vsftpd.conf
root      8822  0.0  0.1  5544  672 pts/3    R+   18:13   0:00 grep vsftpd




ref : http://lily.mmu.ac.kr/lecture/08sm/Fedora2/7jang/4.htm

반응형
반응형



■ 리눅스 기본 디렉토리 (Reserved Directory)

 

리눅스는 중요한 파일들을 주제별로 분류하여 놓고, 각각의 주제에 맞는 디렉토리를 미리 만들어 거기에 파일들을 넣어 두었습니다. 이것을 미리 만들어진 디렉토리 또는 예약된 디렉토리라고 부릅니다.






디렉토리 구조

* /

– 리눅스 경로의 출발점인 최상위 디렉토리(윈도우의 c드라이브같은 역할)

* /bin

– 일반 사용자들이 사용하는 명령어가 포함 되어있다

– ex) cp,mv,vi,rm….

* /etc

– 시스템 설정 파일이 들어있는 디렉토리

* /home

– 일반 사용자들의 홈 디렉토리가 생성 되는 곳

* /root

– root,시스템 관리자의 홈 디렉토리

* /sbin

– 시스템 운영에 필요한 명령어가 존재하는 디렉토리

– ex) 재부팅, 포맷 등

* /tmp

– 임시파일을 저장하는 디렉토리

– 우리가 공부할때 주로 여기서 이용

* /usr

– 윈도우 programs files 폴더와 유사

* /var

– 시스템 운영할 때 발생되는 로그 (기록) 가 위치한 디렉토리

* 그외에 /opt,/proc,/boot 등은 생략

리눅스 경로 

 

 

절대 경로 : 제일 위부터 순서대로 내려가는 경로   ex) cd /tmp/hello

상대 경로 : 현재 있는 경로에서 위나 하위 디렉토리로 이동 ex)[tmp]#  cd hello   ex) [tmp]# cd ..



ref : http://blog.daum.net/question0921/727

ref : http://javakorean.com/%EB%A6%AC%EB%88%85%EC%8A%A4-%EB%94%94%EB%A0%89%ED%84%B0%EB%A6%AC-%EA%B5%AC%EC%A1%B0

반응형
반응형

C.4. 리눅스의 장치 이름

리눅스에서 디스크와 파티션을 부르는 이름이 다른 운영 체제와 다르기도 합니다. 파티션을 만들고 파티션할 때 이 리눅스 이름을 알고 있어야 합니다. 기본적으로는 다음 규칙을 따릅니다:

  • 첫번째 플로피 디스크 드라이브는 /dev/fd0이라고 합니다.

  • 두번째 플로피 디스크 드라이브는 /dev/fd1이라고 합니다.

  • 첫번째 발견한 하드디스크의 이름은 /dev/sda입니다.

  • 두번째 발견한 하드디스크의 이름은 /dev/sdb이고, 그 이후는 마찬가지입니다.

  • 첫번째 SCSI CD-ROM은 /dev/scd0이라고 하고, /dev/sr0이라고도 합니다.

드라이브의 파티션 이름은 디스크 이름 뒤에 숫자를 붙입니다. sda1와 sda2는 각각 첫번째 SCSI 디스크의 첫번째와 두번째 파티션을 말합니다.

실제 예를 들어보면 다음과 같습니다. SCSI 디스크가 2개 있어서, 하나는 SCSI 주소 2에 연결되어 있고 다른 하나는 4에 연결되어 있습니다. 첫번째(2번 주소에 연결된) 디스크가 sda이고, 두번째(4번 주소에 연결된) 디스크가 sdb입니다. sda에 파티션이 3개이면, 그 파티션의 이름은 sda1sda2sda3입니다. sdb 디스크와 그 파티션도 같은 방식입니다.

SCSI 호스트 버스 어댑터(컨트롤러)가 2개 있으면 어느 드라이브가 첫번째가 될지 알기 어려울 수도 있습니다. 이 경우엔 부팅할 때 메시지를 잘 보고, 드라이브의 모델과 용량으로 파악하는 게 최선의 방법입니다.



Linux 인스턴스의 디바이스 명명

볼륨을 인스턴스에 연결할 때 해당 볼륨에 대한 디바이스 이름을 포함합니다. 이 디바이스 이름은 Amazon EC2에서 사용합니다. 인스턴스의 블록 디바이스 드라이버는 볼륨이 마운트될 때 실제 볼륨 이름을 할당하고 할당된 이름은 Amazon EC2에서 사용하는 이름과 다를 수 있습니다.


사용 가능한 디바이스 이름

다음 표에 Linux 인스턴스의 사용 가능한 디바이스 이름이 나와 있습니다. 인스턴스에 연결할 수 있는 볼륨의 수는 운영 체제에 따라 결정됩니다. 자세한 내용은 인스턴스 볼륨 제한 단원을 참조하십시오.

가상화 유형응시 가능루트 전용EBS 볼륨 추천인스턴스 스토리지 볼륨NVMe 볼륨

반가상화(PV)

/dev/sd[a-z]

/dev/sd[a-z][1-15]

/dev/hd[a-z]

/dev/hd[a-z][1-15]

/dev/sda1

/dev/sd[f-p]

/dev/sd[f-p][1-6]

/dev/sd[b-e]

/dev/sd[b-y] (hs1.8xlarge)

해당 사항 없음

HVM

/dev/sd[a-z]

/dev/xvd[b-c][a-z]

AMI에 따라 다름

/dev/sda1 또는 /dev/xvda

/dev/sd[f-p]

/dev/sd[b-e]

/dev/sd[b-h] (h1.16xlarge)

/dev/sd[b-y] (d2.8xlarge)

/dev/sd[b-y] (hs1.8xlarge)

/dev/sd[b-i] (i2.8xlarge)

/dev/nvme[0-26]n1 *

* NVMe 인스턴스 스토어 볼륨은 자동으로 열거되고 디바이스 이름이 할당됩니다. 블록 디바이스 매핑에 NVMe 인스턴스 스토어 볼륨을 지정할 필요가 없습니다.

인스턴스 스토어 볼륨에 대한 자세한 내용은 Amazon EC2 인스턴스 스토어 단원을 참조하십시오.

NVMe EBS 볼륨에 대한 자세한 내용은 Amazon EBS 및 NVMe 단원을 참조하십시오.

디바이스 이름 고려 사항

디바이스 이름을 선택할 때는 다음 사항에 주의하십시오.

  • 인스턴스 스토어 볼륨을 연결할 때 사용된 디바이스 이름을 사용하여 EBS 볼륨을 연결할 수 있지만, 이러한 경우 예기치 않은 동작이 발생할 수 있으므로 수행하지 않는 것이 좋습니다.

  • 커널의 블록 디바이스 드라이버에 따라 디바이스는 사용자가 지정한 것과는 다른 이름에 연결될 수 있습니다. 예를 들어 /dev/sdh라는 디바이스 이름을 지정할 경우 디바이스 이름이 /dev/xvdh 또는 /dev/hdh로 바뀔 수 있습니다. 대부분의 경우 뒤에 오는 문자는 그대로 유지됩니다. Red Hat Enterprise Linux의 일부 버전과 CentOS와 같은 Red Hat Enterprise Linux의 변형 버전에서는 뒤에 오는 문자가 변경될 수도 있습니다(즉 /dev/sda가 /dev/xvde로 바뀔 수 있음). 이 경우 각 디바이스 이름에서 뒤에 오는 문자는 같은 수로 늘어납니다. 예를 들어 /dev/sdb가 /dev/xvdf라는 이름으로 바뀌면 /dev/sdc는 /dev/xvdg로 이름이 바뀝니다. Amazon Linux AMI는 이름이 바뀐 디바이스에 지정한 이름에 대해 심볼 링크를 생성합니다. 다른 AMI는 다르게 작동할 수 있습니다.

  • 인스턴스의 NVMe 인스턴스 스토어 볼륨의 수는 인스턴스의 크기에 따라 다릅니다. 디바이스 이름은 /dev/nvme0n1/dev/nvme1n1 등입니다.

  • Linux 인스턴스에서는 반가상화(PV) 및 하드웨어 가상 머신(HVM)과 같은 두 가지 유형의 가상화를 사용할 수 있습니다. 인스턴스의 가상화 유형은 인스턴스를 시작할 때 사용된 AMI에 의해 결정됩니다. 인스턴스 유형에 따라 PV와 HVM을 모두 지원하거나, HVM 또는 PV만 지원합니다. 인스턴스의 가상화 유형에 따라 권장되고 사용 가능한 디바이스 이름이 다르기 때문에 AMI의 가상화 유형에 주의해야 합니다. 자세한 내용은 Linux AMI 가상화 유형 단원을 참조하십시오.

  • 뒤에 숫자가 있거나 있지 않고 디바이스 이름의 문자가 동일한 볼륨은 연결할 수 없습니다. 예를 들어, 볼륨을 /dev/sdc로 연결한 다음 다른 볼륨을 /dev/sdc1에 연결하면 인스턴스에서는 /dev/sdc만을 볼 수 있습니다. 디바이스 이름 끝에 숫자를 사용하려면 기본 문자가 동일한 모든 디바이스 이름의 끝에 숫자를 사용해야 합니다(/dev/sdc1/dev/sdc2/dev/sdc3 등).

  • 하드웨어 가상 머신(HVM) AMI는 디바이스 이름에 추적 번호를 사용하는 것을 지원하지 않습니다. 단, 루트 디바이스에 예약된 디바이스 이름은 예외입니다.

  • 일부 사용자 지정 커널은 사용을 /dev/sd[f-p] 또는 /dev/sd[f-p][1-6]으로 제한하는 제약 조건이 있을 수 있습니다. /dev/sd[q-z] 또는 /dev/sd[q-z][1-6]을 사용하는 데 문제가 있을 경우 /dev/sd[f-p] 또는 /dev/sd[f-p][1-6]으로 전환해 보십시오.


ref : https://www.debian.org/releases/stable/mips/apcs04.html.ko

ref : https://docs.aws.amazon.com/ko_kr/AWSEC2/latest/UserGuide/device_naming.html

반응형
반응형

접근 권한 변경(chmod)

- chmod 명령: 기존 파일 또는 디렉토리에 대한 접근 권한(파일 모드)을 변경할 때 사용

- 파일 모드의 변경은 파일 소유자나 슈퍼 유저만 가능

- 파일 모드는 기호(문자)나 8진수로 지정


1. chmod 명령 도움말



- 주요 옵션

 옵 션

 설 명

 -R

 하위 디렉토리와 파일의 권한 까지 변경 (동일 권한을 디렉토리와 파일에 지정)


2. 접근 권한을 기호(문자)로 표현

- 문자 표기법은 변경할 사용자(대상), 수행할 명령(연산), 설정할 퍼미션(접근 권한) 세 부분으로 분류됨

- 다른 대상의 속성을 건드리지 않고 한 대상 속성만을 설정할 수 있는 장점을 가짐

- 복수 지정은 콤마(,)를 사용하여 구분

 구 분

 기 호

 설 명

 사용자

(대상)

 u

 user의 약자, 파일이나 디렉토리 소유자를 의미

 g

 그룹 소유자

 o

 others의 약자, 기타 사용자를 의미

 a

 all의 약자, u,g,o의 조합

 

 아무 문자를 사용하지 않으면 all로 추정

 수행할 명령

(연산)

 +

 추가

 -

 제거

 =

 지정, 기존의 속성 값은 사라짐

 설정할 퍼미션

(접근 권한)

 r

 읽기

 w

 쓰기

 x

 실행


- 사용 예시

 표기법

 의 미

 u+x

 소유자에게 실행 권한을 추가

 u-x

 소유자의 실행 권한 제거

 +x

 모든 사용자(소유자, 그룹, 기타사용자)에게 실행 권한 추가

 o-rw

 기타사용자의 읽기, 쓰기 권한 제거

 go=rw

 그룹, 기타사용자에게 읽기, 쓰기 권한 지정, 이전에 실행 권한을 가지고 있다면 제거됨

 u+x,go=rw

 소유자에게 실행권한을 추가하고 그룹, 기타 사용자에게 읽기, 쓰기 권한 지정

 a=rw

 모든 사용자에게 읽기, 쓰기 권한 지정

 g-w 그룹 소유자의 쓰기 권한 제거

 g+w,o-x

 그룹 소유자에게 쓰기 권한 추가, 기타 사용자의 쓰기 권한을 제거


3. 접근 권한을 8진수로 표현

- 원하는 파일의 접근 권한을 설정하기 위해 8진수 표기법을 사용

- 3자리의 8진수로 소유자, 그룹 소유자, 기타 사용자를 위한 파일 모드를 설정할 수 있음

- r(읽기, 4), w(쓰기, 2), x(실행, 1)

- 2진법과 8진법의 파일 모드

 8진법

 2진법

 파일 모드

 0

 000

 ---

 1

 001

 --x

 2

 010

 -w-

 3

 011

 -wx

 4

 100

 r--

 5

 101

 r-x

 6

 110

 rw-

 7

 111

 rwx


4. chmod 사용 예시








소유권 또는 그룹 변경(chown / chgrp)

- 파일이나 디렉토리의 소유주나 그룹을 변경할 때 사용

- 명령을 실행하고 나면 파일에 대한 이전 소유주는 해당 파일에 이 명령을 다시 실행할 수 없음

- 명령어를 사용하기 위해서는 슈퍼유저 권한이 필요함(보안의 특성상 슈퍼유저만 사용)


1. 파일 소유자와 그룹 변경(chown)

1) chown 명령어 도움말


- 주요 옵션

 옵 션

 설 명

 -h

 심볼릭 링크 파일 자체의 소유주나 그룹을 변경

 -R

 하위 디렉토리와 디렉토리 하위의 모든 파일의 소유주를 변경


2) chown 명령어 사용 예시


2. 그룹 소유권 변경(chgrp)

- UNIX의 이전 버전에서는 chown 명령어가 그룹 소유권이 아닌 파일 소유권만 변경할 수 있었음

- chgrp 명령어: 그룹 소유권을 변경하기 위한 독립된 명령어

1) chgrp 명령어 도움말


- 주요 옵션

 옵 션

 설 명

 -h

 심볼릭 링크 파일 자체의 그룹 소유권 변경

 -R

 하위 디렉토리와 디렉토리 하위의 모든 파일의 그룹 소유권 변경


2) chgrp 명령어 사용 예시


접근 권한 마스크(umask)

- chmod 명령: 기존 파일의 접근 권한을 변경할 때 사용, 8진수로 지정하는 접근 권한은 해당 파일이 가져야 할 권한을 명시함

- umask 명령: 앞으로 만들어질 파일에 영향을 미치는 명령, 명령으로 지정한 8진수는 새로 만들어질 파일에서 제거될 권한을 명시


1. 접근 권한 기본 값(파일과 디렉토리 생성시 접근 권한, 단, umask로 지정한 값은 기본값에서 제거)

- 일반(정규) 파일; 666(rw-rw-rw-) - umask로 지정한 값

- 디렉토리: 777(rwxrwxrwx) - umask로 지정한 값


2. umask 값 설정

- 시스템 관리자는 /etc/profile 파일에 umask를 지정하여 시스템 전체 사용자에게 획일적인 umask값을 적용 가능

- 보통 group과 other의 쓰기권한에 제한을 두는 022를 많이 사용


3. umask 명령어 사용 예시





ref : http://eunguru.tistory.com/93

반응형
반응형
GitHub 를 대체할만한 무료 깃 레포지토리 서비스인 깃 랩에 대해서 간단히 알아봅시다.
(Git 사용법을 안다는 전제로 글을 적겠습니다)

가장 유명한 저장소인 깃허브(GitHub) 에는
대부분의 오픈소스 레포지토리가 올라가있고
각종 대기업들도 사용하며 많은 IDE(개발 도구)들에서 자체적으로 연동을 지원하기까지 합니다.

하지만 가장 큰 단점은,
내가 초대한 사람만 참여할 수 있는 비공개 레포지토리를 만들 경우
별도의 비용이 발생하게 된다는 점입니다.

그래서 지인의 추천으로 사용하게 된 것이 바로 깃랩(GitLab) 입니다.



깃랩에서는 비공개 레포지토리를 무료로 무제한 사용할 수 있습니다. (10명 이하일 경우)


한푼이라도 아껴야만 하는 스타트업에겐 외부 개발인력이나 팀 내에서

무료로 소스를 관리할 수 있는 유용한 서비스라고 볼 수 있겠습니다.


훌륭한 이슈트래커와,

아래와 같은 간단한 개발 업무용 도구도 제공합니다.





이슈트래커 및 협업시 칸반보드로 활용할 수도 있습니다.


마일스톤도 관리할 수 있고요 ㅎㅎ


이러한 협업 도구는 생긴지 얼마 되지 않은 것으로 기억하고 있습니다.


깃허브만 알고 계시던 분들 중,

간단한 서비스 개발을 위한 저렴한 레포지토리를 원하시는 경우

새로운 선택지로  고민해 볼만한 옵션인 것 같습니다.




ref : https://m.blog.naver.com/PostView.nhn?blogId=soulic_&logNo=221019778273&proxyReferer=https%3A%2F%2Fwww.google.co.kr%2F




반응형
반응형
S3 버킷을 삭제 하려고 할때 지우려는 사용자의 권한이 존재하지 않는데 삭제를 하려고 하면 접근 급지 에러가 뜨게 된다, 

이때는 해당 버킷 안에 들어가 > 권한 > 해당 사용자에게 권한을 부여 한다음 버킷 삭제를 처리하면된다



웹 사이트 액세스에 필요한 권한

예를 들어, 버킷을 웹 사이트로 구성하려면 제공할 객체를 공개 읽기로 설정합니다. 이를 위해 모든 사용자에게 s3:GetObject 권한을 부여하는 버킷 정책을 만듭니다. 웹 사이트 엔드포인트에서 존재하지 않는 객체를 사용자가 요청하는 경우, Amazon S3은 HTTP 응답 코드 404 (Not Found)를 반환합니다. 객체가 존재하지만 해당 객체에 대한 읽기 권한을 부여하지 않았다면 웹 사이트 엔드포인트는 HTTP 응답 코드 403 (Access Denied)을 반환합니다. 이 응답 코드를 사용하여 특정 객체가 존재하는지 여부를 유추할 수 있습니다. 이 동작을 원하지 않을 경우, 버킷에 웹 사이트 지원을 설정해서는 안 됩니다.

다음의 예제 버킷 정책은 모든 사용자에게 특정 폴더의 객체에 대한 액세스를 허용합니다. 버킷 정책에 대한 자세한 내용은 버킷 정책 및 사용자 정책 사용를 참조하십시오.

{ "Version":"2012-10-17", "Statement":[{ "Sid":"PublicReadGetObject", "Effect":"Allow", "Principal": "*", "Action":["s3:GetObject"], "Resource":["arn:aws:s3:::example-bucket/*" ] } ] }

ref : https://docs.aws.amazon.com/ko_kr/AmazonS3/latest/dev/WebsiteAccessPermissionsReqd.html





반응형
반응형

CloudFormation 템플릿 : 스크립트 파일이 템플릿 이라 불림

CloudFormation 템플릿 으로 CloudFormation 스택 을 생성하게 됨

스택 : 리소스 모음 , 하나의 단위로 관리할 수 있는 AWS  리소스 모음으로 생성, 업데이트 삭제되며

스택의 모든 리소스는 CloudFormation 템플릿에 의해서 정의된다

예를 들어 스택에는 웹 애플리케이션을 실행하는 데 필요한

모든 리소스(예: 웹 서버, 데이터베이스 및 네트워킹 규칙)가 포함될 수 있습니다.

해당 웹 애플리케이션이 더 이상 필요하지 않은 경우 간단히 스택을 삭제하면 관련 리소스가 모두 삭제됩니다.











스택 작업

스택이란 하나의 단위로 관리할 수 있는 AWS 리소스 모음입니다. 다시 말해서 스택을 생성, 업데이트 또는 삭제하여 리소스 모음을 생성, 업데이트 또는 삭제할 수 있습니다. 스택의 모든 리소스는 스택의 AWS CloudFormation 템플릿에 의해 정의됩니다. 예를 들어 스택에는 웹 애플리케이션을 실행하는 데 필요한 모든 리소스(예: 웹 서버, 데이터베이스 및 네트워킹 규칙)가 포함될 수 있습니다. 해당 웹 애플리케이션이 더 이상 필요하지 않은 경우 간단히 스택을 삭제하면 관련 리소스가 모두 삭제됩니다.

AWS CloudFormation은 모든 스택 리소스가 적절히 생성 또는 삭제되도록 합니다. AWS CloudFormation은 스택 리소스를 하나의 단위로 처리하기 때문에 스택을 생성하거나 삭제하려면 모든 리소스를 생성하거나 삭제해야 합니다. 리소스를 생성할 수 없는 경우 AWS CloudFormation은 해당 스택을 롤백하고 생성된 모든 리소스를 자동으로 삭제합니다. 리소스를 삭제할 수 없는 경우, 스택이 삭제될 때까지 나머지 모든 리소스가 그대로 유지됩니다.

AWS CloudFormation 콘솔API 또는 AWS CLI를 사용하여 스택으로 작업할 수 있습니다.

참고

스택을 곧바로 삭제했더라도 스택 리소스가 작동된 시간 동안 스택 리소스에 대한 책임은 사용자에게 있습니다.



ref : https://docs.aws.amazon.com/ko_kr/AWSCloudFormation/latest/UserGuide/stacks.html


반응형
반응형

 AWS CloudFormation에서 지원하는 리소스 유형 참조


AWS 리소스 유형 참조

이 단원에는 AWS CloudFormation에서 지원하는 모든 AWS 리소스에 대한 참조 정보가 포함되어 있습니다.

리소스 유형 식별자는 항상 다음 형식을 사용합니다.

AWS::aws-product-name::data-type-name

항목

ref : https://docs.aws.amazon.com/ko_kr/AWSCloudFormation/latest/UserGuide/aws-template-resource-type-ref.html


반응형
반응형


AWS Elastic Beanstalk는 Java, .NET, PHP, Node.js, Python, Ruby, Go, Docker를 사용하여 Apache, Nginx, Passenger, IIS와 같은 친숙한 서버에서 개발된 웹 애플리케이션 및 서비스를 간편하게 배포하고 조정할 수 있는 서비스입니다.

코드를 업로드하기만 하면 Elastic Beanstalk가 용량 프로비저닝, 로드 밸런싱, 자동 크기 조정부터 시작하여 애플리케이션 상태 모니터링에 이르기까지 배포를 자동으로 처리합니다. 이뿐만 아니라 애플리케이션을 실행하는 데 필요한 AWS 리소스를 완벽하게 제어할 수 있으며 언제든지 기본 리소스에 액세스할 수 있습니다.

Elastic Beanstalk는 추가 비용 없이 애플리케이션을 저장 및 실행하는 데 필요한 AWS 리소스에 대해서만 요금을 지불하면 됩니다.


ref : https://aws.amazon.com/ko/elasticbeanstalk




반응형
반응형



Auto scaling  을 통해 서벌를 늘리고 서버를 들리는 만큼 DB > RDS 에서도 Master는 쓰기 전용으로 만들어 놓고


Slave DB를 추가로 만들어 Master 와 Slave 가 데이터 동기화 되도록 해놓으면(RDS 가 처리해줌) 어느정도 Auto Scale 에 맞춰 


대응이 되는데 Auto scaling 로 서버가 많이 늘어날 경우 RDS 쪽에서 샤딩으로 데이터베이스를 분할하여 쓰기 작업즉을 분산 시킨다


즉 쓰기로 몰려 있는 Master 의 부하를 샤딩으로 줄여줄 수 있다




DB를 분산(읽기 , 쓰기)처리를 하기위해선 


코드 상에서 읽기 DB 주소와 쓰기 DB주소를 얻어온 후 각각 쓰기와 읽기를 처리하면 된다 



반응형

+ Recent posts