티스토리 뷰

WEB2.0/프로그래밍

아마존에 APM 구축하기 (6/6)

나를찾는아이 2012. 3. 26. 09:30
728x90
반응형

이제 드디어 APM을 설치합니다.


SSH로 아마존 인스턴스에 접속합니다. putty를 통해 접속하는 방법은 이미 알고계시죠? : )


# sudo su


를 입력하여 root권한을 획득 하고 이후의 내용을 진행하세요.



이제 본격적으로 Apache, Mysql, PHP를 설치할 것입니다.



먼저 yum 업데이트를 시작합니다. 여러 패키지들을 업데이트 합니다.


# yum update


를 입력하세요.



설치할 패키지 목록이 쭈욱 나타나고 설치를 진행할것인지 묻습니다.


y를 입력하고 엔터를 누르면 다운로드 및 설치가 진행됩니다.





완료가 되었습니다.

APM을 설치해봅시다. 설치과정은 위와 유사합니다.



PHP와 아파치, 기타 모듈 설치

# sudo yum install php-mysql php php-xml php-mcrypt php-mbstring php-cli mysql httpd

마찬가지로 설치를 할것이냐고 물으면 y를 눌러주세요.



MYSQL 설치

#sudo yum install mysql mysql-server mysql-libs mysql-server




PHP, Apache, MYSQL를 한꺼번에 설치하고, 그리고 SSL까지 쓴다면 이렇게 한꺼번에 타이핑하여 한방에 설치하셔도 됩니다.

# sudo yum install mod_ssl mysql mysql-sever mysql-libs mysql-server php php-mysql php-xml php-mcrypt php-mbstring php-cli httpd

설치가 완료되면

mysql을 실행해봅시다.


# sudo /etc/init.d/mysqld start




OK 가 나타났다면 정상적으로 실행이 된것입니다.



MYSQL root 비밀번호 설정


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




보안을 위해서 mysql root 비번도 바꿔주는 센스!

향후 사용할 DB를 생성하고 사용자를 추가하고 그에 대한 권한을 주는것은 기존에 하시던 방식과 동일하니 넘어가겠습니다.


아파치 conf 파일을 수정할 차례입니다.

이 과정은 /etc/httpd/conf/httpd.conf 에 웹서버 정보를 수정하는 과정입니다.

아파치 conf 파일은 /etc/httpd/conf/httpd.conf 경로에 위치해있습니다.


# vi /etc/httpd/conf/httpd.conf



로 파일을 열고 웹서버정보를 수정해봅시다.

아무것도 수정하지 않은 httpd.conf의 설정은 /var/www/html 을 루트경로로 하고있습니다.

도메인은 설정되지 않았습니다.


먼저 도메인을 설정합니다.

(먼저 가지고 계신 도메인의 DNS 설정을 마치셔야 합니다.)


#ServerName www.example.com:80


주석으로 처리된 이 부분을 주석을 삭제하고 여러분이 가지고 계신 도메인으로 설정하세요.


ServerName www.test.com


도메인이 없다면 아마존이 제공해준 굉장히 긴 이름의 public DNS를 그대로 입력하셔도 됩니다.


이제 웹서버의 루트 경로를 변경할 차례입니다.

루트경로를 굳이 변경하지 않는 경우에는 기본 경로인 /var/www/html가 웹서버의 루트경로가 되고

웹문서는 여기에 업로드하시면 됩니다.


웹서버의 루트경로를 변경하는 경우에는

httpd.conf 파일에서

아래 두 부분을 찾아 원하는 경로로 수정하시면 됩니다.




DocumentRoot "/var/www/html"

<Directory "/var/www/html">


저는 웹문서경로는 /var/www/html 폴더를 그대로 사용하고

ServerName은 아마존에서 제공해준 public DNS를 그대로 사용했습니다.


/home/ec2-user/ 폴더를 웹루트폴더로 사용하려고 ec2-user 폴더의 퍼미션을 변경하면 그 다음부터 해당 인스턴스에 더이상 접속이 되지 않습니다. ec2-user 폴더의 퍼미션을 절대 변경하지마세요.



한가지 더 수정할 것이 있는데

인덱스파일로 index.php를 추가해주는 것입니다.

httpd.conf 파일에서


DirectoryIndex index.html index.php




DirectoryIndex를 찾아 끝에 index.php를 추가해주세요.

폴더에 접근했을때 index.html을 가장 먼저 보여주고, index.html 파일이 없을때 index.php 파일을 보여준다는 설정입니다.

수정한 것을 저장하고, 아파치를 실행합니다.


# sudo /etc/init.d/httpd start


재부팅시에도 apache와 mysql이 자동으로 실행될수 있도록 설정합니다.


# sudo chkconfig --levels 235 mysqld on
# sudo chkconfig --levels 235 httpd on




이제 웹페이지에 보여줄 php 파일을 만들어보겠습니다.

저는 웹문서경로가 /var/www/html 이고,

이 안에 아래의 내용이 담긴 index.php 파일을 생성하여 업로드하였습니다.


<html>
<head>
<title>Hello World!</title>
</head>
<body>
<?php echo 'Hello World!' ?>
</body>
</html>



자 이제 웹브라우저를 통해서 접속해볼까요.



잘나오는군요!


웹서버의 루트경로에 아무런 웹문서가 없다면



웹브라우저로 접속했을때 이런 화면이 나올거예요.




혹시 접근할수 없다는 메시지가 나온다면

웹문서경로의 퍼미션을 확인해주세요.


※ https 를 사용하신다면

https 를 사용하시는 경우에는 mod_ssl을 추가로 설치하셔야 합니다.

설치는 매우간단합니다.

# yum install mod_ssl

설치하시면 mod_ssl.so 파일이 modules 폴더에 설치될거예요. 끝이예요. 참쉽죠?

SSL과 관련된 아파치 설정파일은 /etc/httpd/conf.d/ssl.conf 파일에 정의되어있습니다.

ssl.conf 파일을 원하시는 값으로 수정하시고 아파치를 재실행해주시면 적용이 됩니다.


yum install git-core git을 사용하신다면 git도 요렇게 설치해주시고

이제 드디어 아마존 EC2를 이용하여 LAMP 환경을 구축하는 것을 모두 마쳤습니다.

아직 DB연결에 관한 부분은 테스트 하지 않았지만,

아마 여기까지 성공하셨으니 이 이후과정은 충분히 진행하실 수 있으리라 생각합니다.



아마존 클라우드 서비스는 앞으로도 활용할 곳이 정말 무궁무진합니다.

아마존 서비스 장애가 발생할 우려가 있다는 것은 충분히 감안하시고,

잘 활용하신다면 상대적으로 저렴한 비용에 아주 손쉽게 서버를 구성하실수 있습니다.

사용해보니 아시아에 위치해 있는 서버도 국내에서 호스팅을 이용하는 것보다는 속도가 떨어지는것 같습니다.

이점도 참고하시면 좋을 것 같아요.



저희가 지금까지 해온 과정은 하나의 인스턴스에 APM을 설치하는것이었는데

이렇게 하지 않고 두개의 인스턴스를 사용해서 웹서버와 DB서버로 나누어서 사용하는 방법도 있습니다.

이렇게 사용할 경우에는 php코드 상에서 mysql host를 적을때 mysql이 실행되고 있는 인스턴스의 ip를 적어주시면 되겠죠.


즐거운 개발하세요~



코드 작성을 위해 EC2에 editplus로 접속하는 방법이 포스팅 되었습니다.

728x90
반응형
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
글 보관함