2011-02-01 7 views
11

클라우드에 Java로 작성된 서버 프로그램을 배치하려고합니다. 클라이언트 (클라이언트는 3G를 사용하는 안드로이드 폰)의 TCP 소켓 연결을 수락하고, 계산을 수행하고, MySQL 데이터베이스 (EC2에서도)를 저장하고, TCP 연결을 통해 클라이언트에게 물건을 다시 보냅니다. 서버의 여러 인스턴스 (예 : 프로세스 그룹)를 만들어야 할 수도 있습니다.Amazon EC2에서 Java 서버를 실행하는 방법은 무엇입니까?

이 작업을 쉽게 수행 할 수 있습니까? 나는 AMI를 만들 수 있다고 생각하지만 자바 파일을 업로드하고 컴파일하고 실행하고 MySQL 데이터베이스 등을 만드는 방법을 잘 모르겠다.

어떤 도움을 주시면 감사하겠습니다.

+1

EC2 인스턴스가 실제 서버라고 가정하십시오. 실제로 EC2 인스턴스와 상호 작용하는 방식입니다. 파일을 업로드하고 컴파일하고 실행하는 방법을 배우면 "EC2에서 컴파일하는 방법"을 검색하지 마십시오. EC2에서 '서버'를 임대한다는 사실은 부적합합니다. –

+1

내가 참조하고있는 서버는 포트에서 들어오는 연결을 수신하는 응용 프로그램 일 뿐이며 일부 작업을 수행하는 스레드를 생성합니다. 그래서 Tomcat이 방정식에 들어오는 지 확실하지 않습니다.또한 클라이언트가 소켓을 통해 연결하는 방법을 잘 모르겠습니다. IP 주소와 포트가 필요합니다. 로컬 시스템의 VM을 사용하는 것처럼 AMI의 IP 주소를 얻으시겠습니까? 내 무지를 용서해주십시오. 답변 해 주셔서 감사합니다. – foxy

+0

Amazon에서 인스턴스를 만들면 클라우드에서 서버의 IP 주소를 가져옵니다. 그 IP를 이용하여 – Speck

답변

1

서버를 원격으로 관리하고 들어 본 적이없는 대부분의 사람들이 얼마나 편안합니까? 그게 당신이 말하는거야.

EC2 인스턴스를 만들고 로그인 한 다음 작업중인 다른 서버와 마찬가지로 구성하십시오. JDKs, dbs 등을 다운로드 할 수 있습니다. Chef 같은 도구를 사용하면 도움이 될 것입니다. ftp 및 scp를 사용하여 파일을 서버에 복사합니다.

자바 서버를 하나의 상자에 넣고 여러 개의 서버가 필요할 수 있으므로 별도의 db 서버와 대화해야합니다.

서버가 원하는대로 작동하면 여러 인스턴스를 시작하는 데 사용할 이미지를 만든 다음 부하 분산 장치가 서버를 가리 키도록 구성 할 수 있습니다.

로컬 상자에 MySql 데이터베이스를 만들 수있는 경우 클라우드에서 만들 수 있습니다. 그렇지 않다면 .... ....

3

이 작업을 쉽게 할 수 있습니까? 나는AMI를 만들 수 있다고 생각합니다 ...

나는 시스템 관리가 얼마나 편한지에 달려 있다고 생각합니다. EC2에서 실행되는 AMI를 생성하는 것은 실제 서버 또는 VM 이미지를 만드는 것과 거의 같습니다. 운영 체제를 설치하고 필요한 도구, 라이브러리 및 프로그램 (예 : mysql, jdk, ssh 등)을 설치해야합니다.

아마존의 사전 제작 된 AMI 인 http://aws.amazon.com/amis/ 중 하나를 사용하여 약간의 작업을 절약 할 수 있습니다. 그러나 궁극적으로 서버의 모든 시스템 관리를 담당하게됩니다. 처음부터 서버를 구축 한 적이 없다면, 앞서 큰 학습 곡선을 얻었을 것입니다. 극복 할 수없는 것이 아니라, 악마가 세부 사항에 있다고 경고해야합니다. 거기에 당신이 ;-)

을 배울 필요가 있습니다 물건의 톤이 ...하지만 내가 컴파일하고 실행할 자바 파일을 업로드하는 방법을 잘 모르겠어요 ...

일단 서버가 EC2에서 설정되고 실행되면, 컴파일하고 java 파일을 실행하는 것은 로컬에서 컴파일하고 실행하는 것과 같습니다. 일반적으로 자바 애플리케이션을 jar 또는 war로 컴파일하고 패키징 한 다음 EC2 서버로 전송하려고합니다. EC2 서버에 linux os를 설치하면 scp 또는 FTP 클라이언트를 사용하여 sftp를 통해 파일을 전송하여 로컬에서 서버로 파일을 이동할 수 있습니다. 최신 파일이 서버에 올라 오면 서버로 ssh하고 앱을 시작할 수 있습니다.

... 그리고 MySQL 데이터베이스 등을 생성하십시오.

mysql 설치는 서버에 설치하기로 선택한 OS에만 해당됩니다. 예를 들어, 같은 명령으로 MySQL을 쉽게 우분투에 설치할 수 있습니다

sudo aptitude install mysql 

를 다시 MySQL의 데이터베이스에 여기에 특정 배울 수있는 더 많은 시스템 - 관리 형 물건이있을 것이다.

그럼, 분명히 할 수 있습니다. 숙련 된 시스템 관리자는 AMI 인스턴스를 매우 쉽고 빠르게 구축 할 수 있습니다. 이것이 시스템 관리에 대한 첫 경험이라면, 나는 우연히 발견 된 오래된 데스크탑을 찾고 우분투와 필요한 모든 라이브러리와 도구 (mysql, jdk, ssh 등)를 설치하는 것이 좋습니다. 자바 프로그램이 오래된 데스크탑에서 작동하도록하면 AMI를 만드는 것이 꽤 쉽습니다. 그런 다음 EC2에서 사용자 정의 AMI를 실행하여 설정할 수 있습니다.

여분의 데스크톱이없는 경우 VMWare Player 또는 Sun의 VirtualBox와 같은 Virtual Machine 제품 중 하나를 사용하여 그 중 하나에서 서버 인스턴스를 구축 할 수 있습니다.

운영 체제의 전체 설치를 관리하는 번거 로움을 피하려면 EC2 대신 slicehost 및/또는 linode와 같은 서비스를 살펴볼 수 있습니다. 미리 설치된 서버에 대한 액세스를 제공합니다. 그리고 mysql과 같은 프로그램을 설치하기 위해 버튼을 클릭하는 것만 큼 쉽습니다.

이 답변이 유용하고 도움이 되었기를 바랍니다. 행운을 빕니다. - Dave

+0

을 관리 할 수 ​​있습니다. 모든 소프트웨어가 포함 된 AMI를 만들 수 있습니다. - Java : 문제 없음 - MySQL : 확실하지 않음, 터미널을 통해이 작업을 수행해야합니다. 떨어져서. - 서버 프로세스가 데이터베이스에 액세스하는 데 사용하는 데이터베이스 래퍼 Java 클래스 (하나의 데이터베이스, 액세스하는 둘 이상의 서버 프로세스 일 수도 있음)와 함께 Java 코드 (즉, 서버 프로세스). – foxy

+0

매우 근사합니다. 네, 터미널을 통해 원격으로 mysql을 설치하고 구성하는 것이 가능합니다. 어느 AMI로 시작 했습니까 (어느 OS)? – Upgradingdave

+0

답장을 보내 주셔서 감사합니다, Dave. 어떤 OS인지, 아마 Linux인지 모르겠습니다. Java 서버 및 DB와 함께 AMI가 필요하다고 생각하고 오류 전달을 위해이 AMI를 두 번 복제하십시오. 두 서버 프로세스는 프로세스 그룹을 구성하며 메시지는 3G를 통해 클라이언트 (Android 전화)에서이 그룹에 멀티 캐스트됩니다. 이 단계에서 약간 털이지만, 그렇게 복잡합니다 - 복잡합니다! – foxy

2

서버로 Tomcat을 사용할 수있는 경우 Amazon Web Services Elastic Beanstalk 시도해보십시오. 배포 할 Tomcat의 쉬운 인스턴스를 제공하여 작업을 크게 단순화합니다.

편집 :

+0

Cloudcat (http://www.mulesoft.com/cloudcat-apache-tomcat-cloud) – Ken

14

http://aws.amazon.com/java/Amazon Elastic Beanstalk를 사용하여 한 번보세요 : AWS 여기에 자바를 사용하여 개발하는 방법에 대한 전체 섹션이 있습니다. Beanstalk은 Amazon의 PaaS 오퍼링이며 많은 시스템 관리 부담을 덜어줍니다. 여기에 자신의 문서에서 간단한 설명 : 당신은 신속하게 를 배포하고 AWS 클라우드에서 애플리케이션을 관리 할 수 ​​

AWS 탄성 콩 줄기는 더 쉬운 방법입니다. 응용 프로그램을 업로드하기 만하면 Elastic Beanstalk 은 자동으로 응용 프로그램 상태 모니터링 용량 지정,로드 균형 조정, 자동 크기 조절 및 로드를 처리합니다.

또한 MySQL을 사용하고자한다면 Amazon RDS을 참조하십시오. 다시 말하지만, 이것은 데이터베이스 계층에 대한 시스템 관리 부담을 경감시킵니다.

아마존 관계형 데이터베이스 서비스 (아마존 RDS) 이 설정, 조작하기 쉽게 만드는 웹 서비스, 그리고 스케일 클라우드에서 관계형 데이터베이스 : 여기에 자신의 문서에서 간단한 설명입니다. 용량을 조정할 수 있으며 시간이 많이 걸리는 데이터베이스 관리 작업을 관리하면서 응용 프로그램 및 비즈니스에 집중할 수 있습니다.

+0

+1 콩나무에 대해 들어 본 적이 없다. 매우 멋지다! – Upgradingdave

+0

Cloudcat은 또한 업로드, 응용 프로그램 배포 및 인스턴스 모니터링을 위해 지원되는 관리 콘솔과 함께 EC2에서 실행되는 Tomcat 및 MySQL을 사전 구성하여 제공합니다. – Ken

1
  1. 응용 프로그램 실행 응용 프로그램을 필요로한다. s/w를 실행하십시오. 이러한 사이버 오리

  2. 앱은 SFTP를 통해 파일을 업로드 할 수 있습니다.

  3. 내가 해결 같은 문제를 일을 성공입니다 .. 날 믿어, 당신은 그것을 할 수 있습니다. U이 필요로 MySQL과 (사용 키 쌍을 사용하여 연결하는 워크 벤치), (MAC을 통해 PUTTY/SSH를 사용하여) 터미널 접속 등의 서버 서비스에 대한 인터페이스입니다 잘 당신은 내가 시작하는 생각

0

을 갈 수 있습니다 하나의 아카이브에 압축 된 전체 단위를 사용하는 것입니다. 그것의

생각해 당신이 당신의 자바 파일을 컴파일 가지고는 내장 된 HTTP 서버 tomcat를 말한다. 이제 이것들은 모두 Amazon's EC2에 배포 할 준비가 된 항아리에 포장되었습니다. 임베디드 서버 및 관련 코드에 대한 자세한 내용은 this 링크를 사용하십시오.

데이터베이스에 관한 한 Amazon의 RDS를 사용할 수 있습니다. RDS에 mysql을 설정하고 연결을위한 링크를 얻을 수있다. Amazon RDS은 데이터베이스를 시작하는 데 도움이됩니다.

이제 시작하고 응용 프로그램과 함께 일할 준비가 모든 것을 가지고있다.

  1. EC2 getting started를 참조 아마존 EC2에 대한 서버 인스턴스를 만들기 : 이제 아마존 EC2에 응용 프로그램을 배포하는 단계에 따라 수행 아마존 AMI

    에 배포 할 수있는 시간입니다.

  2. .pem (1 단계에서 수신), 당신을 도울 것입니다이 파일이 서버 인스턴스에 로그인 SFTP를 수행하기 위해 개인 키 파일을받을 수 있습니다.
  3. .pem 파일과 서버의 공용 DNS를 사용하여 1 단계에서 생성 한 EC2 서버 인스턴스에 로그인하려면 Putty 또는 유사 SSH client을 사용하고 SSH 로그인은 Accessing Instance을 참조하십시오.
  4. WinnSCP가되고, 하나의 클라이언트를 SFTP 클라이언트를 사용하여 서버에 항아리에 포장 보관 된 파일을 전송 그것은에 대한 자세한 내용은 SFTP을 참조하십시오.
  5. 응용 프로그램을 실행하십시오. 참고 jar 파일의 경우 단순히 java -jar TomcatApp.jar을 실행할 수 있습니다. 모든 것이 제대로 구성되면

당신이 사용하는 응용 프로그램에 액세스하는 것 EC2 인스턴스의 형식이 될 것 public DNS 또는 public IP :
http://<public_dns_address>:<port number>/servlet

은 당신이 시작하는 데 도움이되기를 바랍니다하고을 제공 전체보기.

관련 문제