반응형

 

  PuTTY를 이용해서 원격 EC2 서버에 접속하자. 만약 방법을 까먹었다면 아래 포스팅을 참고하면 된다.

https://extsdd.tistory.com/78

 

[아마존 AWS EC2] #1 EC2 서버 접속하기 / PUTTY 다운 및 설치 / PEM→PPK 변환 / Server refused our key

https://extsdd.tistory.com/77 [아마존 AWS 무료 EC2 서버 생성하기] #3 EC2 인스턴스 생성 / 구축 / 방화벽이란? / 탄력적 IP https://extsdd.tistory.com/76 [아마존 AWS 무료 EC2 서버 생성하기] #2 IAM 계정..

extsdd.tistory.com

1. 패키지 업데이트

 

apt-get update

 

  위 명령어를 쉘에서 실행해주자.

 

 

  완료!

 

2. server 폴더 생성

 

 

 

  먼저 Root 디렉토리에 Server 디렉토리를 만들어주자.

cd /
mkdir server
ls- al

 

  위 명령어를 차례로 입력하면 최상이 폴더 이동 후 server 폴더를 만든다. 그리고 ls-al명령어를 통해 해당 Root폴더에 뭐가있는지 본다. 결과로 server 폴더이 있으면 된다.

 

 

  그리고 그 만들어진 server 폴더로 이동해주자.

cd ./server

 

3. 톰캣 파일 다운

 

 

 

  wget 명령어를 이용해서 설치파일을 받아오자.

wget https://downloads.apache.org/tomcat/tomcat-8/v8.5.55/bin/apache-tomcat-8.5.55.tar.gz

위 명령어를 이용하면 된다.

 

4. 톰캣 압축 해제

 

 

 

tar -zvxf apache-tomcat-8.5.55.tar.gz

 

  그 상태에서 tar 명령어를 이용해 압축을 풀어주자.

5. 톰캣 구동

 

 

 

  일단 설치된 톰캣 폴더로 이동해주자.

cd /server/apache-tomcat-8.5.55/bin

 

  위 명령어를 입력하면 압축풀린 톰캣 폴더로 이동된다.

./startup.sh --톰캣 시작
./shutdown.sh  -- 톰캣 종료

 

  자 위처럼 톰캣/bin 경로에서 ./startup.sh 를 입력하면 톰캣이 시작된다 구동해보자.

 

 

  짜잔 구동 성공~

 

6. 톰캣 구동 확인

 

  http://본인EC2서버IP:8080/

  위 링크로 접속해보자. "본인EC2서버IP" 대신 본인 AWS EC2 인스턴스 IPv4 주소를 입력하면 된다.

 

 

 

  이렇게 고양이가 뜨면 성공~ 만약에 안되면 "sudo reboot now" 명령어를 쳐서 서버를 재부팅하고 다시 톰캣을 구동해보면 된다.

 

#아마존 #AWS #EC2 #인스턴스 #아파치 #톰캣 #설치 #접속 #구동 #우분투

 

 

 

반응형
반응형

 

  PuTTY를 이용해서 원격 EC2 서버에 접속하자. 만약 방법을 까먹었다면 아래 포스팅을 참고하면 된다.

https://extsdd.tistory.com/78

 

[아마존 AWS EC2] #1 EC2 서버 접속하기 / PUTTY 다운 및 설치 / PEM→PPK 변환 / Server refused our key

https://extsdd.tistory.com/77 [아마존 AWS 무료 EC2 서버 생성하기] #3 EC2 인스턴스 생성 / 구축 / 방화벽이란? / 탄력적 IP https://extsdd.tistory.com/76 [아마존 AWS 무료 EC2 서버 생성하기] #2 IAM 계정..

extsdd.tistory.com

1. 패키지 업데이트

 

apt-get update

 

위 명령어를 쉘에서 실행해주자.

 

 

완료!

2. JRE 설치

 

sudo apt-get install openjdk-8-jre

 

  위 명령어를 입력하면

 

 

  진짜 할꺼냐고 묻는데 Y를 입력하고 엔터쳐주자.

 

 

  쮸르륵 ~ 실행이되고 설치가 완료됐다 이제 JDK를 설치하자

 

3. JDK 설치

 

sudo apt-get install openjdk-8-jdk

 

  위 명령어를 입력하자. 똑같이 진짜 할꺼냐고 Y/n묻는게 나오는데 Y치고 엔터!

 

 

 

설치 완료!

 

java -version
javac -version

위 명령어를 입력하면 설치된 자바의 버전을 확인할 수 있다

 

4. 환경 변수 설정

 

 

 

 

which javac --javac 설치경로 확인 readlink -f /usr/bin/javac

 

  위 명령어를 차례로 입력하면 나오는 저 /usr/lib/jvm/java-8-openjdk-amd64 가 추가해야할 환경변수 경로이다. 저 위치를 확인하자.

sudo nano /etc/profile --환경변수 파일 수정

 

환경변수를 수정하기 위해 etc경로에 있는 profile을 수정하자.

 

export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
export PATH=$JAVA_HOME/bin:$PATH
export CLASS_PATH=$JAVA_HOME/lib:$CLASS_PATH

 

  위 내용을 추가하자.

 

 

  맨 아래로 내려서 복붙을 한 뒤 컨트롤+X 를 누른뒤 Y입력 후 엔터를 누르면 저장이 된다.

source /etc/profile -- 프로필 Reload

 

  위 명령어를 이용해 profile을 리로드 해주자.

sudo reboot now --재부팅

 

  위 명령어를 이용해 EC2 서버를 재부팅 해주자.

 

 

  명령어를 입력하면 커넥션이 끊어지는데 재부팅될때까지 몇분 기다렸다가 다시 PuTTY를 이용해 접속해주자.

echo $JAVA_HOME

 

  위 명령어를 이용해 JAVA_HOME 환경변수가 제대로 설정됐는지 보자.

 

 

 

  잘 잡힌다 ㅎㅎ

 

 

#아마존 #AWS #EC2 #인스턴스 #JAVA #자바 #openjdk #JDK #JRE #설치 #환경변수

 

 

반응형
반응형

 

  과거 포스팅을 보면 EC2 인스턴스를 생성할때 3306포트에 대한 방화벽 설정은 다 해줬음으로 바로 연결을 시도해보자.

1. HeidiSql 을 이용한 원격 접속

 

 

 

  HeidiSql을 실행하고 11시방향에 있는 새 연결 아이콘을 눌러주자!

 

 

  다음으로 좌측 하단 7시방향에 있는 신규 버튼(1)을 눌러주자. 그리고 2번쪽으로 가서 해당 세션의 이름을 정해주자. 3번박스로가서 MySQL (SSH tunnel) 로 유현을 변경해주고 4번 호스트 ip는 127.0.0.1 로 가만히 둔다. 5번 박스에 아까 위에서 root 계정으로 접속을 하자. 6번은 따로 안건드렸다면 AWS EC2에 올라간 포트번호가 3306일테니 그대로 둔다. 따로 바꾼사람만 바꿔주면 된다.

 

 

  자 위에 1번 박스에 있는 SSH터널 탭으로 들어가자 Plink.exe의 위치를 설정해달라는건데 난 없었다. 그래서 밑에보면 plink.exe 내려받기 링크가 있는데 가서 받아오자.

https://www.chiark.greenend.org.uk/~sgtatham/putty/

 

PuTTY: a free SSH and Telnet client

PuTTY: a free SSH and Telnet client Home | FAQ | Feedback | Licence | Updates | Mirrors | Keys | Links | Team Download: Stable · Snapshot | Docs | Changes | Wishlist PuTTY is a free implementation of SSH and Telnet for Windows and Unix platforms, along wi

www.chiark.greenend.org.uk

주소는 이거다 접속하자

 

 

  보면 Download it here 링크가 있다 누르자!

 

 

 

  페이지가 이동했으면 스크롤 중간쯤으로 내리거나 아니면 Ctrl+F를 눌러 plink를 검색하면 plink.exe가 검색되는데 각 아키텍쳐에 맞는 파일을 받아주면 된다.

 

 

 

  다시 여기로 들어와서 2번 박스에 아까 받은 plink.exe경로를 잡아줬으면 3번으로 넘어간다. 3번은 자기 AWS EC2 인스턴스의 탄력적 IP를 입력해주면 된다.

 

  혹시 자기 EC2 서버의 IP가 모르는사람은 EC2 설정 페이지를 가면 볼 수 있다.

 

 

  인스턴스를 클릭하고 저기 IPv4 주소가 탄력적 IP주소다 저걸 3번 박스에 입력하면된다. 그리고 4번 박스에는 우리가 로그인하던 EC2 계정인 ubuntu를 입력해주고 5번은 우리가 PuTTY로 접속할때 SSL AUTH로 등록해놓은 ppk파일을 입력해준다. 마지막으로 6번 포트는 3306이 아니고 내컴퓨터에서 가상 포트로 접속할 것임으로 3306이 아닌 안쓰고있는 3307, 3308 이런걸로 정해주고 7번 Open을 해보자

2. 접속 성공

 

 

 

 

  뚜둔 정상적으로 연결이 됐다 ㅎㅎ

 

#아마존 #AWS #EC2 #마리아DB #원격접속 #설정하기 #HeidiSql #plink #ssh #원격

 

 

반응형
  1. 안녕하세요 2021.04.03 15:20

    안녕하세요
    네트워크 유형에 MYSQL (SSH tunnel) 이 없는데 혹시 MariaDB or MUSQL (SSH tunnel) 로 선택하고 이어서 따라해도 될까요?
    또 maria db 포스팅을 따라할때 'access denied for ser 'root'@'localhost' 라는 오류가 떠서 댓글에서 말씀해주신대로 하여 무사히 mariaDB [(none)]> 까지 따라갔었는데요.
    이 포스팅을 따라 열기를 누르면 또 같은 오류 메세지가 뜹니다
    어떻게 해야할까요?

    • Arsene H 2021.10.06 17:24 신고

      root 계정에 plugin이 무엇으로 설정되어있는지를 확인해야해요!

      1. mysql -u root -p 명령어로 접속하세요
      (이전포스팅처럼 puTTy로 접속이요!)
      2. USE mysql 명령어 입력하세요.
      (MariaDB [(none)]>이 MariaDB [mysql]>으로 바뀔거예요)
      3. SELECT user,host,plugin FROM user; 명령어 입력하세요.
      (2x3 박스가 select 됩니다)
      4. root행의 3번째열을 확인해주세요
      (plugin이 아닐가능성이 높아요 예:
      unix_socket)
      5. UPDATE user SET plugin='mysql_native_password' WHERE user='root'; 명령어를 입력합니다.
      (root계정을 plugin으로 바꿉니다.)
      6. FLUSH PRIVILEGES; 명령어를 입력합니다.
      (새로고침인데 안하면 적용안될 수도
      있다더라고요..)

  2. latte 2021.05.17 22:14

    안녕하세요!
    너무 좋은 포스팅 감사합니다! 하나하나 따라해보고 있어요
    저도 위에 분과 똑같은 오류 메세지가 뜨는데 해결 방법이 있을까요?ㅠㅠ

  3. Arsene H 2021.10.06 16:50 신고

    선생님 안녕하세요 이전에도 답글남긴 학생입니다. 포스팅 너무 잘보고있습니다...

    그런데 윗 덧글처럼 Access denied for user 'root'@'localhost' 라는 오류가 뜹니다.... 제발 알려주세요ㅠㅠ 부탁드립니다..

    • Arsene H 2021.10.06 16:55 신고

      참고로 이전 포스팅에서 sudo su root로 변경해서 해야만 되었습니다. 이게 문제일까요????

    • Arsene H 2021.10.06 17:07 신고

      해결했습니다!!!!!!!

반응형

 

 

 

PuTTY를 이용해 설치하려는 EC2 서버에 접속한다.

1. 마리아 DB 설치

 

sudo apt-get install mariadb-server

 

위 명령어를 통해 마리아DB 최신버전을 받아주자.

 

 

자 1번 박스를 보면 위 명령어를 실행했고 2번 박스를 보면 ㄹㅇ 설치할꺼냐는 물음에 Y치고 엔터를 눌러 동의해주자.

 

 

  쭈르륵 뭔가 설치되면서 끝난다.

 

2. 마리아 DB Root 계정 비밀번호 설정

 

mysqladmin -u root -p password '비밀번호'

 

  위 명령어를 입력해 비밀번호를 초기화 해주자!

 

 

  입력후 Enter Password:가 나오는데 비번을 똑같이 쳐주고 엔터를 눌러주자.

3. Maria DB 접속

 

 

mysql –u root -p

 

  위 명령어를 이용해 root 계정으로 마리아DB에 접속하자!

 

 

  짜잔 맨 아랫줄에 MariaDB가 찍히면 접속에 성공한 것이다. ㅎㅎ

4. 테이블 확인

 

show databases;

 

  위 명령어를 입력해주자. 꼭 ; 기호도 붙이는걸 잊지 말자.

 

 

 

 

 

  짜잔 우리가 윈도우에 로컬 마리아DB를 설치했을때처럼 기본 스키마가 들어있당 ㅎㅎ

 

  AWS에 마리아 DB 설치 성공~

 

#아마존 #AWS #EC2 #마리아DB #설치 #방법 #Root계정 #초기비밀번호 #설정

 

 

반응형
  1. 익명 2020.06.19 19:41

    비밀댓글입니다

  2. . 2021.02.05 17:57

    sudo apt-get install mariadb-server 명령어를 실행했을 때 Unable to locate package mariadb-server 라고 나오는경우는 어떻게 해결하나요 ?

    • . 2021.02.05 18:08

      컴퓨터에 MySQL 이 설치되어있어서 오류가 발생했던거 같습니다. 같은 오류가 발생하시는 분들은 MySQL 삭제 후 sudo apt-get update 명령어를 친 후에 다시 sudo apt-get install mariadb-server 를 쳐보세요 !

    • . 2021.02.05 18:15

      이후에 mysqladmin -u root -p password '비밀번호' 하실 때 access denied for user 'root'@'localhost' 오류가 뜨시는 분들은 sudo su 명령어 입력을 통해 root 계정으로 전환 후에 다시 시도해보세요 !

    • Hunter 2021.10.24 10:22

      저도 동일증상이었는데 sudo apt-get update 만 수행해도 설치됐습니다.

반응형

https://extsdd.tistory.com/78

 

[아마존 AWS EC2] #1 EC2 서버 접속하기 / PUTTY 다운 및 설치 / PEM→PPK 변환 / Server refused our key

https://extsdd.tistory.com/77 [아마존 AWS 무료 EC2 서버 생성하기] #3 EC2 인스턴스 생성 / 구축 / 방화벽이란? / 탄력적 IP https://extsdd.tistory.com/76 [아마존 AWS 무료 EC2 서버 생성하기] #2 IAM 계정..

extsdd.tistory.com

  저번 시간까지 PUTTY를 이용해서 원격 서버에 접속하는 법에 대해서 배웠다. 이제 본격적으로 웹 서비스를 만들어 볼껀데 그전에 우리 비전공자분들도 이해를 하고 출발해야 나중에 포기를 안하니, 웹 서비스가 무엇인지 알아보자.

 

  자 일단 학부생 수준부터 이야기 해보면 과거에 프로젝트 하면서 APM서버라는 말을 많이 들어봤을 것이다. 혹은 AMP서버라고도 부르기도 하던데 바로 Apache + PHP + MYSQL 조합으로 연동하여 웹 서비스를 수행하는 것이다. 대략적인 큰 그림은 이것과 비슷하다.

 

웹 서비스 = ①Server  + ②Spring (Project) + ③Database (DBMS)

  자 가장 중요하다고 생각하는 3개 요소를 내 뇌피셜로 한번 써봤다. 자 어떤거부터 알아봐야 할까? Server가 먼지부터 알아보자! 그전에 내가 포스팅 하는 목적은 비전공자들도 이해할 수 있도록 눈높이에 맞는 비유나 표현을 사용할 예정이니 전문 개발자들 분께선 뭐 글이 이따위야! 하시지 마시고 이해해주셨으면 한다.

 

1. Server = Apach Tomcat Server

 

  비전공자도 이해하려면 이걸 어떻게 설명해야할까 고민이 많다. 서버라...음.. 그냥 눈에 보이진 않지만.. 뭔가를 처리해주는.. 로봇같은...역할? 이정도 수준으로 일반인들은 느끼고 잇을 것이다. 

 

  먼저 서버는 WEB 서버가 있고 WAS 서버가 있다. 앗. 비전공자들 이해할 수 있을정도로 쉽게 알려준다 해놓고 시작부터 어려운 것부터 꺼내냐고 할 수 있겠지만.. 나도 고민하다가 이 말부터 꺼내야 뒷 내용 전개가 가능 할 것같다.

 

2. WEB서버  (Web Server)

  자 히스토리부터 살펴보자. 예전엔 WEB 서버라는 것이 주로 쓰였다. 한글 발음 그대로 웹 서버! 들어는 봤을 것이다.  이친구는 정적인 자료의 처리를 해준다. css (화면 레이아웃 설정파일정도), html (웹페이지 화면), 이미지(화면에 띄어지는) 등등 내용이 변하지 않는 파일들의 요청을 들어준다.

  예를들어 우리가 extsdd.tistory.com이라는 웹 주소를 요청하면 서버는 그 요청에 해당하는 화면을 html 파일로 뿌려준다. html과 동시에 위에나온 화면 레이아웃을 설정해주는 css파일 그리고 화면에 띄어줄 이미지들 이것들은 내용이 변하지 않고 정적인 파일이기 때문에 이 WEB서버란 친구가 착실하게 뿌려주는 것이다.

  사용자 입장에선 이 서버로부터 받아낸 html, css, 이미지 등을 조합해 내 화면에 구성해서 띄어주는거다. 이 방법은 정적이기 때문에 그 사이트의 모든 화면들은 모두 html 파일로 서버에 저장해놓고 그걸 그대로 뿌려주는 것이다. 예를들면 로그인 화면, 첫 번째 글을 눌렀을 때 화면, 두 번째 글을 눌렀을 때 화면 등. 그 사이트에서 존재하는 모든 화면이란 화면은 모두 서버에 html 패거리(css, 이미지 등)를 다 저장해 놨던것이다.

 

  이렇게 모든 화면에 대해서 서버가 다 가지고 있다보니 화면을 조금 수정하려고하면 HTML을 전부 수정하거나, 모든 HTML 리소스들을 다 가지고 있다보니 서버 자원들도 커지고, 한 화면마다 다 하나하나 요청을 처리하다보니 부하도 있고 문제가 많았다. 그래서 등장한게 바로 Dynamic Web이다. 동적 웹!!

 

3. WAS서버 (Web Application Server)

  기존 Web server의 한계는 위에 적어놨고, WAS는 한층더 발전된 개념이다. 바로 Dynamic 해졌다..! 한국말로는 동적으로 변했다..! 이게뭐냐면 Servlet Container라는 개념이 추가됐다. 이게 머냐면은 사용자가 웹 페이지 요청을 보내면 이 Servlet Container 라는 친구가 요청을보고 아! 이요청은 이화면에 이런 정보들이 필요한 페이지구나!! 하고 이친구가 뚝딱뚝딱 정보를 만들어서 실시간으로 html파일을 만들어버린당..! 그리고 그걸 바로 사용자에게 줘버린다..ㄷㄷㄷㄷㄷㄷㄷㄷㄷㄷ

 

  즉. 예전처럼 웹 사이트의 모든 html파일을 가지고 있지않아도, html을 어떻게 만들지 정도만 정의해 놓으면 이 WAS라는 친구가 그 요청에 필요한 html을 만들어버리는 것이다.! 구몬을 얼마나 해야 이런 아이디어가 나오지..! 이렇게 되면 모든 리소스를 미리 안가지고 있어도 되는 장점이 생기며 그만큼 부하도 적어지게 되는 것이다. 

 

  잘 생각해보면 이게 가능한 이유는 간단하다. 어떤 글을 요청하던 화면이 크게 바뀌진 않는다. 글을 누르면 제목이 있고 본문이 있고 댓글들이 있고.. 그렇다. 큰 틀은 같은데 안에 정보들만 바꿔주면 되는것이다. 그렇게 이 동적 웹서비스를 가능케 하는게 바로 우리 WAS성님 되시겠다.

 

4. WEB서버 + WAS서버

  자 그럼. WAS서버가 좋다고해서 WAS만 쓸까? 아니다. 여전히 이미지파일이나 소수의 HTML과 같은 정적인 리소스들도 아직도 처리해야하기 때문에 WEB서버도 필요하다. 그래서 아주 간단하다. 같이 쓴다. WEB서버와 WAS서버 둘다 같이 사용하는 것이다. 정적인건 WEB이 그대로 처리하고, 동적인건 WAS가 처리하고. 위와 같은 그림이 될 것이다. 우측에 DB는 아직 머리아프니 나중에 알아보도록 하자.

 

  프로세스를 보면 이런거다. 사용자한테 페이지 요청이 서버에 들어오면 처음에 WEB이 받는다. 만약 간단한거 머 이미지나 css파일 처럼 정적인거면 WEB이 바로 반응을 해준다. 헤헤..이거 필요한거지!? 이런식으로... 그런데 살짝 어려운게 왔다. 동적인 페이지 요청이 왔다하면 WEB이 어찌할줄을 몰라하면서 하.....이거 뭐징...ㅠㅠ 하면서 WAS한테 보내서 걔한테 처리하라고 해야겠다 하고! WAS에게 던진다. 근데 WAS는 똑똑하니까 그 동적 요청을 DB에서 정보들을 끌어와서 그 요청에 맞게 HTML을 작성한다. 그리고 그걸 다시 WEB한테 보내고 WEB은 아하!!!!!!!역시 WAS야! 하면서 WAS에게 받은걸 사용자한테 뿌듯해하면서 준다.

5. Apache Tomcat Server

  와우 이제 마지막 개념정리다. 방금까진 살짝 x밥 같았지만 이제야 좀 그럴싸한 내용이 나왔다. 아.파.치. 톰.캣!! 아주~~널리 쓰고 있는 서버구성의 이름이다. 아직 개념이 안잡히면 헷갈릴 수도 있다. 아니 아파치 서버도 있고 톰캣 서버도 있고 아파치 톰캣 서버도 있고! 대체뭐야! 같은건가? 라고도 생각 할 수 있는데 살짝 다르다.

 

가. Apache Server = WEB Server

  아파치 서버라고 하면 위에 계속 설명했던 WEB 역할을 하는 서버의 이름이다.

 

나. Tomcat Server = WAS Server

  톰캣 서버는 WAS서버의 역할을 하는 서버의 이름이다.

 

다. Apache Tomcat Server = WEB Server + WAS server

  아파치 톰캣 서버는 WEB서버와 WAS서버 두개다 동작하는 서버구성이다. 위와 같다고 생각하면 되겠다. 이렇게 구성해놓고 어떤 요청이왔을때 정적인 리소스를 요청하면 Apache가 처리하고 동적인 요청이 오면 Tomcat에게 넘겨 처리하도록 하는 것이다!

6. WAS의 처리 프로세스

  와우 이제 좀..어려워 졌다.. 하지만 WAS를 좀 구체적으로 그린것 밖에 없고 나머지는 다 똑같다. WAS에 대해 더 알아보자면 컨테이너란 녀석이 WAS가 돌아가는 동안은 24시간동안 당직을 서고 있는다. 이 컨테이너라는 친구가 WEB에서 못해먹겠다고 동적 요청을 받으면 그 요청에대한 정보로 httpServletRequest 객체(정보 뭉텅이라고 생각하면 됨)와 httpServletResponse라는 빈 객체를 만들고 그걸 새 쓰레드(작업 단위라고 생각하면 됨)로 생성한다.

 

  이렇게 해당 작업에 대한 쓰레드에 요청과, 응답 객체를 생성해두고 또 다른 한편으론 Web.xml이라는 파일에 접근해 이 요청을 어떤놈이 처리하는지를 알아가지고 온다. 그 요청을 처리하는 친구가 Servlet 즉 서블릿 이란 친군데 담당 Selvlet을 찾아내면 그 서블릿에대 대고 doGet() 함수와 doPost()함수를 실행시킨다. 즉, httpServletRequest에서 전달받은 데이터들로 새로운 동적 페이지를 만드는 거다. 중간에 필요한 정보들은 DB에서 받아오기도 한다. 이렇게 만들어진 결과 페이지는 아까 만들어 두었던 httpServletResponse 객체에 담아놓고 작업이 완료되면 다시 WEB한테 보내는데 WEB은 HTTP(80포트)만 다루는 친구라 알아먹을 수 있게 HttpResponse 형태로 가공해서 WEB한테 던져주게 된다. 

 

  던져 주면서 동시에 방금 만들었던 httpServletRequest, httpServletResponse 객체들 그리고 해당 쓰레드, 즉 작업했던 것 모든것을 소멸시키고 아까 HttpResponse 를 받았던 WEB은 그와중에 그걸 사용자에게 전달하게 되면 요청이 완료가 되는 것이다.

7. Apache Tomcat Server의 Port

https://extsdd.tistory.com/77

 

[아마존 AWS 무료 EC2 서버 생성하기] #3 EC2 인스턴스 생성 / 구축 / 방화벽이란? / 탄력적 IP

https://extsdd.tistory.com/76 [아마존 AWS 무료 EC2 서버 생성하기] #2 IAM 계정 생성 후 권한 부여하기! https://extsdd.tistory.com/75 [아마존 AWS 무료 EC2 서버 생성하기] #1 AWS 회원가입/ AWS란 1. 서론..

extsdd.tistory.com

 WEB 서버인 Apache는 80포트를 이용하고 WAS서버인 Tomcat은 8080포트를 사용한다. 그리고 Apache랑 Tomcat 사이는 AJP라는 프로토콜을 사용하여 8009번 포트를 사용한다. 

그래서 우리가 저번에 EC2 방화벽 설정을 했을때 80포트와 8080포트를 개방시켜 놓은 이유이기도 하다.

  

자 이제 아파치 톰캣이 무엇인지 WEB 서버와 WAS서버가 무엇인지 개념을 잡았으니, 다음은 데이터베이스에 대해서 알아보도록 하자.

 

#아파치 #톰캣 #차이점 #WEB #WAS #서버 #웹서비스 #아마존 #AWS #EC2 #구축하기 #Apache #Tomcat #Server

 

반응형
  1. 익명 2020.05.14 18:23

    비밀댓글입니다

  2. Arsene H 2021.09.29 17:02 신고

    안녕하세요 질문이 있습니다. 지금 DB를 OracleDB를 써서 8080포트가 겹치는데 톰캣서버를 8090으로 해도 되련지요??

  3. 찰도마도 2021.11.06 01:01

    감사합니다!! 이해하는데 많은 도움이 되었어요

반응형

https://extsdd.tistory.com/77

 

[아마존 AWS 무료 EC2 서버 생성하기] #3 EC2 인스턴스 생성 / 구축 / 방화벽이란? / 탄력적 IP

https://extsdd.tistory.com/76 [아마존 AWS 무료 EC2 서버 생성하기] #2 IAM 계정 생성 후 권한 부여하기! https://extsdd.tistory.com/75 [아마존 AWS 무료 EC2 서버 생성하기] #1 AWS 회원가입/ AWS란 1. 서론..

extsdd.tistory.com

  저번 포스팅을 마지막으로 EC2 서버 구축을 끝냈다. 이제 서버에 접속하는 법에 대해서 알아보자.

  우리는 PuTTY라는 툴을 이용해서 EC2 서버에 붙을 것이다. 이 툴은 원거리에 떨어져있는 장치에 원격으로 접속 할 수 있는 터미널이며, 비전공자들은 아마도 해커가 나오는 영화를 보면 이 비슷한 것들을 봤을 것이다. 계정을 입력하고 원격 클라이언트에 붙어서 휘졌고 다니는 것을.

 

  여기서 원격으로 붙는다의 의미는, 원래 전통적으로 내집에 서버를 올리면  서버컴퓨터를 키고 그 컴퓨터랑 연결된 모니터, 자판기, 마우스를 이용해 직접 그 서버 컴퓨터를 조작했었지만. 이제 클라우드 시대아닌가. 내 서버에 대한 자원은 아마존의 데이터센터에 있다. 어딘지도 모르는 수백, 수천 km 떨어진 곳에 내 EC2서버가 돌아가고 있으니 그 먼거리에있는 장치에 내가 원격 접속하는 원리이다.

1. PuTTY 다운

https://putty.ko.softonic.com/

 

PuTTY

완전하고 안정적인 텔넷 및 SSH 클라이언트

putty.ko.softonic.com

  잔말 그만하고 위 링크로 이동해서 PuTTY를 받자.

1. 페이지에 들어가서 무료 다운로드 클릭

2. 여기서도 무료 다운로드 클릭!

1. 하단에 다운되는 것을 보고 완료시 실행시킨다.

2. 긍정적인 버튼들을 눌러주며 설치를 진행한다.

 

 

2. .pem 파일을 .ppk 파일로 변환

  윈도우키나 시작버튼을 누르고 PUTTY를 검색하면 PuTTY앱과 PuTTYgen이 나온다. 우린 지금 PuTTYgen을 이용해서 .pem파일을 .ppk파일로 변환할 것이다. PuTTYgen을 실행해보자.

1. 상단의 Conversions 메뉴→ Import key 버튼을 클릭하여 전에 생성해줬던 .pem(키페어) 파일을 임포트한다.

※ 여기서 아니 무슨 갑자기 pem파일이야 ㅡㅡ 이게 먼데! 하는 사람들은

https://extsdd.tistory.com/77

 

[아마존 AWS 무료 EC2 서버 생성하기] #3 EC2 인스턴스 생성 / 구축 / 방화벽이란? / 탄력적 IP

https://extsdd.tistory.com/76 [아마존 AWS 무료 EC2 서버 생성하기] #2 IAM 계정 생성 후 권한 부여하기! https://extsdd.tistory.com/75 [아마존 AWS 무료 EC2 서버 생성하기] #1 AWS 회원가입/ AWS란 1. 서론..

extsdd.tistory.com

이 글을 참조하면된다. 중간쯤에 AWS_EC2라고 저장한 파일이 .pem 파일이다.

 

2. Save private key 버튼 클릭! 이때 절대 이 키파일은 외부에 노출되지 않도록 하자!

 

1. 경고창이 나오면 예버튼을 눌러주자.

2. PPK파일 확장자를 확인하고 원하는 위치에 저장한다. 이제 PuTTYgen은 종료해도 된다.

짜.잔. ppk 파일 생성!! 비전공자들에겐..! 그냥..! 공인인증서 정도로 생각하면 쉽다..! 물론.."공인"은 아니지만..

 

3. PuTTY EC2 인스턴스 서버 접속

  자 이제 PuTTY를 이용해서 원격 서버에 접속할껀데 어느 서버에 접속할지 주소를 알아야한다. 바로 IP주소!! 머리가 좋은 사람은 여기서 말한 IP주소가 저번 포스팅에서 했던 탄력적 IP란걸 알고있을 것이다. 모르는 사람들은 밑에 방법으로 알아내면 된다.

https://ap-northeast-2.console.aws.amazon.com/ec2/v2/home?region=ap-northeast-2#Addresses:

 

https://ap-northeast-2.console.aws.amazon.com/ec2/v2/home?region=ap-northeast-2#Addresses:

 

ap-northeast-2.console.aws.amazon.com

위 링크에 접속해서 좌측 탄력적 IP를 누르면 내 인스턴스에 할당된 IPv4 주소가 있다. 그게 바로 자기 EC2 인스턴스의 IP다. 바로 주소!!

 

  1. PUTTY를 실행하고 HostName에 자기 IP주소를 넣어준다. 프로토콜은 SSH로 연결할 것이기 때문에 22번 포트로 그대로 둔다.

  2. 좌측에 SSH탭 밑에 AUTH를 눌러주고 우측  Browse 버튼을 눌러 아까 만들어놨던 .ppk 파일을 불러와준다. 

  1. 이 연결을 저장시키기위해 11시방향 세션을 눌러주고 Saved Sessions 텍스트박스에 연결이름을 설정하고 Save 버튼으로 저장한다. 이제 마지막으로 Opne 버튼을 눌러준다.

  2. 연결을 신뢰하냐는 짊누에 예를 눌러준다.

  와우 shit~ 먼가 됐다.

 

ubuntu를 입력하고 엔터를 눌러주자!

shit~~~~~~~~~~~~~ 연결이 되버려따..! 혹시나 

 

이런 메시지가 나오면서 PUTTY상에 "Server refused our key" 메시지가 나왔다면 사용자 이름이 틀렸을 가능성이 있다.

 

우린 Ubuntu AMI로 인스턴스를 생성했기 때문에 이름이ubuntu인거고 다른 AMI로 설치했다면 계정이 달라진다.

 

Ubuntu AMI : ubuntu

Amazon Linux2 : ec2-user

Amazon Lunux AMI : ec2-user

Debian AMI : admin or root

Fedora AMI : ec2-user or fedora

 

위처럼 각 AMI마다 사용자 명이 다르니 알맞게 입력하면 된다.

 

 

이제 이 서버에 원격으로 접속해서 서비스를 하나씩 올려보도록 하자

 

 

 

#아마존 #AWS #EC2 #인스턴스 #서버 #PUTTY #SSH #접속 #PEMPPK변환 #ServerRefusedOurKey

 

 

 

 

 

 

 

반응형
반응형

https://extsdd.tistory.com/76

 

[아마존 AWS 무료 EC2 서버 생성하기] #2 IAM 계정 생성 후 권한 부여하기!

https://extsdd.tistory.com/75 [아마존 AWS 무료 EC2 서버 생성하기] #1 AWS 회원가입/ AWS란 1. 서론 대학생이었을 때는 웹 서비스에 큰 관심이 없었으나, 회사 일을 시작하고 나서부터는 웹 서비스가 재밌다는..

extsdd.tistory.com

이제 사전 셋팅은 끝났고 드디어 실제로 EC2 서버를 생성한다.

https://ap-northeast-2.console.aws.amazon.com/console/home?region=ap-northeast-2

 

https://ap-northeast-2.console.aws.amazon.com/console/home?region=ap-northeast-2

 

ap-northeast-2.console.aws.amazon.com

 

1. 서비스 찾기에서 EC2를 검색해주자.

2. 살짝 내려보면 인스턴스 시작 버튼이 있다 클릭해주자.

  1. 우리는 스프링 프로젝트를 올리기위해서 리눅스 기반인 우분투를 설치해주자! 이때 꼭 프리티어 사용 가능인지를 봐야한다! 안보고 아무거나 했다가는 나중에 요금이 과금될 수 있다.

  2. 서버 성능을 고르는건데 프리 티어는 어차피 t2.micro로 고정이다... 그냥 다른 하드웨어 머있는지나 구경하고 다음단계로 넘어가자. 이것도 역시 프리 티어 사용가능인지 확인하자.

  1. 이전 포스팅에서 만들었던 EC2_role을 IAM역할에 추가해준다.

https://extsdd.tistory.com/76

 

[아마존 AWS 무료 EC2 서버 생성하기] #2 IAM 계정 생성 후 권한 부여하기!

https://extsdd.tistory.com/75 [아마존 AWS 무료 EC2 서버 생성하기] #1 AWS 회원가입/ AWS란 1. 서론 대학생이었을 때는 웹 서비스에 큰 관심이 없었으나, 회사 일을 시작하고 나서부터는 웹 서비스가 재밌다는..

extsdd.tistory.com

못 본사람은 참조하면 된다.

  2. 디폴트는 스토리지 크기가 8기가지만, 프리티어에서 최대 사용가능한 용량은 30기가이기 때문에 30으로 설정해주고 넘어간다.

1. 태그 추가는 그냥 넘어가면 된다.

  자 여기 설정은 좀 봐야 한다. 내 EC2 서버에 방화벽을 설정하는 화면인데, 저기 추가된 포트들만 개방하겠다는 뜻이다. 비 일단은 SSH는 기본적으로 있을 것이고 나머지 HTTP, HTTPS, 사용자 지정TCP, MYSQL/Aurror을 추가해서 위 처럼 입력해준다.

  비전공자도 이해할 수 있도록 쉽게 설명해 보겠다. 내 서버 주변으로 성곽처럼 방화벽이란게 둘러져 있는데, 이 방화벽이란 친구들은 port라는게 있다. 성곽으로 따지면 문이다! 서울 성곽에 동대문, 서대문, 남대문이 있듯이 방화벽이란 친구에겐 0 ~ 65535번 Port까지 가지고 있다. 즉 65535개의 문을 가지고 있는건데, 이 6만5천개의 모든 문을 열어놓으면 보안에 취약할수 밖에 없을것이다. 그래서 서버를 구축할때 서버에 모든 port를 닫고 방화벽에 내가 사용할 Port들만 개방할 수 있도록 등록을 하는 것이다.

 

 자 우리가 알고있듯이 인터넷! 네이버든 다음이던 우리가 주소를 치고 들어갈때 http로 시작하는 주소들을 본적이 있을것이다. HyperText Transfer Protocol의 약자로써 www(world wide web)상에서 정보를 주고받을 수 있는 통신 규약이라고 생각하면 된다. 거기에 더 보안이 강력해져 secure해진 친구가 s가 붙어 https라고 불리며 더 안전한 통신 프로토콜을 보장해준다. 이처럼 우리 인간이 쉽게 이해할 수 있는 http나 https같은 프로토콜들은 컴퓨터가 이해하도록 숫자로 바꿔줘야한다. http는 80포트를 사용하고 https는 443포트를 사용한다. 그래서 저 두포트를 방화벼에 등록시키면 기본적으로 웹 서비스 요청은 서버가 받아들일 수 있다는 것이다! 반면에 FTP요청처럼 등록되지 않은 친구들의 요청이 오면 방화벽이 해당 포트가 열렸는지 확인하고 열리지 않았으면 요청을 반려시킨다.

 

  자 이제 방화벽이뭐고 포트가 뭔지 알아봤으니 우리가 우리 EC2서버 방화벽에 어떤 포트를 개방할지 한번 보자.

 

SSH 22번 포트 : Secure Shell이라고 불리며 우리 EC2서버 구축후 이걸 제어하려면 원격으로 붙어야하는데 그 서비를 지원하는 포트가 바로 이 22번 포트인거다. 그래서 디폴트 값으로 이건꼭 필요하기에 SSH포트는 등록되어 있는 것이다.

HTTP 80포트 : 위에 설명 했듯이 웹 서비스 생각하면 된다.

HTTPS 443포트 : 더 보안이 강력해진 웹 서비스

사용자 지정 TCP 8080 : 스프링 프로젝트를 올려 WAS를 구동시키려면 톰캣을 돌려야하는데 톰캣 포트가 8080이다. 

MYSQL/Auror 3306 : Maria DB 를 이용하기 위해 포트를 개방해준다.

 

  마지막으로 소스 IP주소가 0.0.0.0인 것은 이 포트에 모든 IP를 허용하겠다는 뜻이다. 이제 끝났으니 검토 및 시작 버튼을 눌러주자.

  1. 마지막으로 서머리를 해주는데 훝어보고 시작하기를 눌러보자.

  2. 키 페어를 생성해야하는데 쉽게말해서, 이 EC2서버로 접속하기 위한 인증서라고 생각하면 된다. 우린 기존 키페어가 없으니 새 키페어를 생성해 놓는다. 생성한 키페어는 절대로!!! 잃어버리면 안되니 꼭!!! 어느 위치에 저장할지 기억해 놓자. 키페어 다운로드! 그리고 다운로드가 완료됐으면 인스턴스 시작을 눌러준다!

  와우! 인스턴스가 생성됐다!! 일단 혹시 요금 과금이 무서운 사람들은 결제 알림 생성에 들어가 이메일을 등록해놓도록 하자

  다음 해야할 작업은 탄력적 IP를 등록해야 한다. AWS EC2는 껏다 키거나 시간이 지나면 IP바 바뀌게 되어있는데 IP주소가 바뀌면 웹 서비스를 고정적으로 운영할 수 없게 된다. 그래서 고정 IP를 등록을 해야한다. 프리티어에서는 1개의 고정IP를 무료로 등록할 수 있다. 추가로, 고정 IP를 할당해 놨는데 인스턴스를 연동해놓지 않으면 또 요금이 부과된다. 아마존 입장에서는 고정IP한개가 아무것도 사용하지 않으면 손해가 발생하기 때문이다.

  1. 뭐 별거 없다. 탄력적IP주소 할당을 눌러주자.

  2. 여기도 별거 없다 할당을 눌러주자.

와우~ IP가 생겼다~ 이제 이 발급받은 IP를 내 EC2 서버랑 연결시켜주자! 우측에 "이 탄력적 IP주소 연결"버튼 클릭!

  아까 생성했던 인스턴스를 선택하고 연결하자!

짜잔~ 마침내 AWS EC2 서버구축이 끝났다!

 

다음편부턴 이제 이 EC2 서버에 원격 접속하는 법에 대해 알아보자!

 

#아마존 #AWS #무료 #EC2 #서버 #생성 #구축 #인스턴스 #방화벽 #탄력적IP

반응형
  1. 익명 2020.05.05 23:53

    비밀댓글입니다

  2. 익명 2020.05.06 11:39

    비밀댓글입니다

  3. 익명 2020.05.06 11:41

    비밀댓글입니다

    • 외장_하드 2020.05.06 12:07 신고

      아아 윈도우계열은 원격 접속포트가 3389라서 저건 필수포트니까 저렇게뜬거네요 방화벽헤 3389도 추가하며될것같아요!

  4. 안녕하세요 2021.03.31 20:24

    안녕하세요
    보안 그룹 구성 부분에서
    사용자 지정 TCP / TCP / 8080 / 0.0.0.0/0, ::/0
    부분을 잘 따라서 입력하였는데
    <소스는 CIDR 블록이나 보안 그룹 ID이어야 합니다>
    라는 경고문구가 나오며
    검토 및 시작버튼을 클릭할 수 없습니다
    혹시나 하여 소스를
    내 pc로 설정해보았으나 마찬가지로 넘어갈 수 없었습니다

    혹시 어떻게 해결할 수 있을지 조언부탁드리겠습니다.
    감사합니다

    • 안녕하세요 2021.04.01 12:45

      사용자지정tcp 가 아니라
      그 아래 있는 mysql/aurror 의 소스 설정이 누락된게 문제였습니다ㅎㅎ
      질문을 지우려했으나 비밀번호도 잊었고..
      혹시 저와 같은 실수를 하실 분들을 위해 남겨두겠습니다

      유용한 포스팅 감사합니다 :)

  5. Arsene H 2021.09.30 18:03 신고

    생성 이후에 보안그룹구성 수정할 수 있나요??

반응형

https://extsdd.tistory.com/75

 

[아마존 AWS 무료 EC2 서버 생성하기] #1 AWS 회원가입/ AWS란

1. 서론 대학생이었을 때는 웹 서비스에 큰 관심이 없었으나, 회사 일을 시작하고 나서부터는 웹 서비스가 재밌다는걸 조금 느끼고 있다. 코딩글은 오랫만에 써보는데 이번에 해볼 것은 아마존 AWS에서 무료 EC2..

extsdd.tistory.com

  자 저번까지 아마존 AWS 계정 생성하는법에 대해 알아보았고, 이제 바로 EC2 인스턴스를 생성하나 되면 싶겠지만 그 전에 해야할 것이 하나더 있다.

 

  바로 IAM 계정 생성...! 이게 뭐냐면 아주 쉽게 말해서 보안을 강화시키는 것이라고 생각하면 된다. 우리가 저번에 로그인 한 계정은 Root 계정이다. Root란 한국말로 뿌리! 모든 것의 근원이 되는 계정인데 만약 Root 계정이 탈취되면 해당 계정내의 모든 AWS 서비스에 대한 권한도 해커의 손아귀에 넘아가게 된다. 그래서 특정 하나의 권한계정을 만들어서 이 계정은 특정 어떤 서비스만 접근 할 수 있도록 권한을 세분화 하는 과정이라고 생각하면 된다. 만약 AWS계정이 탈취당하면, 자신의 AWS 리소스가 해커의 비트코인 채굴에도 사용될 수도 있고, 이후 발생하는 모든 과금도 본인이 물어야하기 때문에 꼭 IAM 계정을 이용해 권한을 나눠 놓는 것이 좋다.

 

  IAM(Identify and Access management) 의 약자로써 AWS의 자원에 대한 접근 권한을 가진 계정을 생성하는 서비스다. 우리는 IAM계정을 생성해 EC2서비스만 접근할 수 있도록 권한을 주도록 할 예정이다.


1. IAM 그룹 생성하기

https://ap-northeast-2.console.aws.amazon.com/console/home?region=ap-northeast-2

 

https://ap-northeast-2.console.aws.amazon.com/console/home?region=ap-northeast-2

 

ap-northeast-2.console.aws.amazon.com

1. 자 AWS콘솔에 로그인 한 뒤 서비스 찾기에서 IAM을 검색한다.

2. 그리고 좌측 액세스 관리 메뉴에서 그룹을 선택해준다. 그 뒤 새로운 그룹 생성을 클릭!

  1. 생성할 권한 그룹의 이름을 정해준다. 난 EC2 서비스만 접근할 수 있는 그룹임으로 EC2_GROUP으로 설정했다. 그리고 다음단계 버튼을 눌러주자.

  2. 화면을보면 정책들이 쭉 뜰텐데 우린 EC2에 대한 모든 권한을 줄 것이기 때문에 정책유형 검색에 EC2Full을 검색해본다. 그럼 "AmazonEC2FullAccess" 정책이 검색될 텐데 좌측에 체크박스를 선택하고 다음단계를 클릭한다.

1. 그룹생성을 눌러준다.

2. 짜잔 권한 그룹이 생긴걸 볼 수 있다. 


2. IAM 계정 생성하기

1. 이제 저 권한을 쓸 수 있는 계정을 만들기 위해 좌측에 사용자 메뉴를 클릭한다

2. 사용자 이름을 입력하고 액세스 유형은 Programmatic Acess를 선택해주고 다음버튼을 클릭해준다.

  가. Programmatic Access : AWS API에 접근 가능한 ACCESS KEY, SECRET KEY를 부여받는다.

  나. AWS management Console Access : AWS 관리 콘솔에 접근할 수 있는 군한을 부여 받는다.

1. 추가할 권한을 선택하는데 아까 생성했던 권한 그룹을 추가해준다.

2. 태그를 추가하는 화면이 나오는데 당장은 쓰지 않을 것이기 때문에 Name정도만 추가해주고 다음으로 넘어간다.

1. 다 온 것 같다. 사용자 만들기를 눌러주자.

2. 생성이 완료됐다. 이제 비밀 액세스키를 저장해야하는데 .csv 다운로드 버튼을 통해 내 PC나 안전한 곳에 저장해주자. 절대 이 키는 외부에 노출되서는 안된다!!


3. IAM 역할 생성하기

https://console.aws.amazon.com/iam/home#/home

 

https://console.aws.amazon.com/iam/home#/home

 

console.aws.amazon.com

 

1. 다시 메인페이지 에서 좌측에 있는 역할 메뉴를 눌러준다.

2. 역할 만들기 버튼 클릭!

1. EC2를 골라주고 다음 버튼을 눌러준다.

2. 정책 필터에 S3Full을 입력하고 하나 나온거에 체크하고 다음버튼 클릭!

  AmazonS3란 Simple Stoage Service로써 AWS 저장소라고 생각하면 된다.

1. 태그는 간단히 Name을 추가해주고 다음!

2. 역할이름을 정해주도 역할 만들기를 눌러준다!

자 이걸로 IAM 추가 끝!

 

이제 다음 포스팅에서 바로 EC2 인스턴스 생성에 대해서 알아보자!

 

 

#IAM #그룹생성 #계정생성 #EC2 #인스턴스 #무료생성 #AWS #아마존AWS #권한 #역할

반응형

+ Recent posts