관리 메뉴

개발캡슐

2022.07.20~23_5주차_버킷리스트 프로젝트&내 홈 전세계배포_7강~8강 본문

스파르타코딩클럽-항해99_9기/5주차_Projects02, GET, POST, Filezilla

2022.07.20~23_5주차_버킷리스트 프로젝트&내 홈 전세계배포_7강~8강

DevGreeny 2022. 7. 23. 23:08

5-7강. 내 프로젝트를 서버에 올리기

  • 이제 드디어 내 서비스가 인터넷에 올라갈거야.
  • 내 서비스가 인터넷에 계속 살아있으려면? 어떤 조건이 필요할까!

1_내 프로젝트를 서버에 올리는 거야.

  • localhost:5000에 몇 가지 세팅을 해주면 어디서든 접근이 가능한 진짜 서버가 돼.
  • 조건
    • 컴퓨터가 계속 켜져있어야 하고 프로그램이 실행되어 있어야 해.
    • 그리고 모두가 접근할 수 있게 공개 IP주소로 만들어야 해. 내 컴퓨터를.
    • 그래서 요새는 클라우드 환경에서 인터넷 세상의 남의 컴퓨터를 사서(빌려써서) 우리의 어떤 실행 파일이나 서버를 올려두고 돌려.
      • mongoDB도 클라우드환경에서 돌렸기 때문에 트래픽 대응도 편하잖아?
      • 똑같아. 이렇게 해놓으면 트래픽 대응도 쉬워지고 여러가지 서비스들을 붙이기도 쉬워져.
    • 그래서 AWS에서 우리가 컴퓨터를 빌려서 그 빌린 컴퓨터를 켜고 빌린 컴퓨터 안에서 서버를 실행하고 종료를 해볼거야.

 

 

5-8강. AWS 서버 구매할거야.

  • AWS에서 컴퓨터를 구매할거야.
  • 리눅스라는 OS를 가진 컴퓨터
    • 리눅스 = 오픈소스
    • 대부분의 회사에서 컴퓨터를 빌려 쓸 때는 리눅스가 깔린 컴퓨터를 빌려써.

1_EC2 콘솔페이지

1. 코드스니펫 - EC2 콘솔페이지로 이동 - 로그인

 

 

2. 언어 -한국어, 지역설정

=> 서울 어딘가에 서버가 모여있는 그 컴퓨터 중에 한 대를 빌려쓴다라고 생각하면 돼.

 

 

3. 인스턴스메뉴에서 인스턴스 클릭

=> 클릭하면 아무것도 없어.

  • 인스턴스 시작 클릭하자

 

 

4. 단계1 : AMI(Amazon Machine Image) 선택

1) Amazon Machine Image에서 ubuntu 선택해주고

 

 

2) ubuntu Sever 20.04를 선택

 

  • 여기서 프리 티어 사용 가능이란, 1년 동안 한 대에 대해서 무료란 얘기야.
  • 한 대 끄고 다시 해도 무료인데, 두 개를 같이 해놓지만 않으면 돼.
  • Ubuntu Server 20.04 선택해줘.

 

 

5. 단계2 :인스턴스 유형 선택

  • 이대로 유지

 

6. 단계3 : 검토 및 시작, 키 페어생성

  • 새 키 페어 생성 -> 키 페어 이름은 아무거나. ex) arj_mykey -> 나머진 그대로 하고 pem으로 생성 및 다운로드 -> 다운로드는 바탕화면에.
  • 그리고 인스턴스 시작 눌렁
  • 그럼 하단에 모든 인스턴스보기 또는 인스턴스 보기버튼 클릭. 하면 아래 화면에서 새로고침 버튼 눌렁. 그럼 저런 실행 중 혹은 대기 중이라고 뜨는데 대기중이라고 뜨면 조금 기다리면 실행중이라고 상태가 바뀌어.

=> 이렇게 실행중으로 뜨면 컴퓨터가 켜진 거야.(컴퓨터 전원버튼 누르고 킨거랑 똑같아.)

 

7. ※그런데 우리가 작업하다가 뭔가 잘못되서 새로 하나 만들고 싶을 때,

  • 해당 인스턴스에 마우스 오른쪽 버튼 클릭하면 메뉴 떠.
    • 인스턴스 중지 : 컴퓨터를 그냥 끈 것.
    • 인스턴스 종료 : 컴퓨터를 반납. (만약에 내가 새로 하나 만들고 싶으면 중지가 아니고 종료한 다음인스턴스 시작 다시 눌러서 만드는거야. )

 

 

8. 접속해 볼거야.

1) 바탕화면으로 가서 윈도우의 경우 git-bash 켜줄거야.

  • 맥(Mac)의 경우는 Spotlight를 켜줄거야.
    • Spotlight키고 terminal이라고 입력하면 터미널 창이 켜질거야.
    • 맥은 사전작업할 거야.
    • 터미널에 sudo chmod 400 뒤에 키페어 파일 끌어다 놓으면이렇게 써질거야.
sudo chmod 400 /c/Users/user/Desktop/arj_mykey.pem

 

        • 이렇게 써질거야.
     
    • 엔터(Enter)치고 본인 맥 비밀번호 입력하면 사전준비 끝.

 

2) 윈도우, 맥 똑같이 이제 작업할 거야.

  • ssh -i 쳐주고 그 뒤에 키 페어 파일 끌어서 갖다가 붙여줘.
  • 뒤에 띄우고 ubuntu@도 써줘. 그럼 이렇게 돼.
$ ssh -i /c/Users/user/Desktop/arj_mykey.pem ubuntu@

 

  • 그 후 엔터치지말고
  • 그 다음에 인스턴스가서 해당 인스턴스 한 번 클릭만 해주면 아래 세부정보가 떠.
  • 그리고 퍼블릭 IPv4 주소인 43.200.181.233 이걸 복사버튼으로 복사한 후

 

  • git-bash 창 가서
  • 아래 명령글 뒤에 마우스 오른쪽 버튼 클릭 후
  • Paste(붙이기)(shift+insert)로 복사한 것 붙여주면 돼.
$ ssh -i /c/Users/user/Desktop/arj_mykey.pem ubuntu@

 

  • 이렇게
$ ssh -i /c/Users/user/Desktop/arj_mykey.pem ubuntu@43.200.181.233

 

  • 맥은 그냥 붙여넣어 주면 돼.
  • 그럼 이렇게 되고.

 

  • 그 다음 Enter(엔터)해주면 돼.
  • 그럼 이렇게 뜨는데, yes/no 나오면 yes라고 쳐주고 Enter해줘.

 

 

  • 그럼 이렇게 떠. 이건 우리가 산 컴퓨터에 접속을 한거야. 원격접속.

 

  • 이 리눅스는, 우리가 맥 윈도우처럼 뭔가 이렇게 마우스로 하는 건 없고 명령어로 내려서 하는 거야.
  • 하물며 폴더만드는 것도.

 

 

※명령어

  • mkdir sparta 라고 쳐봐. 이렇게. 폴더 생성 : mkdir 폴더이름
ubuntu@ip-172-31-40-168:~$ mkdir sparta

=> 그럼 이렇게 돼. 아무 일도 안 일어나. 아무 일 안 일어나는 건 리눅스에선 잘 된 거야.

 

 

  • ls(엘에스)를 써보자.
  • ls : 내 지금 위치에서 폴더들을 보자.
ubuntu@ip-172-31-40-168:~$ mkdir sparta
ubuntu@ip-172-31-40-168:~$ ls
sparta
ubuntu@ip-172-31-40-168:~$

 

=> 실제 git-bash 창.

=> 그럼 우리가 만든 sparta가 보일거야.

  • 저 sparta 폴더로 들어가려면(이동하려면) cd sparta 치고 Enter.
ubuntu@ip-172-31-40-168:~$ mkdir sparta
ubuntu@ip-172-31-40-168:~$ ls
sparta
ubuntu@ip-172-31-40-168:~$ cd sparta
ubuntu@ip-172-31-40-168:~/sparta$

 

 

=> 실제 git-bash 창.

=> ~/sparta$이 말은, 내가 원래 ~(물결)에 있었는데 ~/sparta로 들어왔다는 거야.

 

  • 여기서 다시 ls하면 아무것도 없겠지. 아직 빈 폴더니까.
  • 이렇게
ubuntu@ip-172-31-40-168:~$ mkdir sparta
ubuntu@ip-172-31-40-168:~$ ls
sparta
ubuntu@ip-172-31-40-168:~$ cd sparta
ubuntu@ip-172-31-40-168:~/sparta$ ls
ubuntu@ip-172-31-40-168:~/sparta$

 

 

=> 실제 git-bash창.

 

 

  • 그럼 이 폴더(sparta)의 밖으로 나갈려면 cd .. (cd 띄고 ..)이라고 치면 돼.
ubuntu@ip-172-31-40-168:~$ mkdir sparta
ubuntu@ip-172-31-40-168:~$ ls
sparta
ubuntu@ip-172-31-40-168:~$ cd sparta
ubuntu@ip-172-31-40-168:~/sparta$ ls
ubuntu@ip-172-31-40-168:~/sparta$ cd ..
ubuntu@ip-172-31-40-168:~$

 

 

=> 실제 git-bash 창.

 

=> 수백가지 명령어가 있지만 개발자들도 개부분 본인이 늘상 쓰는 거 말고는 찾아서 쓰고 있어.
=> 아직은 ls, cd, mkdir 정도만 알고 있어도 아직은 충분해.

  • mkdir : 폴더생성.
    • ex) $ mkdir 폴더이름(해당 폴더이름의 폴더를 만들어.) => $ mkdir sparta (sparta라는 폴더를 만들어.)
  • cd : 이동.
    • ex) $ cd 폴더이름 혹은 $ cd .. (해당 이름의 경로(폴더)로 이동해. ) => $ cd sparta (sparta라는 폴더로 이동해.)

 

<터미널명령어 모음> 출처 - sparta 강의자료.

ls: 내 위치의 모든 파일을 보여줘.

pwd: 내 위치(폴더의 경로)를 알려줘.

mkdir: 내 위치 아래에 폴더를 하나 만들어.

cd [갈 곳]: 나를 [갈 곳] 폴더로 이동시켜.

cd .. : 나를 상위 폴더로 이동시켜.

cp -r [복사할 것] [붙여넣기 할 것]: 복사 붙여넣기

rm -rf [지울 것]: 지우기 



sudo [실행 할 명령어]: 명령어를 관리자 권한으로 실행한다.
sudo su: 관리가 권한으로 들어간다. (나올때는 exit으로 나옴)

 

※참고로 // 이건 함부로 쓰면 안 됨.

rm -rf [지울 것]: 지우기 

- 한 기업에서 주니어 개발자 한 명에게 맡겼다가 주니어 개발자가 이 코드를 입력하게 되는 상황이 되고
데이터가 싹 날라간 사태가 있었어서 정말 필요할 때 아니면 본인 판단 하에 쓰면 안 되는 코드래. ㄷㄷ

조만간 무슨 사건이었는 지 신문기사 올릴게.