일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 암호화
- RDS
- JavaScript
- 웹게임
- PL/SQL
- 비트코인
- Servlet
- EC2
- tiles.xml
- websocket
- 알고리즘
- 블록체인
- Ajax
- express
- Spring
- node.js
- Cookie
- autowired
- AWS
- 도커
- CSS
- 웹소켓
- docker
- jQuery
- 배포
- SQL
- JSP
- model1
- phaser
- HTML
- Today
- Total
記錄
실습_AWS) Spring AWS 배포 (A to Z) -2 본문
이 포스팅은 '실습_AWS) Spring AWS 배포 (A to Z) -1'(http://kimjungkwon.co.kr/530?category=794190)에 이은 두 번째 포스팅이다. 이전 포스팅에서 EC2와 RDS의 인스턴스를 생성하고 연결하는 작업까지 끝을 냈다. 따라서 이번 포스팅에서는 EC2 인스턴스에 내게 필요한 java, tomcat 등을 설치하는 과정을 기록한다.
이전 포스팅에서 1) EC2에서 인스턴스 생성 / 2) 인스턴스 제어(연결) / 3) EC2 - RDS 연결 을 끝냈으므로 이번 포스팅은 4)부터 시작한다.
4) EC2에 Java 설치
xShell에서 EC2인스턴스에 연결한 후 다음 명령어를 실행하여 JDK8 설치
[1] 'sudo add-apt-repository ppa:webupd8team/java' 를 입력하여 java 설치를 위한 repository 추가
[2] 'sudo apt-get install oracle-java8-installer' 를 입력하여 아까 설치한 repository에 java8 설치
[3] 설치 완료 후 'java -version'으로 확인
[4] 'sudo apt-get install oracle-java8-set-default'로 환경 변수를 설정
+참고 : ppa가 뭔지, 무엇을 위한 것인지 참고 -> http://deviantcj.tistory.com/24
5) EC2에 Apache, Tomcat 설치
난 사실 이 포스팅을 하기 전까지 Apache Tomcat인 줄 알았다. 근데 Apache와 Tomcat이 사실 다른 것이었다. 절차를 적기 이전에 둘의 개념적 차이를 먼저 알아 보자.
Apache : WebServer
Tomcat : Web Application Server
위와 같은 화면이 뜨면 성공이긴 한데 아직 끝나지 않았다. Apache와 Tomcat의 보완적 역할을 고려하면 Apache와 Tomcat이 연동될 필요성이 있다는 것을 알 수 있다. 정적 페이지와 동적 페이지를 분담하기 위한 일종의 로드밸런싱을 위해 둘의 연동이 필요한 것이다. 따라서 둘을 연동해주는 역할을 하는 mod-jk를 설치하고 경로 설정을 해주어야 한다.
6) libapache2-mod-jk 설치 / tomcat8 경로 변경
[1] 'sudo apt-get install libapache2-mod-jk' 설치
[2] 'sudo vi /etc/libapache2-mod-jk/workers.properties'로 파일을 열고 아래 사항 수정
workers.tomcat_home= ~ 과 workers.java_home= ~ 을 위와 같이 수정해준다. sudo로 열지 않고 그냥 vi로 열게되면 읽기 전용 파일이기 때문에 수정이 안된다. 따라서 꼭 sudo로 열고 수정하여야 한다.
[3] AJP*를 활성화 한다. AJP는 웹서버 뒤에 있는 어플리케이션 서버가 외부 전송 프로토콜을 수신할 수 있도록 하여 로드밸런싱을 가능케 해준다. 'sudo vi etc/tomcat8/server.xml'로 들어가서 아래 사진의 부분에 주석처리가 되어 있는 것을 없앤다.
만약 특정한 포트를 사용하고 싶다면 아래 코드에서 포트 번호를 수정한다.
+ 참고
AJP
The Apache JServ Protocol (AJP) is a binary protocol that can proxy inbound requests from a web server through to an application server that sits behind the web server.
It also supports some monitoring in that the web server can ping the application server. Web implementors typically use AJP in a load-balanced deployment where one or more front-end web servers feed requests into one or more application servers. Sessions are redirected to the correct application server using a routing mechanism wherein each application server instance gets a name (called a route). In this scenario the web server functions as a reverse proxy for the application server.
AJP runs in Apache HTTP Server 1.x using the mod_jk plugin and in Apache 2.x using the provided Proxy AJP, mod_proxy and proxy balancer modules together. Implementations exist for the not-yet-released lighttpd version 1.5,[1] nginx,[2] Grizzly 2.1,[3] and the Internet Information Server.[4]
Both the Apache Tomcat servlet container as well as the Jetty servlet container support AJP.
[4] 'sudo a2enmod proxy_ajp'명령어로 AJP 모듈을 활성화 한다. Ubuntu 패키지에 포함된 apache2로 서버를 운영할 경우, a2enmod 명령으로 apache 모듈을 활성화 할 수 있기 때문에 가능한 명령어다. Ubuntu 패키지의 apache2를 설치할 경우 apache2 디렉토리에는 mods-available 디렉토리와 mods-enabled 디렉토리가 있다. 이 때 mods-available 디렉토리에는 활성화 가능한 모듈들이 들어 있으며, mods-enabled 디렉토리에는 실제 활성화 된 모듈들이 symbolic link 가 생성되어 있다. 따라서 a2enmod 명령으로 모듈을 활성화 하면 mods-available 디렉토리에 있는 모듈들이 mods-enabled로 symbolic link가 생성된 것을 확인 할 수 있다.
[5] 아파치가 URL을 받았을시, 어떤 URL을 톰캣에게 바인딩 할 것인가 알려주는 셋팅을 해야한다. 역시 로드밸런싱 차원의 셋팅이라고 보면 된다. 절차는 아래와 같다.
ㄱ) 'sudo vi /etc/apache2/sites-available/000-default.conf'
ㄴ) 코드 추가 (아래 사진 참고)
[6] 'sudo service apache2 restart'로 아파치 재시작(이건 왜 하는지 모르겠지만 역시 동기화를 위해 하는게 좋겠다)
'Web > AWS' 카테고리의 다른 글
실습_AWS) Spring AWS 배포 (A to Z) -3 (0) | 2018.08.25 |
---|---|
실습_AWS) Spring AWS 배포 (A to Z) -1 (0) | 2018.08.24 |
생활코딩_AWS) RDS (0) | 2018.08.24 |
생활코딩_AWS) Simple Storage Service(S3) (0) | 2018.08.23 |
생활코딩_AWS) Auto Scaling (0) | 2018.08.23 |