-
AWS Lightsail apache tomcat 설치 그리고 운영서버운영 2018. 12. 19. 15:45
도메인 만들고 호스팅을 위해 살펴보던중 AWS의 lightsail을 알게되었습니다. 트래픽이 거의 없어 국내 저렴한 호스팅을 사용해도 되지만 aws를 경험해보고 싶어 선택했습니다.
lightsail은 이미 앞서 많은 분들이 좋은 정보를 많이 제공해주고 있기도 합니다.
https://swiftcoding.org/start-blogging 한글로 설명이 잘되어 있습니다.
이런글을 한번 쭉 읽어보고 준비를 하시면 한결 편하게 시작할 수 있습니다.
www.tourkorea.or.kr 서버 구축시 시행착오를 정리하는 과정이기도 하고 처음 해보시는 분들에게 도움이 되는 글이 될 수 있기 바랍니다.
1. 도메인 신청
- 원하는 도메인을 신청하고 결제하면 끝.
2. 도메인 신청 후 네임서버 설정
- 제가 도메인을 등록한 업체의 DNS를 사용할 수 있게 설정합니다.
- record 영역의 도메인명 끝에 "."이 있어야 합니다. 도메인의 끝을 알려주는겁니다.
3. 인스턴스 생성
- 인스턴스란, 가상의 서버라고 보면됩니다.
https://lightsail.aws.amazon.com/ls/webapp/create/instance?region=ap-northeast-2
- 오른쪽의 "인스턴스 생성"을 클릭합니다. linux/unix, WordPress가 기본으로 지정되어 있습니다.
- 인스턴스 생성은 인터넷에 좋은 글들이 많으므로 링크로 대체합니다.
- ssh 접속까지 이상이 없다면 드디어 나의 서버에 접근을 할 수 있습니다.
4. S/W 설치 확인
4.1 먼저 timezone을 한국으로 설정한다. 이래야 파일 수정시 정확한 날짜와 시간을 알 수 있습니다.
sudo rm /etc/localtime
sudo ln -s /usr/share/zoneinfo/Asia/Seoul /etc/localtime
4.2 공인인증서 설치, 유효기간이 3개월입니다. 3개월 되기전에 갱신하면 될것같습니다.현재 사용자 계정에서 아래를 실행합니다.
curl -s https://api.github.com/repos/xenolf/lego/releases/latest | grep browser_download_url | grep linux_amd64 | cut -d '"' -f 4 | wget -i -
최신버전을 다운받습니다.
lego_v1.2.1_linux_amd64.tar.gz
tar -xvf lego_v1.2.1_linux_amd64.tar.gz
sudo mv lego /usr/local/bin/lego
이제 인증서를 받아옵니다.
sudo lego --email="관리용@이메일주소" --domains="tourkorea.or.kr" --domains="www.tourkorea.or.kr" --path="/etc/lego" run
복수도메인 인증서를 받아옵니다.
/etc/lego/certificates# ls -l
-rw------- 1 root root 3592 Dec 13 16:39 tourkorea.or.kr.crt
-rw------- 1 root root 1648 Dec 13 16:39 tourkorea.or.kr.issuer.crt
-rw------- 1 root root 236 Dec 13 16:39 tourkorea.or.kr.json
-rw------- 1 root root 1675 Dec 13 16:39 tourkorea.or.kr.key
유효기간 3개월 되기 전에 아래를 실행하면 갱신된다는데 아직 3개월이 안되어서 확인은 못했습니다. cron에 등록 해야겠습니다.
sudo lego --email="EMAIL-ADDRESS" --domains="DOMAIN" --path="/etc/lego" renew
4.3 apache ssl 설정
apapche가 설치되어 있는 상태에서 사설 인증서가 포함되어 있으므로 인증서만 교체합니다.
cd /opt/bitnami/apache2/conf
sudo mv server.crt servre.crt.old --> 기본 인증서 이름변경
sudo mv server.key server.key.old --> 기본 인증서 이름변경
ln -s /etc/lego/certificates/tourkorea.or.kr.key /opt/bitnami/apache2/conf/server.key -->발급받은 인증서에 링크
ln -s /etc/lego/certificates/tourkorea.or.kr.crt /opt/bitnami/apache2/conf/server.crt
/opt/bitnami/apache2/conf/bitnami/bitnami.conf 파일에 SSLEngine 포함 3줄이 없으면 추가합니다.
<VirtualHost _default_:443>
DocumentRoot "/opt/bitnami/apache2/htdocs"
SSLEngine on
SSLCertificateFile "/opt/bitnami/apache2/conf/server.crt"
SSLCertificateKeyFile "/opt/bitnami/apache2/conf/server.key"
...
sudo /opt/bitnami/ctlscript.sh restart apache
웹브라우저에서 https://도메인명 화면에서 주소 왼쪽에 아래와 같이 나오면 정상입니다.
4.4 php, mysql
이미 설치되어 있습니다. 이건 당분간 쓸일이 없어 통과합니다.
4.5 tomcat
tomcat을 설치하는 과정은 생략합니다.
sudo apt-get install default-jre
sudo apt-get install tomcat7
tomcat 그룹에 bitnami 계정을 추가합니다. tomcat과 같은 그룹이어야 작업이 편합니다.
sudo usermod -aG tomcat7 bitnami
source ~/.profile
apps 디렉토리에 tomcat의 링크를 만들어서 작업을 편하게 합니다.
cd ~/apps
sudo ln -s /var/lib/tomcat7 tomcat7
sudo chown -h tomcat7:tomcat7 tomcat7
cd tomcat7
sudo chmod 775 webapps/
sudo service tomcat7 stop/start/restart/status 를 사용할 수 있습니다.
sudo service tomcat7 start
웹브라우저에서 8080으로 접속해서 정상화면이 나오는지 확인합니다.
혹시나 db 연결을 위한 jar파일은
sudo ln -s /usr/share/tomcat7/lib lib --> 링크를 만들어 줍니다.여기에 필요한 jar 파일을 복사하거나 링크를 만듭니다.4.6 apache tomcat 연결apache https://도메인, tomcat https:도메인:8080 이렇게 접근이 가능합니다, 좀 불편하지요?
연결하는 방법으로 apache에서 mod_jk만 사용해봤는데, 이번에 mod_proxy, mod_proxy_ajp를 사용하니 별도의 컴파일이 필요없이 편합니다.
일단 tomcat7/conf/server.xml 파일에 8009 ajp포트가 사용가능한지 확인 합니다.
<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" URIEncoding="UTF-8"/>
8009가 apache와 통신하는 포트입니다.
apache에서 tomcat과 통신하기 위한 proxy 설정을 추가합니다.
sudo vi /opt/bitnami/apache2/conf/bitnami/bitnami-apps-vhosts.conf
ProxyPass / ajp://도메인:8009/ --> 이 내용을 추가합니다.
웹브라우저의 /를 ajp 위치로 대행실행한다고 보면됩니다.
lightsail 네트웍 설정에서 8009를 추가합니다.sudo service tomcat7 restart
8080에서 볼 수 있는 페이지로 이동해서 화면이 정상인지 확인합니다.기억은 휘발성이 강하기 때문에 기록의 의미로 작성합니다.
'서버운영' 카테고리의 다른 글
경로 탐색 오류 안내-복구완료 (2) 2020.11.15 길잡이 서비스와 광고 (2) 2019.02.28 giljabi.kr 도메인 등록 (0) 2019.02.15 댓글