본문 바로가기
환경

아마존 서버(AWS)를 이용해서 무료 클라우드(cloud) 서버(EC2)를 만들어 보자.

by SSaMKJ 2014. 4. 17.



아마존 서버를 사용해보기 위해서 며칠간의 고생을 하다가 여러 곳을 찾아 봤는데, Out of date 된 정보가 많아서 직접 포스팅 합니다.


제가 리눅스를 잘 모르기 때문에 완전 초보자도 할 수 있게 포스팅 합니다.


아마존 서버(AWS)를 이용해서 무료 클라우드 서버(EC2)를 만들어 보자.


아마존 aws 사용법


1. 아마존 서버 계정 생성

2. 클라우드 서버 인스턴스 생성

3. 서버 보안 설정 (Security Groups)

4. 클라우드 서버 putty 연결

5. 리눅스(CentOS)에 Java, Tomcat 업로드

6. 아마존 클라우스 서버 root 계정 만들기

7. 업로드한 Java, Tomcat 설치

8. 리눅스(CentOS) 자바(Java) 환경 설정

9. 톰캣(tomcat) 포트 변경

10. 리눅스(CentOS) 톰캣(tomcat) 실행 방법

---------------------------------------

11. 이 모든 것을 했는데도 안된다면...





 

아마존 서버 계정 생성

 

아마존 서버 주소 (https://aws.amazon.com/ko/ec2/?nc1=h_ls  )




계정을 만드는 것은 생략하겠습니다.

 

계정을 만드는데는 돈이 안들거든요. 다만 신용카드가 있어야 합니다.

 


클라우드 서버 인스턴스 생성


서비스로 이동합니다.





 

EC2 ( Virtual Servers in the Cloud) 를 선택합니다.

 




 

국가를 선택합니다.

 





 

국가 별로 금액 정책이 다릅니다.(자세히 보기: https://aws.amazon.com/ko/ec2/pricing/  )

 

저는 가까운 도쿄로 했습니다. 어차피 무료(ti.micro)로 만들거니 어디든 상관은 없습니다.

 



를 누릅니다.

 

Red Hat Free tier eligible을 선택합니다.

 





 

Free tier eligible이 아닌 다른 운영체제를 선택하면 과금이 되니 테스트용으로는 적합하지 않겠죠?

 

 

m1.micro 인지를 확인하신 후 Review and Lunch를 바로 누르시면 됩니다.

m1.micro가 아니면 과금되니 아닌 경우에는 뒤로 돌아가세요.

 







 

바로 Lunch 하시면 됩니다.

 



 

새롭게 만듭니다.

Key pair name은 본인이 원하시는대로 정하신 뒤 디스크에 적절한 곳에 저장합니다.

 




그리고 Lunch Instances를 누릅니다.

 

정상적으로 되었으니 View Instances를 누릅니다.





서버 생성이 완료 되었습니다. 



서버 보안 설정 (Security Groups)


스크롤바를 오른쪽으로 쭈욱~ 보내시면 Security Groups가 보입니다. 거기서 파란색으로 된 부분을 클릭하면 메뉴로 이동됩니다.






 

이 곳에서는 inbound 규칙을 추가 할 것입니다. inbound 규칙은 들어오는 port에 대한 허용입니다.

outbound 규칙은 all로 되어 있기 때문에 그냥 두어도 됩니다.





 

Edit->Add Rule->HTTP선택 Anywhere 선택 -> 저장(Save)

 

보안 설정까지 끝내셨습니다.

 

지금부터는 접속하는 것을 알아 보겠습니다.

 



클라우드 서버 putty 연결


접속하는 방법에는 2가지가 있으나 이 곳에서 제공하는 plug-in을 통하는 방법만 알아 보도록 하고, putty로 연결하는 방법은 링크에 있으니 참조하시기 바랍니다.

 

우선 다시 Instances로 돌아옵니다.






 




Connect->A Java SSH Client directly from my browser(Java required)를 선택합니다.

자바가 안 깔려 있으면 깔립니다.

그리고 User name은 root가 기본으로 되어 있는데, 반드시 ec2-user로 변경해야만 합니다.

그리고 Private key path는 아까 저장한 pem 파일의 로컬 경로입니다.

Launch SSH Client를 실행합니다.

 

 

그림과 같이 자바 콘솔창이 나타납니다.





몇 가지 정보는 지웠습니다.

 

이제부터는 자바를 깔고, 톰캣을 설치하도록 하겠습니다.

 

리눅스(CentOS)에 Java, Tomcat 업로드


자바 JDK 설치 url로 이동합니다. JDK 7 을 이용하도록 하겠습니다.


( http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html  )


 



리눅스용 64비트 tar.gz 파일을 다운 받습니다.

 

톰캣 다운로드는 이 포스팅을 참조하세요(http://ssamkj.tistory.com/6  ).

저는 apache-tomcat-7.0.53.tar.gz를 다운 받겠습니다.

 

JDK에 비해 용량이 훨씬 작으니 쉽게 다운 됩니다.

 

이제 이 둘을 EC2 서버에 올리도록 하겠습니다.

 

아까 자바 콘솔에서 SFTP File Transfer... 를 선택합니다.

  




다운 받은 경로로 이동을 해서 선택 후 -> 전송합니다.



전송하는 동안 시간이 걸리므로 유저 권한을 상승 시키도록 하겠습니다.

 

아마존 클라우스 서버 root 계정 만들기


현재 계정은 사용자 계정이므로 파일을 실행하거나 삭제할 권한이 없습니다.

root 계정을 얻어야 합니다.



$ sudo passwd root (엔터)

비밀 번호를 두 번(확인까지) 넣으면 계정이 생성됩니다.

 

root 계정으로 로그인을 하려면 다음 명령어를 입력합니다.

 

$ su root (엔터)

비밀 번호를 입력하면 계정이 변경되었습니다.

 





 

업로드한 파일을 복사하도록 하겠습니다.

 

업로드한 Java, Tomcat 설치



cp라는 명령어를 사용합니다.


# cp jdk-7u55-linux-x64.gz /usr/local

# cp apache-tomcat-7.0.53.tar.gz /usr/local/

현재 제가 있는 위치는 /home/ec2-user 입니다. 만약 위치가 다르다면 파일명 앞에 경로를 넣어 주어야 합니다.

 

해당 위치로 이동하겠습니다.

 

# cd /usr/local/

파일이 있는지 확인하도록 하겠습니다.

# ll

 





톰캣 파일과 jdk 파일이 둘다 있네요.

 

이 둘을 압축을 풀어야 합니다.


tar 파일 압축 풀기

 

# tar -xvf apache-tomcat-7.0.53.tar.gz

 



압축이 풀리는 모습이 보이실겁니다.

 

자바도 동일하게 풀어 줍니다.

 

# tar -xvf jdk-7u55-linux-x64.gz

 


리눅스 폴더 링크 만들기

ln 이란 명령어를 사용합니다.


이 둘을 링크 명령어를 통해 폴더명을 단순화 시키겠습니다.


# ln -s jdk1.7.0_55/ jdk                            

# ln -s apache-tomcat-7.0.53 tomcat

# ll

 


tomcat 폴더는 apache-tomcat-7.0.53 폴더로 바로 연결됩니다. 윈도우의 바로가기랑 비슷하다고 생각하시면 됩니다.

jdk 폴더 역시 jdk1.7.0_55 폴더로 바로 연결됩니다.


 

CentOS 자바(Java) 환경 설정



이제 JDK 환경 설정을 해 주어야 합니다.


vi 에디터를 사용할 것입니다. 저 처럼 리눅스 까막눈 분들을 약간 사용하시기가 힘드실겁니다.

꼭 필요한 정보 몇 개만 아시면 됩니다.


vi 파일명

파일명을 vi 에디터로 open 합니다.


에디터 안에서 a 버튼을 누르면 편집이 가능합니다.


편집이 끝난뒤에 나올 때는 esc 버튼을 누른 후 :wq (write, quit) 하시면 됩니다.

편집 없이 나오시려면 esc -> :q -> 엔터 하시면 됩니다.


(제 설명 그대로 따라 오시면 됩니다.)

 

# vi /etc/profile

 

제일 아래 쪽에 다음과 같이 입력합니다.(a 버튼을 누르면 문서를 편집하실 수 있습니다.)

 

export JAVA_HOME=/usr/local/jdk

export PATH=$PATH:$JAVA_HOME/bin

 

저장하고 나옵니다.(esc -> :wq -> 엔터)


source /etc/profile

 

reload 합니다.


 

자바가 잘 클래스 패스에 등록되었는지 확인합니다.

 

# java -version

 

java version "1.7.0_25"

OpenJDK Runtime Environment (rhel-2.3.10.4.el6_4-x86_64)

OpenJDK 64-Bit Server VM (build 23.7-b01, mixed mode)

 

이런 식으로 나왔다면 정상 적으로 자바(Java) 환경 설정이 끝난겁니다.

 



톰캣(tomcat) 포트 변경


AWS에서 Security Group에서 inbound 규칙에 80 포트를 열었기 때문에 톰캣에서 포트를 8080에서 80으로 수정하겠습니다.(이 부분이 귀찮으신 분은 inbound 규칙에 Custom TCP Rule을 추가 한뒤 Port Range에 8080 포트를 추가 합니다.)

 

# vi tomcat/conf/server.xml

<Connector port="8080" 부분을 찾아서 80으로 변경해 줍니다. 그리고 저장.(esc -> :wq -> 엔터)






리눅스(CentOS) 톰캣(tomcat) 실행 방법


마지막으로 톰캣을 실행해 줍니다.

 

# cd tomcat/bin/

./startup.sh

 

(종료는 ./shutdown.sh)


톰캣에 정상적으로 올라왔는지 확인합니다.

 

# ps -ef | grep tomcat

 



그림과 같이 tomcat에 관한 것이 2개나 나오면 됩니다.


 

내 아마존 클라우드 서버에 접속하기


인스턴스에서 내 인스턴스를 선택하고 Description에서 Public IP나 Public DNS 주소를 복사하셔서 브라우저 주소창에 넣으면 톰캣이 보여야 합니다.

 







잘 보이신 분들은 서버 준비가 끝나셨습니다.

 



축하합니다. ^^

 




만약 안되신 분이 계신다면 firewall 80 포트를 추가해주어야 합니다.

 

위에까지는 어느 블로그나 설명해주는 아마존 클라우드 서버에 관한 설명이었습니다.


제가 막힌 부분은 여기었습니다.


다른 분들은 이런 문제가 없었는지 포스팅한 곳이 없더군요. 공식 아마존 사이트에서 조차 포트 언급은 없었습니다.



WTF!!! 내 날려 버린 시간... ㅠㅠ


사실 이 부분 때문에 포스팅을 하기로 마음을 먹었습니다.


Security Groups 에서 설정을 했는데도 firewall에 막혀서 엄청난 시간을 헤맸으니까요.


부디 다른 분들은 저 처럼 시간 낭비 안하셨으면 좋겠네요.


CentOS 80 port 열기

 

파일을 엽니다.

# vi /etc/sysconfig/iptables

 

다음을 추가합니다.

-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT

 

저장 후 iptables restart 합니다.

# /etc/init.d/iptables restart

 

저 같은 경우에는 FAILED 메시지가 뜨긴 하는데 정상적으로 동작하네요.




-------------------------------------------------

저 처럼 초보자 분들을 위해서 가급적 세세하게 적었습니다.






불펌은 안하실거죠? ^^ 명령어를 긁어서 사용하셔야 하는 경우도 있기에 긁는거 안 막았습니다.


-------------------

UPDATE : 20140417 2330

UPDATE : 20140417 2340

UPDATE : 20140621 0056

댓글8