그래오늘은이거야

맥북 AWS웹 서버 구축 (JAVA 자바, Tomcat 톰캣) 설치 및 설정 하기 본문

세상 개발/Java(SpringFramework)

맥북 AWS웹 서버 구축 (JAVA 자바, Tomcat 톰캣) 설치 및 설정 하기

jinhongstar 2018. 3. 30. 15:12
728x90
반응형

안녕하세요. LEO 입니다.


 이번에 하는 포스팅은 아마존 웹 서버에 관련해서 포스팅을 작성하려고 합니다.


개념적인 것 부터 이해 하셔야 합니다.


2018년 4월 기준으로 작성된 최신글 입니다.


저는 맥용 맥북 터미널을 이용하여 셋팅 했습니다.


윈도우 로 로그인 및 서버 접속하려면


PuTTY를 사용하여 Windows에서 Linux 인스턴스에 연결

https://docs.aws.amazon.com/ko_kr/console/ec2/instances/connect/putty



아마존에서 한글을 지원해서 한글버전으로 새로 올려드립니다.



AWS 는 리눅스 서버로 아마존에서 제공해주는 서버라고 생각 하시면 됩니다.


아마존 AWS 서비스에 회원가입을 시작합니다.


회원가입 할때 해외는 무조건 카드정보를 입력해야 하는 것으로 알고 있습니다.



해외카드가 없으시다면 가입하기 어려울 겁니다.




클릭시 안내문구를 꼼꼼히 잘 읽어 보시길 권정합니다.


돈을 지불 할 수 도 있습니다.




개인 계정으로 연습 후 회사 계정으로 셋팅 하려고 개인 계정으로 만들었습니다.



회원 가입은 어렵지 않으니 작성은 SKIP  하도록 하겠습니다.


로그인 후 상단 서비스 - 컴퓨팅 -  EC2  를 선택합니다.





그 후 인스턴스 생성을 합니다. 인스턴스 시작을 누른 후





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


Ubuntu Server 14.04 LTS (HVM), SSD Volume Type







설정 서버를 하나 만듭니다.


서버를 만들면 아마존회사에 여러 서버중 한대를 임대하여 만드는 겁니다.


개인  PC와는 완전 별개 무관하니 이점 참고하세요!!




왼쪽 메뉴 리스트에 인스턴스 목록에 들어가서 생성해도 무관합니다.



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



프리티어 사용에 대하여 잘 읽어보시고 무료로 사용할 수 있는 한도가 있으니 꼭 참고 하시기 바랍니다.


 자세히 알아보기



검토 및 시작을 하면



단계 7: 인스턴스 시작 검토



내용 잘 확인하시고 시작을 합니다.


키 페어 생성 pem 파일은 꼭 잘 갖고 계시길 바랍니다.


FTP연동할때나 아마존 서버에 로그인할때 꼭 필요한 내용입니다.


pem 파일 이 외부 노출되거나 해킹 당하면...


사용중인 서버를 다른 곳에서 사용하여 엄청난 돈이 나올 수도 있으니 이점 꼭 유의하시길 바랍니다.



다시 메인으로 돌아와서 


로그인 후 상단 서비스 - 컴퓨팅 -  EC2  를 선택합니다.


 왼쪽 메뉴 리스트에 인스턴스를 선택합니다.







인스턴스 시작을 누르면 인스턴스 상태가 초기화 - 서버 셋팅 - running 상태가 될 것 입니다.


마우스 오른쪽 클릭 하면 연결 버튼이 보일 겁니다.


연결을 누르면 


인스턴스에 연결


PuTTY를 사용하여 Windows에서 Linux 인스턴스에 연결

https://docs.aws.amazon.com/ko_kr/console/ec2/instances/connect/putty



맥북은 터미널을 연 다음 위에 텍스트 1부터 복사하여 텍스트 3까지 나온 텍스트를 그대로 ctrl+c / ctrl+v 신공으로


서버에 접속 할 수 있습니다!!!


Are you sure you want to continue connecting (yes/no)? yes


서버 접속 전에 물어보면 yes를 입력해야 합니다.


running 후 복사 붙여 넣기로 서버에 접속하면 



mac-seersui-MacBook-Pro:KeyChain mac_seers$ chmod 400 SmartPatchUbuntuServerKey.pem

mac-seersui-MacBook-Pro:KeyChain mac_seers$ ssh -i "SmartPatchUbuntuServerKey.pem" ubuntu@ec2-13-209-22-223.ap-northeast-2.compute.amazonaws.com

The authenticity of host 'ec2-13-209-22-223.ap-northeast-2.compute.amazonaws.com (13.209.22.223)' can't be established.

ECDSA key fingerprint is SHA256:PuG7KXUiZnSM8kSFK3Z7LATfhxSjKME2Bg2LUM7JK6Y.

Are you sure you want to continue connecting (yes/no)? yes

Warning: Permanently added 'ec2-13-209-22-223.ap-northeast-2.compute.amazonaws.com,13.209.22.223' (ECDSA) to the list of known hosts.

Welcome to Ubuntu 16.04.4 LTS (GNU/Linux 4.4.0-1052-aws x86_64)


 * Documentation:  https://help.ubuntu.com

 * Management:     https://landscape.canonical.com

 * Support:        https://ubuntu.com/advantage


  Get cloud support with Ubuntu Advantage Cloud Guest:

    http://www.ubuntu.com/business/services/cloud


0 packages can be updated.

0 updates are security updates.




The programs included with the Ubuntu system are free software;

the exact distribution terms for each program are described in the

individual files in /usr/share/doc/*/copyright.


Ubuntu comes with ABSOLUTELY NO WARRANTY, to the extent permitted by

applicable law.


To run a command as administrator (user "root"), use "sudo <command>".

See "man sudo_root" for details.


ubuntu@ip-172-31-29-46:~$ stop

The program 'stop' is currently not installed. You can install it by typing:

sudo apt install upstart

ubuntu@ip-172-31-29-46:~$ exit


이렇게 로그인 할 수 있습니다.





서버에 로그인 하면 상태 검사 2/2 검사 통과가 나옵니다.


자 이제 리눅스 서버에 로그인 되었으니 Java 와 톰캣을 설치 하겠습니다.


설치 하기전에 Filezilla앱을 통하여 FTP통신해서 파일 보내고 압축 풀고 셋팅 하는 방법을 설명드리겠습니다.


저는 설치하고 싶은 버전을 


자바와 톰캣에 가서 다운로드 받았습니다.


자바사이트 주소가 간혹 바뀔 수 있으니 다운로드 페이지에서 JDK를 다운로드 받으면 됩니다.


JDK 설치 경로


http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html


Linux x64 181.02 MB  jdk-8u162-linux-x64.tar.gz


Accept License Agreement 체크 하신 후 권한에 대한 승인을 받아야 합니다.



아마존 Linux 에 설치해야 하기때문에 본인 PC 환경에 맞는걸 다운로드 받는게 아닙니다.

이버전으로 다운 받으시면됩니다. 



톰캣 설치 경로




https://tomcat.apache.org/download-90.cgi


버전은 상관없고 tar.gz  파일을 다운로드 받으시면 됩니다.



받은 파일은 Downloads 폴더에 있다고 생각하고 



FileZilla 연결 및 로그인



FileZilla  설치 주소 


https://filezilla-project.org/


설치 후 FileZila - 설정



제가 다운로드 받은 pem  파일 잘 갖고 있으라고 한거 여기서 사용합니다.ㅋㅋ


왼쪽 리스트  "SFTP" 선택 


하단 "키 파일 추가"로 pem파일을 등록시켜 줍니다.



이제 키를 등록한 것 이고,


파일 - 사이트 관리자





새사이트를 만들고 사이트 명 작성


호스트는 public 주소 ec2-xx-xx  시작합니다.

프로토콜 : SFTP SSH 설정


로그온 유형은 일반으로 설정해도 비밀번호 물어보기 창이 계속 뜨더군요!!  ㅠㅠ


사용자 : ubuntu


로 설정하면 FTP 접속이 됩니다.





FTP접속후 폴더에 파일을 옮긴 다음 이제 AWS 아마존 리눅스 서버에서 파일을 다루도록 하겠습니다.



public 으로 FTP 접근이 가능한 폴더는 /home  입니다.


그외는 FTP 권한이 없어 파일을 FTP로 옮기려면 별도 설정이 필요합니다.


저는 /home/jdk 폴더에 모두 집어  넣었습니다.




명령어 :


 ls ( 리스트 항목을 보여줘!!)


ubuntu@ip-172-31-29-46:~/jdk$ ls

jdk-8u162-linux-x64.tar.gz apache-tomcat-9.0.6.tar.gz



이렇게 나옵니다.


압축을 풀어 봅니다.


ubuntu@ip-172-31-29-46:~/jdk$ tar xzf jdk-8u162-linux-x64.tar.gz

ubuntu@ip-172-31-29-46:~/jdk$ ls

jdk1.8.0_162  jdk-8u162-linux-x64.tar.gz



압축이 풀린 폴더명이 나옵니다.


필요없는 무거운 tar.gz 파일은 파일 삭제


ubuntu@ip-172-31-29-46:~/jdk$ sudo rm -f jdk-8u162-linux-x64.tar.gz

ubuntu@ip-172-31-29-46:~/jdk$ ls

jdk1.8.0_162



/usr/local 폴더로 이동


ubuntu@ip-172-31-29-46:~/jdk$ sudo mv jdk1.8.0_162 /usr/local/java

ubuntu@ip-172-31-29-46:~/jdk$ ls

ubuntu@ip-172-31-29-46:~/jdk$ ls


ls 를 치면 데이터가 안나오면 정상입니다.


/usr/local 폴더로 접근


ubuntu@ip-172-31-29-46:~/jdk$ cd /usr/local


ls 명령어를 치면 java 폴더로 이동하라고 했으니 확인해 봅니다.

java 폴더가 있는지


ubuntu@ip-172-31-29-46:/usr/local$ ls

bin  etc  games  include  java  lib  man  sbin  share  src



높은 권한으로 Java 환경변수 설정을 합니다.


ubuntu@ip-172-31-29-46:/usr/local$ sudo vim /etc/profile


PATH=$PATH:$JAVA_HOME/bin

export JAVA_HOME=/usr/local/java

export PATH=$PATH:$JAVA_HOME/bin:

이부분 추가.


명령어 

편집 i 누르면 됩니다.

i눌러스 편집 후

esc 누른 후 ": " wq! 누르면 저장하고 나가라 입니다.


# /etc/profile: system-wide .profile file for the Bourne shell (sh(1))

# and Bourne compatible shells (bash(1), ksh(1), ash(1), ...).


if [ "$PS1" ]; then

  if [ "$BASH" ] && [ "$BASH" != "/bin/sh" ]; then

    # The file bash.bashrc already sets the default PS1.

    # PS1='\h:\w\$ '

    if [ -f /etc/bash.bashrc ]; then

      . /etc/bash.bashrc

    fi

  else

    if [ "`id -u`" -eq 0 ]; then

      PS1='# '

    else

      PS1='$ '

    fi

  fi

fi


if [ -d /etc/profile.d ]; then

  for i in /etc/profile.d/*.sh; do

    if [ -r $i ]; then

      . $i

    fi

  done

  unset i

fi




PATH=$PATH:$JAVA_HOME/bin

export JAVA_HOME=/usr/local/java

export PATH=$PATH:$JAVA_HOME/bin:




~                                                                                                                                                                                                                                                                        

~                                                                                                                                                                                                                                                                        

~                                                                                                                                                                                                                                                                        

~                                                                                                                                                                                                                                                                        

~                                                                                                                                                                                                                                                                        

~                                                                                                                                                                                                                                                                        

~                                                                                                                                                                                                                                                                        

~                                                                                                                                                                                                                                                                        

~                                                                                                                                                                                                                                                                        

~                                                                                                                                                                                                                                                                        

~                                                                                                                                                                                                                                                                        

~                                                                                                                                                                                                                                                                        

~                                                                                                                                                                                                                                                                        

~                                                                                                                                                                                                                                                                        

~                                                                                                                                                                                                                                                                        

~                                                                                                                                                                                                                                                                        

~                                                                                                                                                                                                                                                                        

~                                                                                                                                                                                                                                                                        

"/etc/profile" 39L, 924C 



소스 적용.  (refrash)



ubuntu@ip-172-31-29-46:/usr/local$ source /etc/profile


java -version


ubuntu@ip-172-31-29-46:/usr/local$ java -version

java version "1.8.0_162"

Java(TM) SE Runtime Environment (build 1.8.0_162-b12)

Java HotSpot(TM) 64-Bit Server VM (build 25.162-b12, mixed mode)


javac -version


ubuntu@ip-172-31-29-46:/usr/local$ javac -version

javac 1.8.0_162



톰캣도 마찬가지입니다.



다운로드 받은 파일 /home/jdk 폴더에 이동 후 ls 명령어를 넣으면



ubuntu@ip-172-31-29-46:~/jdk$ ls

apache-tomcat-9.0.6.tar.gz  tomcat-8.5-doc


이번에도 /usr/local/tomcat9 폴더로 이동



ubuntu@ip-172-31-29-46:~/jdk$ sudo mv apache-tomcat-9.0.6/ /usr/local/tomcat9


 /usr/local/tomcat9 폴더로 이동


cd /usr/local 후 tomcat 9 생성된지 확인 해볼 수 있습니다.



ubuntu@ip-172-31-29-46:~/jdk$ ls

ubuntu@ip-172-31-29-46:~/jdk$ cd /usr/local

ubuntu@ip-172-31-29-46:/usr/local$ ls

bin  etc  games  include  java  lib  man  sbin  share  src  tomcat9



sudo vi /etc/profile 설정

(톰캣 환경 변수 설정)


export JAVA_HOME=/usr/local/java

export CATALINA_HOME=/usr/local/tomcat9

export CLASSPATH=.:$JAVA_HOME/jre/lib/ext:$JAVA_HOME/lib/tools.jar:$CATALINA_HOME/lib/jsp-api.jar:$CATALINA_HOME/lib/servlet-api.jar

PATH=$PATH:$JAVA_HOME/bin:$CATALINA_HOME/bin


# /etc/profile: system-wide .profile file for the Bourne shell (sh(1))

# and Bourne compatible shells (bash(1), ksh(1), ash(1), ...).


if [ "$PS1" ]; then

  if [ "$BASH" ] && [ "$BASH" != "/bin/sh" ]; then

    # The file bash.bashrc already sets the default PS1.

    # PS1='\h:\w\$ '

    if [ -f /etc/bash.bashrc ]; then

      . /etc/bash.bashrc

    fi

  else

    if [ "`id -u`" -eq 0 ]; then

      PS1='# '

    else

      PS1='$ '

    fi

  fi

fi


if [ -d /etc/profile.d ]; then

  for i in /etc/profile.d/*.sh; do

    if [ -r $i ]; then

      . $i

    fi

  done

  unset i

fi


PATH=$PATH:$JAVA_HOME/bin

export JAVA_HOME=/usr/local/java

export PATH=$PATH:$JAVA_HOME/bin:



export JAVA_HOME=/usr/local/java

export CATALINA_HOME=/usr/local/tomcat9

export CLASSPATH=.:$JAVA_HOME/jre/lib/ext:$JAVA_HOME/lib/tools.jar:$CATALINA_HOME/lib/jsp-api.jar:$CATALINA_HOME/lib/servlet-api.jar

PATH=$PATH:$JAVA_HOME/bin:$CATALINA_HOME/bin



~                                                                                                                                                                                                                                                                        

~                                                                                                                                                                                                                                                                        

~                                                                                                                                                                                                                                                                        

~                                                                                                                                                                                                                                                                        

~                                                                                                                                                                                                                                                                        

~                                                                                                                                                                                                                                                                        

~                                                                                                                                                                                                                                                                        

~                                                                                                                                                                                                                                                                        

~                                                                                                                                                                                                                                                                        

~                                                                                                                                                                                                                                                                        

~                                                                                                                                                                                                                                                                        

~                                                                                                                                                                                                                                                                        

~                                                                                                                                                                                                                                                                        

~                                                                                                                                                                                                                                                                        

~                                                                                                                                                                                                                                                                        

~                                                                                                                                                                                                                                                                        

~                                                                                                                                                                                                                                                                        

~                                                                                                                                                                                                                                                                        

"/etc/profile" 39L, 924C    



source /etc/profile 


소스 적용



ubuntu@ip-172-31-29-46:/usr/local$ cd tomcat9


ubuntu@ip-172-31-29-46:/usr/local/tomcat9$ ls

bin  conf  lib  LICENSE  logs  NOTICE  RELEASE-NOTES  RUNNING.txt  temp  webapps  work


ubuntu@ip-172-31-29-46:/usr/local/tomcat9$ sudo vi /etc/profile 


ubuntu@ip-172-31-29-46:/usr/local/tomcat9$ source /etc/profile


ubuntu@ip-172-31-29-46:/usr/local/tomcat9$ ls


bin  conf  lib  LICENSE  logs  NOTICE  RELEASE-NOTES  RUNNING.txt  temp  webapps  work

ubuntu@ip-172-31-29-46:/usr/local/tomcat9$ cd /usr/local/tomcat9/bin





이제 톰캣 서버를 올려 보겠습니다.


해동 톰캣 폴더에 bin 폴더로 이동합니다.


cd /usr/local/tomcat9/bin


ubuntu@ip-172-31-29-46:/usr/local/tomcat9$ cd /usr/local/tomcat9/bin

ubuntu@ip-172-31-29-46:/usr/local/tomcat9/bin$ ls

bootstrap.jar  catalina.sh         ciphers.bat  commons-daemon.jar            configtest.bat  daemon.sh   digest.sh         setclasspath.sh  shutdown.sh  startup.sh       tomcat-native.tar.gz  tool-wrapper.sh  version.sh

catalina.bat   catalina-tasks.xml  ciphers.sh   commons-daemon-native.tar.gz  configtest.sh   digest.bat  setclasspath.bat  shutdown.bat     startup.bat  tomcat-juli.jar  tool-wrapper.bat      version.bat



./startup.sh 명령어 실행 하면 톰캣이 올라오면서


Tomcat started 라고 나옵니다.


ubuntu@ip-172-31-29-46:/usr/local/tomcat9/bin$ ./startup.sh

Using CATALINA_BASE:   /usr/local/tomcat9

Using CATALINA_HOME:   /usr/local/tomcat9

Using CATALINA_TMPDIR: /usr/local/tomcat9/temp

Using JRE_HOME:        /usr/local/java

Using CLASSPATH:       /usr/local/tomcat9/bin/bootstrap.jar:/usr/local/tomcat9/bin/tomcat-juli.jar

Tomcat started.



아마존 public 셋팅한 주소 뒤에 : 8080을 붙이면 오류가 날 것입니다.


그 이유는 8080 셋팅을 안했네요..


하는 방법은

NETWORK & SECURITY -  보안 그룹


으로 이동 하신 후 편집 버튼 눌러서 아래 유형과 똑같이 만들면 됩니다. 



대부분 launch-wizard-1  으로 셋팅하면됩니다.

저는 서버가 2개로 만들어서 리스트에 두개가 노출 되는 것 입니다.




모든 설정이 끝나면 


아마존 서버에 로그인 되어 접속이 가능합니다.


ec2-xx-xx-xx-x.... amazon.com:8080 으로 접속완료



참 쉽죠 ??


...




반응형
Comments