배포를 하기 위해서는 war파일을 만들어 주어야 한다.
그전에 수정해 줘야할 것이 있는데 바로 데이터베이스 주소이다.
우리가 로컬에서 사용하던 데이터베이스가 아니라 데이터베이스 서버에 연결을 시켜야 한다.
root-context.xml 파일에서 저번에 구축한 rds 엔드포인트 주소를 노랑색 위치에 데이터베이스 이름과 같이 넣어준다.
id와 pw도 알맞게 설정해 준다.
프로젝트 우클릭 Export를 클릭해 준다.
war 파일을 만들어서 저장할 Destination을 지정해 주고 반드시 war파일의 이름을 ROOT.war 파일로 설정해 준다.
톰캣에서 실행할때 기본설정이 ROOT.war파일을 실행하도록 되어있기 때문에 그렇다.
war파일을 성공적으로 만들었다면 그 파일을 ubuntu server에 전송해야한다.
putty와 WinSCP를 이용해서 전송해 줄 것이다.
docs.aws.amazon.com/ko_kr/AWSEC2/latest/UserGuide/putty.html
PuTTY를 사용하여 Windows에서 Linux 인스턴스에 연결 - Amazon Elastic Compute Cloud
프라이빗 키의 암호는 추가 보호 계층입니다. 프라이빗 키가 노출되더라도 암호 없이 사용할 수 없습니다. 암호문 사용의 단점은 인스턴스에 로그온하거나 인스턴스에 파일을 복사하기 위해 사
docs.aws.amazon.com
제일먼저 ec2 인스턴스에 접속하기 위해서 pem키를 ppk로 바꾸어 주어야 하는데 PuTTYgen을 이용한다.
Putty를 다운받으면 같이 포함되어 있는 프로그램이다.
Load를 이용해서 pem 파일을 가져와서 save private key로 저장해 주면 된다.
확장자는 name.ppk 로 설정하면 된다.
Host Name에 ec2 ip주소를 입력해 준다.
SSH -> Auth 에서 ec2인스턴스의 비밀번호.ppk 파일을 선택해 준다.
그 후 WinSCP를 다운로드 해 준다.
사이트 관리자에서 22번 포트를 설정하고 호스트 이름은 ec2 ip주소이고 사용자 이름은 ubuntu서버의 경우 ubuntu이고 비밀번호를 입력해 준다.
그후 위에서 생성한 개인키 파일을 설정해 준다.
그럼 위와 같은 화면을 드래그를 통해서 로컬에서 aws ec2 인스턴스로 파일을 전송할 수 있다.
그다음 톰캣 컨테이너를 ubuntu서버에서 실행시켜준다.
aws ec2 ubuntu 서버에서
docker run -d --name="tomcat-test" -p 8080:8080 tomcat:8
- "-d" : 옵션은 톰캣을 백그라운드에서 실행 시킨다고 하는 뜻이다.
- "--name" : Docker container ID 대신 사용하기 위해 설정해 준 것이다.
- "-p" : PORT설정이다. 앞은 호스트 뒤는 컨테이너의 PORT 이다.
명령어를 이용해서 이미지를 다운받고 컨테이너를 실행시켜 준다.
톰캣이 구동중인 것을 알 수 있다.
docker cp ~/ROOT.war tomcat-test:/usr/local/tomcat/webapps/
이클립스로 만든 war파일을 tomcat에 복사해 준다.
docker exec -it tomcat-test /bin/bash
- "exec" : 명령어를 이용해 컨테이너에 접속한다.
- "-it" : 명령어를 이용해 터미널 입력을 가능하게 한다.
명령어를 이용해 컨테이너에 접속해서 ROOT.war파일이 잘 들어갔는지 확인해 본다.
ec2 ip주소와 포트번호를 입력하면 잘 동작하는 것을 알 수 있다.
'Docker' 카테고리의 다른 글
[Docker] DockerHub와 github 연동하기 (0) | 2020.11.08 |
---|---|
[Docker] AWS RDS를 이용한 데이터베이스 구축 (0) | 2020.11.08 |
[Docker] mysql과 php 컨테이너 연동 (0) | 2020.11.08 |
[Docker] AWS EC2에 mysql 컨테이너 설치 및 접속 (0) | 2020.11.08 |
[Docker] AWS EC2에 php 설치 (0) | 2020.11.08 |