출처: https://bumcrush.tistory.com/182 [맑음때때로 여름]

 

참고 :

khanrc.tistory.com/entry/REST-API-%EC%84%9C%EB%B2%84-%EC%A0%9C%EC%9E%91%EA%B8%B0-2-Flask-%EC%84%9C%EB%B2%84-%EC%98%AC%EB%A6%AC%EA%B8%B0

 

yum install python3

> pip3가 자동으로 깔린다

 

pip3 install ~~

로  사용해야함 

1. 무료 도메인 발급

.

(my.freenom.com/)

사용하고 싶은 도메인 이름을 Check 해봅니다. ‘Free’라는 태그가 붙은 도메인은 무료이므로 사용하고 싶은 것을 고르면 됩니다. [Get it now!]를 클릭합니다. 버튼이 [Selected]로 바뀌면 발급이 완료된 것입니다.

Period 에서 무료로 사용할 수 있는 기간을 선택할 수 있습니다. 12개월을 선택 후 [Continue]를 클릭합니다.

구글 로그인으로 무료 체크아웃하기

생성된 도메인은 상단의 [Services] -> [My Domains]를 클릭하면 위와 같이 구매한 도메인을 확인할 수 있습니다.

2. Route 53 에 도메인 등록

이제 AWS 콘솔로 넘어가겠습니다. Route 53 콘솔로 들어가 [Hosted zones] -> [Create Hosted Zone]을 클릭합니다.

Domain Name에 이전에 발급받은 도메인을 기입합니다. [Create]를 클릭합니다.

생성 완료!

NS 타입과 SOA 타입의 레코드 셋이 생성되어 있는 것을 확인할 수 있습니다. NS는 네임 서버 레코드, SOA는 권한 시작 레코드입니다.

 

레코드 생성 버튼을 클릭해 빠른 레코드를 생성합니다.

Name 에는 하위 도메인을 설정할 수 있습니다. 여기서는 일반적으로 쓰이는 www를 사용하겠습니다. Type은 A 레코드를 선택하고 값에 인스턴스 퍼블릭 IP 주소를 입력합니다. 설정을 마쳤으면 [Create]를 클릭합니다.

레코드 생성 완료!

Record Set에 방금 생성한 A 레코드의 도메인을 확인할 수 있습니다. 하지만 여기서 끝난 것이 아닙니다. 네임서버를 이전에 발급받은 무료 도메인에 적용해 주어야 합니다.

3. 도메인 AWS Route53의 NameServer로 변경

freenom 사이트의 My Domains에서 구매한 도메인의 [Manage Domain]을 클릭합니다.

[Management Tools] -> [Nameservers] 를 클릭한 다음, Use custom nameservers (enter below)를 체크하고 Route 53 NS 레코드의 Value 값을 넣어줍니다. 전부 입력하고 [Change Nameservers]를 클릭합니다.

네트워크 전파 속도 때문에 네임서버를 변경하면 바로 적용이 안 되기 때문에 몇 분 내지는 몇 시간의 시간이 필요합니다.

www.maymaymay.ml:8080/ 테스트 성공 !

등록한 도메인을 브라우저 주소창에 입력하면 톰캣 화면이 출력되는 것을 확인할 수 있습니다.

 

 

4. CloudFlare를 이용해 https 주소 우회하기

※ 도메인에 HTTPS를 적용하기 위해 Cloud Flare 사용하기 ※

▶ Cloud Flare 가입: https://dash.cloudflare.com/sign-up

클라우드 플레어에 가입한 이후에 HTTPS를 적용할 수 있습니다.

 

 주소 입력

 

 

4. add cloudflare's nameservers  (나중에 복사해서 프리넘에 등록)

 

 

ipv4 address는 ec2에 있는 아이피이다.

 

Freenom 네임서버로 이동합니다.

기존에 입력했던 Route 53 네임서버를 삭제하고, Cloudflare 네임서버 2개를 추가합니다.

이제 시간이 조금 지나면 SSL에 인증서가 발급되어 있을 겁니다. Active 상태가 되면 페이지 규칙을 추가할 수 있습니다.

 

Page Rules 에 들어가 아래와 동일하게 ****페이지 규칙을 추가합니다.

http://domainname.tk/*

http://www.domainname.tk/*

Always Use HTTPS

5. AWS 컴퓨트 서비스에서 웹서버 설정하기

먼저 AWS EC2 > 인스턴스 > 보안 그룹 에 https 80 포트를 추가합니다.

현재는 http://www.lecturesearch.shop:8080 처럼 도메인에 8080포트번호를 명시하여야 웹사이트로 접근이 됩니다.

이는 톰캣은 기본적으로 8080포트를 사용하는데, 브라우저가 기본적으로 80포트로 접근하기 때문입니다.

이러한 번거로움이 없도록 80포트를 8080포트로 리다이렉트 해주도록 합니다.

iptables 명령을 사용하여 추가해주도록 합니다.

# yum install -y httpd # service httpd start # iptables -t nat -I PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 8080 # service iptables save # service httpd status # service httpd restart

https://maymayweather.ml/main/ 테스트 성공!


하지만 이렇게 https로 주소를 우회할 시 새로운 문제가 생길 수 있다.

https 프로토콜만 지원하는 특정 웹페이지에서 AJAX 통신을 시도한다고 가정했을 때

url : ‘/aaa/bbb/file.ext’

위의 url 로 파라미터를 던지고 결과를 받아야 하는데 아래와 같은 오류가 발생할 것이다.

Mixed Content: The page at ‘https://page.com‘ was loaded over HTTPS, but requested an insecure XMLHttpRequest endpointThis request has been blocked; the content must be served over HTTPS.

이럴 경우 2가지의 해결 방법이 있다.

  1. 싱글페이지를 포기하고 https 주소가 꼭 필요한 부분에서만 https 주소를 사용하는 페이지로 이동을 한다.

  2. 전부 https 로 통일한다.

 

 

 

 

 

 

 

 

 

---

 

참고

tech.cloud.nongshim.co.kr/2018/10/16/%EC%B4%88%EB%B3%B4%EC%9E%90%EB%A5%BC-%EC%9C%84%ED%95%9C-aws-%EC%9B%B9%EA%B5%AC%EC%B6%95-8-%EB%AC%B4%EB%A3%8C-%EB%8F%84%EB%A9%94%EC%9D%B8%EC%9C%BC%EB%A1%9C-route-53-%EB%93%B1%EB%A1%9D-%EB%B0%8F-elb/

프로젝트를 하면서 EC2를 사용했는데

사소한 에러 수정을 하더라도.. war를 업로드할때마다 게시판에 업로드 해둔 파일들이 사라짐...

그냥 다시 올리면 대지머.. 하고 그러려니 했는데 너무 귀찮아서 S3를 사용하기로 방금 마음 먹었다 ^^

 

 

가장 먼저 당연히 pom.xml에 라이브러리를 등록해준다 

		<!-- https://mvnrepository.com/artifact/com.amazonaws/aws-java-sdk -->
		<dependency>
			<groupId>com.amazonaws</groupId>
			<artifactId>aws-java-sdk</artifactId>
			<version>1.9.2</version>
		</dependency>

 

-

 

 

 

가입후 지역설정은 서울로 해놓는다.

  

 

EC2 – 키페어 설정

 

 

키페어 설정은 EC2 – 네트워크 및 보안 탭의 키페어 키페어 생성에서 할 수 있다.

 

 

키페어는 지역 이름 프로젝트 명등 알아보기 쉬운 이름으로 한다.

파일형식은 pem을 선택해준다.

 

 

키페어가 생성 되면

 

 

  

Pem 파일이 생성되는데,

자주쓰게 되므로 알아보기 쉬운 폴더에 놓는 것이 좋다.

 

 

 

EC2 – 인스턴스 생성

 

EC2의 인스턴스에서 인스턴스 시작을 누른다.

 

 

 

 

무료 서비스를 사용할 것이므로 프리티어를 체크하고 원하는 타입을 골라준다.

인스턴스 유형에 선택에서 또 원하는 유형을 선택해준다.

 

검토 및 시작을 눌러도 되지만 인스턴스 세부 정보 구성을 누를 수도 있다.

세부 정보 구성은 다음과 같다.

 

 

 

 

 

검토가 완료되면 시작하기를 눌러준다. (여기서는 다른 설정은 하지 않았다)

 

 

 

시작하기를 누르면 키 페어를 선택할 수 있는데 앞서 생성해준 키페어를 선택해준다.

 

무료 서비스를 이용하려면 예상요금 알림 받기에서 필요한 것들을 체크해주는 것이 좋다.

 

 

인스턴스가 생성되었다.

 

 

키페어 putty

https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html

에 들어가서 putty.zip을 다운받는다.

 

 

 

 

 

압축을 풀면 다음과 같다.

 

Puttygen.exe를 실행한 후 다운 받았던 pem파일을 불러오고 private key를 누른다

같은 폴더에 pem파일이 ppk파일로 바뀐 것을 볼 수 있다.

 

그다음 putty.exe를 실행시켜 준뒤 다음과 같이 입력하는데 이때 IP

Aws 인스턴스에서 퍼블릭ip주소이다.

 

 

 

그다음 auth로 들어가서 아까 만들어두었던 ppk 파일을 등록해준다.

 

다시 세션으로 이동하여 이름을 지정해 save해주면 더 편하게 사용할 수 있다.

 

 

올바르게 설정을 완료했다면 실행 시 이러한 창이 뜬다.

 

 

 

Root로 들어가기 sudo su-

 

Root로 들어가려면 sudo su – 라고 입력되고 Exit를 치면 나와진다.

 

 

 

자바설치

 

 

yum list java*를 입력해서 설치할 수 있는 리스트를 확인하고,

 

yum install 설치할java파일명 우클릭 한 뒤(이름이복사된다) 설치시작! y누르면 설치완료

 

 

 

 

설치 후 java -version을 입력하면 자바버전을 확인할 수 있다.

 

 

톰캣 설치

Yum list * 로 설치할 수 있는 것들을 확인할 수 있고

 

yum list tomcat*을 치면 톰캣관련 설치가능한 목록을 볼 수 있다

(available packages)

 

 

 

이 중에서 tocattomat-admin-webapps, tomcat-webapps를 설치해준다.

설치 방법은 yum install ~ 로 아래와 같이 치면 된다.

 

그 뒤 톰캣 권한 설정을 위해 아래와 같이 쳐주는데

아무런 응답이 없으면 에러가 나지 않고 제대로 실행되고 있다는 뜻이다.

[root@ip-172-31-28-56 tomcat8]# cd /usr/share/tomcat8
[root@ip-172-31-28-56 tomcat8]# chgrp -R tomcat /usr/share/tomcat8
[root@ip-172-31-28-56 tomcat8]# chown -R tomcat webapps/ work/ temp/ logs/
[root@ip-172-31-28-56 tomcat8]# find conf webapps -type d -exec chmod 755 {} +
[root@ip-172-31-28-56 tomcat8]# find conf webapps -type f -exec chmod 644 {} +
[root@ip-172-31-28-56 tomcat8]# find logs temp work -type d -exec chmod 750 {} +
[root@ip-172-31-28-56 tomcat8]# find logs temp work -type f -exec chmod 640 {} +
[root@ip-172-31-28-56 tomcat8]# service tomcat8 restart

ls -al을 입력하면 설치된 설치된 것들을 볼 수있다.

 

 

Service tomcat status라고 쳤을 때 초록색으로 active(running)이라고 나오면

제대로 돌아가고 있는 것을 확인할 수 있다.

접근을 위해 EC2 – 보안그룹으로 들어가 인바운드 규칙을 편집해준다.

유형 사용자지정TCP, 소스유형 위치무관 , 포트범위는 8080으로 규칙을 추가해준다.

인바운드 규칙을 추가해주고 8080포트로 접속하면 이러한 화면이 뜬다.

(인바운드 규칙 추가전에는 페이지 이동X)

 

 

 

 

 

 

 

배포하기

 

https://filezilla-project.org/download.php에서 파일질라를 다운받아준다.

 

Putty와 마찬가지로 퍼블릭ip주소를 복사해온다.

 

사이트 관리자 창을 열어 아래와 같이 입력해주는데,

호스트는 앞서 복사한 ip 주소이며, 키 파일은 만들어둔 ppk파일을 불러오면 된다.

 

 

 

확인을 누르고 다시 사이트 관리자를 켠 후 연결해준다.

 

파일질라에서 보여지는 화면에 있는 파일들을 똑같이 확인해볼 수 있다.

 

 

우리는 원래 이 루트에 배포를 시켜야 하지만 권한이 없다.

 

 

그래서 먼저 여기(home/~이름)에 드래그를 해서 파일을 배포한 뒤 tomcat/webapps로 옮기는 방식을 쓴다.

 

 

 

 

 

먼저 배포를 위해서 다이나믹 프로젝트를 export하여 war파일로 만들어준다. (이클립스)

 

그 다음 드래그를 통해 넣어준다.

Ex2-userls -al을 쳐보면 넣어준 파일들이 잘 들어가 있는 것을 확인할 수 있다.

 

Sudo su – 입력해서 관리자 페이지로 들어간뒤, Mv 파일명 이동루트로 파일을 보내준다.

파일명 변경도 가능한데 open.war로하면 open이 주소이다.

 

 

 

 

성공적으로 끝났다면 올려놓은 프로젝트가 제대로 실행되는 것을 확인할 수 있다

 

 

AWS 데이터베이스 생성

계속하기 > 나머진 체크X

다음 단계에서는 퍼블릭 액세스 가능성 예로 체크

 

 

 

 

 

워크벤치 켜준다. 계정생성

username과 비밀번호는 db생성할 때 만들었던 걸로..

hostname은 데이터베이스 정보에 있는 엔드포인트로 넣어준다

 

aws-admin들어가서 aia계정 생성해주고 (원래썼던 계정과 이름동일하게 해서 코드 수정을 줄였다)

스키마도 똑같이 open으로 생성하고 aws-aia계정에 권한을 주었다.

 

 

 

테이블 복사해서 넣기

 

복사할 mysql계정(여기서는 aia)에 들어가서 Data Export 해준다.

테이블만 내보낼 수도 있고 데이터를 같이 내보낼 수도 있음.

 

위와같이 덤프 폴더로 생성된다

 

복사 하려고 하는 (새로생성한 aws / 여기서는 aws-aia)

 

복사완료~

 

 

 

JAVA에서는 localhost 대신에 엔드포인트 주소로 변경

+ Recent posts