서버의 조건 --> 언제나 응답 가능해야함
언제나 요청에 응답하려면,
1) 컴퓨터가 항상 켜져있고 프로그램이 실행되어 있어야하고,
2) 모두가 접근할 수 있는 공개 주소인 공개 IP 주소(Public IP Address)로 나의 웹 서비스에 접근할 수 있도록 해야해요.
서버는 단순 컴퓨터를 뜻합니다. Node.js로 만든 것 또한 마찬가지입니다.
aws EC2 콘솔페이지 : https://ap-northeast-2.console.aws.amazon.com/ec2/v2/home?region=ap-northeast-2
인스턴스 : 클라우드에 떠있는 컴퓨터들
--> 서버란 것은 컴퓨터를 의미한다.
EC2란 것은 aws서버를 사용함에 있어서 해당 서버를 구성할 컴퓨터를 말하는 것이다.
따라서 새로운 인스턴스를 통해 EC2를 산다는 것은 서버용 컴퓨터를 산다는 것과 비슷한 의미이다.
--> 초반 1년동안은 무상으로 사용할 수 있다.
(프리 티어 확인)
--> 위에서 설명했듯이 인스턴스는 서버를 위한 컴퓨터이다.
따라서 자원(cpu, Memory, 등등)이 할당되어 돌아가게 되는데, 얼마나 자원을 할당할 것인지에 대한 내용이다.
또한 네트워크 성능 같은 부분도 여기서 선택한다.
--> 자원이 많이 들어갈수록 유지비가 비쌀 것이다.
( 중요 ! ) 반드시 키페어를 다운로드 받아서 보관할 것 --> 이것이 있어야 서버에 접속할 권한을 얻음
인스턴스를 시작 한 후 다시 인스턴스 탭으로 가면 인스턴스가 실행되어 있음
--> 클라우드 서버에 컴퓨터를 하나 만든 것
--> 이후 인스턴스를 멈춰야겠다 싶을 때는 우클릭 후, 인스턴스 중지 버튼!
--> 우클릭 후, 인스턴스 종료는 인스턴스를 삭제시킨다는 말과 같다. 즉, 인스턴스를 없애면서 내부의 내용을 전부 날려버린다.
(매우 위험)
--> 다른 컴퓨터에 접속할 때 쓰는 프로그램입니다. 다른 것들 보다 보안이 상대적으로 뛰어남
--> 접속할 컴퓨터가 22번 포트가 열려있어야 접속 가능
--> AWS EC2의 경우, 이미 22번 포트가 열려있음 --> EC2 콘솔의 보안 부분에서 확인가능
윈도우에서 서버에 접속할 경우 --> gitbash라는 프로그램을 이용
--> bash는 'Bourne Again Shell'의 줄임말
--> 스티브 본(Steve Bourne)이라는 사람이 개발한, 최초의 유닉스 '쉘 프로그램'인 sh의 확장판이라는 의미
쉘(Shell)이란 키보드로 입력한 명령어를 운영체제(OS)에
전달하여 해당 명령어를 실행하게끔 하는 프로그램
--> 리눅스 환경 때문 !
리눅스는 유닉스(Unix)계열의 운영체제를 본 떠 만들어졌기 때문에 리눅스는 유닉스의 커맨드라인 툴들을 물려받았음
--> git bash 사이트 : https://git-scm.com/downloads
맥의 경우 리눅스 환경이 구축되어 있기 때문에 기존의 terminal을 그냥 사용하면 되지만,
윈도우의 경우 그렇지 않기 때문에 다른 프로그램의 도움을 받아야 한다.
git bash를 사용한다면 Windows(윈도우) 운영체제(OS) 환경에서도 리눅스 커맨드를 사용할 수 있게 된다.
출처: https://parkjh7764.tistory.com/39 ( 더 잘 설명되어 있음 )
ssh -i 받은키페어를끌어다놓기 ubuntu@AWS에적힌내아이피
--> 키페어는 인스턴스를 시작할 때, 설정한 후 다운 받았던 키패드를 의미함( 접속 권한 부여 ) --> 그 키패드의 경로
--> 아이피는 EC2 콘솔로 가서 세부정보에 퍼블릭 IPv4 주소를 의미함
--> ubuntu@ 부분은 ubuntu라는 계정으로 접속한다는 의미이며 ubuntu는 변경이 없을 때 기본계정임
--> 즉, 해당 ip의 서버에 ubuntu라는 계정으로 접속할 것이라는 의미
--> 완성되면 이런 느낌의 코드가 됨
ssh -i /path/my-key-pair.pem ubuntu@13.125.250.20
이제 접속 완료
--> exit 명령어를 입력하여 ssh 접속을 먼저 끊어주세요.
리눅스는 윈도우 같지 않아서, '쉘 명령어'를 통해 OS를 조작한다. (일종의 마우스 역할)
팁! 리눅스 커널에서 윗화살표를 누르면 바로 전에 썼던 명령어가 나옵니다.
ls: 내 위치의 모든 파일을 보여준다.
pwd: 내 위치(폴더의 경로)를 알려준다.
mkdir: 내 위치 아래에 폴더를 하나 만든다.
cd [갈 곳]: 나를 [갈 곳] 폴더로 이동시킨다.
cd .. : 나를 상위 폴더로 이동시킨다.
cp -r [복사할 것][붙여넣기 할 것]: 복사 붙여넣기
rm -rf [지울 것]: 지우기
sudo [실행 할 명령어]: 명령어를 관리자 권한으로 실행한다.
sudo su: 관리가 권한으로 들어간다. (나올때는 exit으로 나옴)