

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

# 더 많은 Java용 Elastic Beanstalk 예제 애플리케이션 및 자습서
<a name="java-getstarted"></a>

이 섹션에서는 추가 애플리케이션 및 자습서를 제공합니다. 이 주제의 앞부분에 있는 [Java에 대한 QuickStart](java-quickstart.md) 및 [Tomcat의 Java에 대한 QuickStart](tomcat-quickstart.md) 주제에서는 EB CLI를 사용하여 샘플 Java 애플리케이션을 시작하는 방법을 안내합니다.

Java 애플리케이션을 시작하려면 첫 번째 애플리케이션 버전으로 업로드하고 환경에 배포할 애플리케이션 [소스 번들](applications-sourcebundle.md) AWS Elastic Beanstalk만 있으면 됩니다. 환경을 생성하면 Elastic Beanstalk는 확장 가능한 웹 애플리케이션을 실행하는 데 필요한 모든 AWS 리소스를 할당합니다.

## 샘플 Java 애플리케이션을 사용해 환경 시작
<a name="java-getstarted-samples"></a>

Elastic Beanstalk는 각 플랫폼에 대한 단일 페이지 샘플 애플리케이션과 Amazon RDS 및 언어 또는 플랫폼별 기능 및 APIs와 같은 추가 AWS 리소스 사용을 보여주는 보다 복잡한 예제를 제공합니다.

단일 페이지 샘플은 고유한 소스 코드를 제공하지 않고 환경을 생성할 때 얻는 것과 동일한 코드입니다. 더 복잡한 예제는 GitHub에 호스팅되며 Elastic Beanstalk 환경에 배포하기 전에 컴파일하거나 빌드해야 합니다.

 


**샘플**  

|  이름  |  지원되는 버전  |  환경 유형  |  소스  |  설명  | 
| --- | --- | --- | --- | --- | 
|  Tomcat(단일 페이지)  |  모든 *Corretto 사용 Tomcat* 플랫폼 브랜치  |  웹 서버 작업자  |   [tomcat.zip](samples/tomcat.zip)   |  웹 사이트 루트에 표시되도록 구성된 단일 페이지(`index.jsp`)가 있는 Tomcat 웹 애플리케이션입니다. [작업자 환경](using-features-managing-env-tiers.md)의 경우 이 샘플에는 1분마다 `cron.yaml`를 호출하는 예약 작업을 구성하는 `scheduled.jsp` 파일이 들어 있습니다. `scheduled.jsp`가 호출되면 `/tmp/sample-app.log`의 로그 파일에 작성합니다. 마지막으로, 환경 로그 요청 시 `.ebextensions`에서 Elastic Beanstalk가 읽는 위치로 로그를 복사하는 구성 파일은 `/tmp/`에 들어 있습니다. 이 샘플을 실행하는 환경에서 [X-Ray 통합을 활성화](environment-configuration-debugging.md)하면 애플리케이션에서 X-Ray에 관한 추가 콘텐츠를 보여 주고, X-Ray 콘솔에서 볼 수 있는 디버그 정보를 생성하기 위한 옵션을 제공합니다.  | 
|  Corretto(단일 페이지)  |  Corretto 11 Corretto 8  |  웹 서버  |  [corretto.zip](samples/corretto.zip)  |  `Buildfile` 및 `Procfile` 구성 파일이 있는 Corretto 애플리케이션입니다. 이 샘플을 실행하는 환경에서 [X-Ray 통합을 활성화](environment-configuration-debugging.md)하면 애플리케이션에서 X-Ray에 관한 추가 콘텐츠를 보여 주고, X-Ray 콘솔에서 볼 수 있는 디버그 정보를 생성하기 위한 옵션을 제공합니다.  | 
|  Scorekeep  | Java 8 | 웹 서버 | [GitHub.com에서 리포지토리 복제](https://github.com/awslabs/eb-java-scorekeep) |  *Scorekeep*은 Spring 프레임워크를 사용하여 사용자, 세션 및 게임을 만들고 관리하기 위한 인터페이스를 제공하는 RESTful 웹 API입니다. API는 HTTP를 통해 API를 사용하는 Angular 1.5 웹 앱이 있는 번들입니다. 애플리케이션은 Java SE 플랫폼의 기능을 사용하여 종속 항목을 다운로드하고 인스턴스 상에서 빌드하며, 소스 번들의 크기를 최소화합니다. 이 애플리케이션에는 프록시를 통해 포트 80에서 프런트엔드 웹 앱을 정적으로 처리하도록 기본 구성을 재정의하고, `/api` 아래의 경로에 대한 요청을 `localhost:5000`에서 실행되는 API로 라우팅하는 nginx 구성 파일도 포함되어 있습니다. Scorekeep에는 `xray`에서 사용할 Java 애플리케이션을 계측하는 방법을 보여 주는 AWS X-Ray브랜치도 포함되어 있습니다. 서블릿 필터를 사용한 수신 HTTP 요청 계측, 자동 및 수동 AWS SDK 클라이언트 계측, 레코더 구성, 발신 HTTP 요청 및 SQL 클라이언트 계측을 보여줍니다. readme에서 지침을 참조하거나 [AWS X-Ray 시작 자습서](https://docs.aws.amazon.com/xray/latest/devguide/xray-gettingstarted.html)를 사용하여 X-Ray와 함께 애플리케이션을 사용해 보세요.  | 
|  Does it Have Snakes?  | Tomcat 8과 Java 8 | 웹 서버 | [GitHub.com에서 리포지토리 복제](https://github.com/awslabs/eb-tomcat-snakes) |  *Does it Have Snakes?*는 Elastic Beanstalk 구성 파일, Amazon RDS, JDBC, PostgreSQL, Servlet, JSP, Simple Tag Support, Tag File, Log4J, Bootstrap, Jackson의 사용을 보여주는 Tomcat 웹 애플리케이션입니다. 이 프로젝트의 소스 코드에는 서블릿과 모델을 클래스 파일로 컴파일하고 필요한 파일을 Elastic Beanstalk 환경에 배포할 수 있는 Web Archive로 패키징하는 최소의 빌드 스크립트가 포함되어 있습니다. 전체 지침은 프로젝트 리포지토리의 추가 정보 파일을 참조하십시오.  | 
| Locust Load Generator | Java 8 | 웹 서버 | [GitHub.com에서 리포지토리 복제](https://github.com/awslabs/eb-locustio-sample) |  다른 Elastic Beanstalk 환경에서 실행 중인 다른 웹 애플리케이션에 대한 부하 테스트를 할 때 사용할 수 있는 웹 애플리케이션입니다. `Buildfile` 및 `Procfile` 파일, DynamoDB, 오픈 소스 부하 테스트 도구인 [Locust](http://locust.io/)의 사용을 보여 줍니다.  | 

샘플 애플리케이션을 다운로드하고 다음 단계에 따라 이를 Elastic Beanstalk에 배포합니다.

**애플리케이션을 사용하여 환경을 시작하는 방법(콘솔)**

1. [Elastic Beanstalk 콘솔](https://console.aws.amazon.com/elasticbeanstalk)을 열고 **리전** 목록에서를 선택합니다 AWS 리전.

1. 탐색 창에서 **애플리케이션**을 선택합니다. 목록에서 기존 애플리케이션을 선택합니다. [ 애플리케이션 관리](applications.md)의 지침에 따라 한 애플리케이션을 생성하도록 선택할 수도 있습니다.

1. 애플리케이션 개요 페이지에서 **새 환경 생성**을 선택합니다.

   그러면 **환경 생성(Create environment)** 마법사가 시작됩니다. 마법사는 새로운 환경을 생성하기 위한 여러 단계 집합을 제공합니다.

1. **환경 티어**의 경우, **웹 서버 환경** 또는 **작업자 환경** [환경 티어](concepts.md#concepts-tier)를 선택합니다. 생성한 후에는 환경의 티어를 변경할 수 없습니다.
**참고**  
[Windows Server 플랫폼의 .NET](create_deploy_NET.md)에서는 작업자 환경 티어를 지원하지 않습니다.

   **애플리케이션 정보** 필드는 이전에 선택한 애플리케이션을 기반으로, 기본적으로 설정됩니다.

   **환경 정보** 그룹화에서 애플리케이션 이름을 기준으로 **환경 이름**이 기본적으로 설정됩니다. 다른 환경 이름을 원하는 경우 필드에 다른 값을 입력할 수 있습니다. 선택적으로 **도메인** 이름을 입력할 수 있습니다. 그렇지 않으면 Elastic Beanstalk에서 값을 자동으로 생성합니다. 또한 선택적으로 **환경 설명**을 입력할 수 있습니다.

1. **플랫폼**에서 애플리케이션에 사용되는 언어와 일치하는 플랫폼 및 플랫폼 브랜치를 선택합니다.
**참고**  
Elastic Beanstalk는 나열된 대부분 플랫폼의 여러 [버전](concepts.platforms.md)을 지원합니다. 콘솔은 기본적으로 선택된 플랫폼 및 플랫폼 브랜치의 권장 버전을 선택합니다. 애플리케이션에 다른 버전이 필요한 경우에는 여기서 해당 버전을 선택할 수 있습니다. 지원되는 플랫폼 버전에 대한 자세한 내용은 [Elastic Beanstalk 지원되는 플랫폼](concepts.platforms.md)을 참조하십시오.

1. **애플리케이션 코드**의 경우 계속 진행할 수 있는 몇 가지 옵션이 있습니다.
   + 소스 코드를 제공하지 않고 기본 샘플 애플리케이션을 시작하려면 **샘플 애플리케이션**을 선택합니다. 이 작업은 이전에 선택한 플랫폼에 대해 Elastic Beanstalk에서 제공하는 단일 페이지 애플리케이션을 선택합니다.
   + 이 가이드 또는 나만의 소스 코드에서 샘플 애플리케이션을 다운로드한 경우 다음 단계를 수행합니다.

     1. **코드 업로드**를 선택합니다.

     1. 그런 다음 **로컬 파일**을 선택한 다음, **애플리케이션 업로드**에서 **파일 선택**을 선택합니다.

     1. 클라이언트 기기의 운영 체제에서 다운로드한 로컬 파일을 선택할 수 있는 인터페이스를 제공합니다. 소스 번들 파일을 선택하고 계속합니다.

1. **프리셋**에 대한 선택은 환경의 용도에 따라 달라집니다.
   + Elastic Beanstalk 또는 개발 환경에 대해 알아보기 위해 샘플 환경을 생성하는 경우 **단일 인스턴스(프리 티어 사용 가능)**를 선택합니다.
   + 로드 밸런싱에 대해 자세히 알아보려면 프로덕션 환경 또는 환경을 생성하는 경우 **고가용성** 옵션 중 하나를 선택합니다.

1. **다음**을 선택합니다.

**서비스 액세스를 구성하려면**  
다음으로 두 가지 역할이 필요합니다. *서비스 역할*을 통해 Elastic Beanstalk는 EC2 인스턴스를 모니터링하고 환경의 플랫폼을 업그레이드할 수 있습니다. *EC2 인스턴스 프로파일* 역할은 로그 작성 및 다른 서비스와의 상호 작용과 같은 작업을 허용합니다.

**서비스 역할을 생성하거나 선택하려면**

1. 이전에 **서비스 역할**을 생성했고 기존 역할을 선택하려면 **서비스 역할** 드롭다운에서 값을 선택하고 이 단계의 나머지 부분을 건너뛰어 서비스 역할을 생성합니다.

1. **서비스 역할**에 나열된 값이 없거나 새 값을 생성하려면 다음 단계를 계속 진행합니다.

1. **서비스 역할**에서 **역할 생성**을 선택합니다.

1. **신뢰할 수 있는 엔터티 유형**에서 **AWS 서비스**를 선택합니다.

1. **사용 사례**에서 **Elastic Beanstalk – 환경**을 선택합니다.

1. **다음**을 선택합니다.

1. **권한 정책**에 다음이 포함되어 있는지 확인한 후 **다음**을 선택합니다.
   + `AWSElasticBeanstalkEnhancedHealth`
   + `AWSElasticBeanstalkManagedUpdatesCustomerRolePolicy`

1. **역할 생성**을 선택합니다.

1. **서비스 액세스 구성** 탭으로 돌아가 목록을 새로 고친 다음 새로 생성된 서비스 역할을 선택합니다.

**EC2 인스턴스 프로파일을 생성하거나 선택하는 방법**

1. 이전에 **EC2 인스턴스 프로파일**을 생성했고 기존 프로파일을 선택하려면 **EC2 인스턴스 프로파일** 드롭다운에서 값을 선택하고 나머지 단계를 건너뛰어 EC2 인스턴스 프로파일을 생성합니다.

1. **EC2 인스턴스 프로파일**에 값이 표시되지 않거나 새로 생성하려는 경우, 다음 단계를 계속 진행하세요.

1. **역할 생성**을 선택합니다.

1. **신뢰할 수 있는 엔터티 유형**에서 **AWS 서비스**를 선택합니다.

1. **사용 사례**에서 **Elastic Beanstalk – 컴퓨팅**을 선택합니다.

1. **다음**을 선택합니다.

1. **권한 정책**에 다음이 포함되어 있는지 확인한 후 **다음**을 선택합니다.
   + `AWSElasticBeanstalkWebTier`
   + `AWSElasticBeanstalkWorkerTier`
   + `AWSElasticBeanstalkMulticontainerDocker`

1. **역할 생성**을 선택합니다.

1. **서비스 액세스 구성** 탭으로 돌아가 목록을 새로 고친 다음 새로 생성된 EC2 인스턴스 프로파일을 선택합니다.

**애플리케이션 구성 및 생성을 완료하는 방법**

1. (선택 사항) 이전에 EC2 키 페어를 생성한 경우 **EC2 키 페어** 필드 드롭다운에서 선택할 수 있습니다. 이를 사용하여 Elastic Beanstalk가 애플리케이션을 위해 프로비저닝하는 Amazon EC2 인스턴스에 안전하게 로그인할 수 있습니다. 이 단계를 건너뛰면 환경이 생성된 후 항상 EC2 키 페어를 생성하고 할당할 수 있습니다. 자세한 내용은 [EC2 키 페어](using-features.managing.security.md#using-features.managing.security.keypair) 단원을 참조하십시오.

1. **서비스 액세스 구성** 페이지에서 **검토로 건너뛰기**를 선택합니다.

1. **검토(Review)** 페이지에는 모든 선택 항목에 대한 개요가 표시됩니다.

   환경을 추가로 사용자 지정하려면 구성하려는 항목이 포함된 단계 옆에 있는 **편집(Edit)**을 선택합니다. 다음 옵션은 환경 생성 중에만 설정할 수 있습니다.
   + Environment name
   + 도메인 이름
   + 플랫폼 버전
   + 처리자
   + 로드 밸런서 유형
   + 티어

   다음 설정은 환경 생성 후에 변경할 수 있지만, 새 인스턴스 또는 다른 리소스를 프로비저닝해야 하며 적용하는 데 시간이 오래 걸릴 수 있습니다.
   + 인스턴스 유형, 루트 볼륨, 키 페어 및 AWS Identity and Access Management (IAM) 역할
   + 내부 Amazon RDS 데이터베이스
   + VPC

   사용 가능한 모든 설정에 대한 세부 정보는 [새 환경 생성 마법사](environments-create-wizard.md)을 참조하십시오.

1. 페이지 하단의 **제출(Submit)**을 선택하여 새로운 환경을 만드는 작업을 초기화하세요.

## 다음 단계
<a name="java-getstarted-next"></a>

애플리케이션을 실행하는 환경이 있으면 언제든 완전히 다른 애플리케이션 또는 애플리케이션의 [새 버전을 배포](using-features.deploy-existing-version.md)할 수 있습니다. EC2 인스턴스를 프로비저닝하거나 다시 시작할 필요가 없기 때문에 새 애플리케이션 버전을 매우 빠르게 배포할 수 있습니다.

샘플 애플리케이션을 한두 개 배포하고 Java 애플리케이션을 로컬에서 개발 및 실행할 준비가 되면 [다음 섹션](java-development-environment.md)을 참조하여 필요한 모든 도구 및 라이브러리로 Java 개발 환경을 설정하십시오.