본문 바로가기

AWS

EC2를 이용한 서버설치 및 서비스 사용

아마존 웹에서 제공하는 EC2를 이용해 서버를 구축

Apache + Java + Mysql
(보통은 APM-Apache, PHP, Mysql 을 주로 사용하지만 Java를 사용하겠다.)


1. Intance 만들기


 1.1EC2


아마존 웹 서비스를 시작하면서 가입(가입+결제)부분은 생략.

아마존이란 인프라 위에 가상머신을 생성한다.

EC2를 선택 후, [Tokyo]를 선택한다.


 



 1.2 [Launch Instance]


 



1.3 Create a NewInstance


[Quick LaunchWizard] 를 선택 후, CreateNew 로 새로운 키 이름을 입력하고 [Download] 한다.

이 때, 키 값을 저장하기 때문에 저장될 폴더는 유출되어서는 안된다.

자신이 사용할 이미지를 선택하고 [Continue]

본문에서는 Ubuntu Server 12.04.2 LTS를 선택.



 



 1.4 Instance Details


인스턴스의 자세한 정보를 보여주므로 확인 후, [Launch]를 누르면 인스턴스가 만들어진다.


 



2. Instance 상태 체크와 Connect



인스턴스의 사용자 지정 이름과 고유의 이름, AMI ID 등정보를 확인할 수 있으며,

이곳에서 connect, terminate, stop, start 를 사용할 수 있다.


 


2.1 InstanceConnect


ubuntu
에 접근하기 위해서는 password값이 필요하다. [Retrieve Password] 클릭

여기서 요구하는 password값은 1.3 에서 받은 key값을 선택해주면된다.


 


자신이 저장해둔 키값의 경로를 찾아 선택해 준다.


 





2.2 key값 삽입 완료



 





2.3 Connect to anInstance


인스턴스에 접속하면서 들어간 key값과경로는 한번만 설정해주면 된다.



 



2.4 Java 자바 설치


아마존웹서비스인프라위에 생성한 인스턴스(우분투)에현재 접속되어 있는 상태이다.

접속하기 위해서는 자바가 컴퓨터에 깔렸어야 한다. launch ssh client 통해설치.

(*launch ssh client 에서 java가 실행이 안되는 경우엔 업데이트 되어있는지 확인한다.(chrome://plugins 에서 버전 확인))

 


Launch ssh client를 선택하면, java 설치 화면으로 넘어간다.
(
계속 [확인] 클릭)



--이제 아마존 웹서비스 인프라위에 생성한 인스턴스(ubuntu12.04)에 접속되어 있고 제어할 수 있다.

[접속(Launch ssh client)]





프로그램 실행 후, accept->yes -> yes-> yes.











 3. 개발 환경 설정

 3.1 apache 설치


ubuntu@ip:~$ sudo apt-get update;
Fetched 26.3 MB in 16s (1,606 kB/s)
Reading package lists... Done


ubuntu@ip:~$ sudo apt-get install apache2;
...
-Do you want to continue? [Yes]
...
ldconfig deferred processing now taking place

 



 3.2 Mysql 설치



mysql을 인증하기 위한 모듈 설치


ubuntu@ip:~$ sudo apt-get installlibapache2-mod-auth-mysql;
-Do you want to continue? [Yes]

 


mysql설치


ubuntu@ip:~$ sudo apt-get installmysql-server mysql-client;
-Do you want to continue? [Yes]
root
의 비밀번호를 입력
ex. Ubuntu
Setting up mysql-server (5.5.32-0ubuntu0.12.04.1) ...







 3.3 HTTP 포트



 외부에서 접근할수 있도록 HTTP포트를 열어줘야한다.

사용할 인스턴스의Security Group을 확인한다


 



Security Group로 이동해 해당 인스턴스의 Secutiry Group 이름을선택한다.


인스턴스 선택 후,[Inbound] – Create a new rule(HTTP) – [Add Rule] – [Apply rule Change]



 



<웹서버에 접속하기>


Instance [Connect] 


ubuntu@ip:~$ sudo /etc/init.d/apache2 restart;
[OK]


Restart , 웹에서 접근이 가능해졌는지 확인한다.


 


http://54.238.147.98/


 



3.4 데이터베이스 세팅


ubuntu@ip:~$ sudo/etc/init.d/mysql restart;


mysql
콘솔에 접속


ubuntu@ip:~$ mysql –uroot –p
ubuntu@ip:~$[password]


DB 생성


데이터베이스생성


create database [
데이터베이스이름] character set utf8 collateutf8_general_ci;


데이터베이스 사용
use [
데이터베이스이름];

 

 


3.5 Mysql과 이클립스 연동


연동하기 전에, 외부에서접근할 수 있도록 권한을 부여해야한다.


ubuntu@ip:~$ cd /etc/mysql
ubuntu@ip:~$ vi my.cnf


*수정사항

고정 ip가 아닌 모든 ip가 접근할 수 있도록 주석처리한다.
#127.0.0.1(ip)

 

mysql접속


ubuntu@ip:~$ mysql –uroot –p
password: ubuntu


mysql> showdatabases;

mysql>
mysql> GRANT ALL PRIVILEGES ON *.* to 'root'@'%' IDENTIFIED BY '111111';
       <grant all privileges on
데이타베이스명.*(*.*) to 계정명@IP identified by '비밀번호';>

변경할 내용을 적용


mysql> flush privileges;

mysql>

 

[New ConnectionProfile]


 



Mysql을 선택 후, [Next]


자신이 사용할 데이터베이스와 그 기반의 서버의 name password를 넣는다.


Database: [사용할 데이터베이스 이름]
URL: jdbc:mysql://[ip]:3306/[
사용할 데이터베이스 이름]
User name: [user name](ex. root)
password: [password](ex. ubuntu)



 

Test Connection을 클릭해 연결을 확인한다.

==>ping successful!

 


3.6 jdk설치



1. 첫번째 방법(OpenJDK 설치)


ubuntu@ip:~$ sudo apt-get install openjdk-7-jdk

 


2. 두번째 방법(Oracle에서 JDK다운)


ubuntu@ip:~$ sudo apt-add-repository ppa:webupd8team/java (OK)
ubuntu@ip:~$ sudo apt-get update
(... Done)


ubuntu@ip:~$ sudo apt-get install oracle-java7-installer [Y]
Do you want to use Oracle JDK <OK>
Do you accept the Oracle Binary Code license terms?  <YES>
(ldconfig deferred processing now taking place)


java –version 를 사용해 버전을 확인한다.


 

 

3.7 tomcat 설치



ubuntu@ip:~$ sudoapt-get install tomcat7
Do you want to continue? [Y]



ubuntu@ip:~$ sudovi /etc/default/tomcat7


수정
#JAVA_HOME=/usr/lib/jvm/openjdk-6-jdk

주석지우고
JAVA_HOME=/usr/lib/jvm/java-7-oracle
로 수정


ubuntu@ip:~$ sudoservice tomcat start
ubuntu@ip:~$


ubuntu@ip:~$ sudo service tomcat stop
ubuntu@ip:~$

 


(aws-SecurityGroups)


tomcat
서비스 열기

[tab] Inbound

Port range8080 입력한다.

[Add Rule]

[Apply Rule Change]


(
확인) tomcat 이용

public DNS address 또는 Elastic IP

http://54.238.147.98:8080/



 

4. 실행


eclipse에서 exportwar파일을 알드라이브로 올린다.


ex)

 jsp03.war파일 확인

ubuntu@ip:~$ ls –al



tomcat
의 경로안에 복사한다.

ubuntu@ip:~$ sudo cp jsp03.war /var/lib/tomcat7/webapps/
ubuntu@ip:~$ sudo service tomcat7 restart

 


url확인


[
]에서


http://
54.238.147.98:8080/Myboard


54.238.147.98:8080/amazon


http://ec2-54-238-161-163.ap-northeast-1.compute.amazonaws.com:8080/


http://54.238.161.163





4.1 한글 깨짐 오류


한글이깨지는 경우

ubuntu@ip:~$ sudo vi /etc/mysql/my.cnf


[mysql]
default-character-set = utf8


[client]
default-character-set = utf8


[mysqld]
character-set-client-handshake=FALSE
init_connect="SET collation_connection = utf8_general_ci"
init_connect="SET NAMES utf8"
character-set-server = utf8
collation-server = utf8_general_ci


[mysqldump]
default-character-set = utf8

 



ubuntu@ip:~$ sudo service tomcat restart

mysql 접속 후 확인

>status

 

자료 출처: http://isduck.egloos.com/m/3382096