스택 생성 및 애플리케이션 실행 - AWS OpsWorks

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

스택 생성 및 애플리케이션 실행

중요

The AWS OpsWorks Stacks 서비스 수명이 2024년 5월 26일에 종료되었으며 신규 및 기존 고객 모두 사용할 수 없습니다. 고객은 가능한 한 빨리 워크로드를 다른 솔루션으로 마이그레이션할 것을 강력히 권장합니다. 마이그레이션에 대해 궁금한 점이 있으면 다음 연락처로 문의하십시오. AWS Support 팀 구성: AWS re:포스트 포스트 또는 스루 AWS 프리미엄 지원.

이 섹션에서는 Tomcat 쿡북을 사용하여 Simple이라는 간단한 Java 서버 페이지 (JSP) 애플리케이션을 실행하는 기본 스택 설정을 구현하는 방법을 보여줍니다. JSP 스택은 이름이 지정된 Tomcat 기반 사용자 지정 레이어와 My 레이어로 구성됩니다. TomCustom SQL JSPSimple은 My 데이터베이스에 TomCustom 배포되어 My 데이터베이스의 일부 정보를 표시합니다. SQL 기본적인 사용 방법에 아직 익숙하지 않은 경우 AWS OpsWorks 스택을 먼저 Chef 11 Linux 스택 시작하기 읽어야 합니다.

심플 애플리케이션 JSP

심플 JSP 애플리케이션은 데이터베이스 연결을 설정하고 스택의 내 SQL 데이터베이스에서 데이터를 검색하는 방법에 대한 기본 사항을 보여줍니다.

<html> <head> <title>DB Access</title> </head> <body> <%@ page language="java" import="java.sql.*,javax.naming.*,javax.sql.*" %> <% StringBuffer output = new StringBuffer(); DataSource ds = null; Connection con = null; Statement stmt = null; ResultSet rs = null; try { Context initCtx = new InitialContext(); ds = (DataSource) initCtx.lookup("java:comp/env/jdbc/mydb"); con = ds.getConnection(); output.append("Databases found:<br>"); stmt = con.createStatement(); rs = stmt.executeQuery("show databases"); while (rs.next()) { output.append(rs.getString(1)); output.append("<br>"); } } catch (Exception e) { output.append("Exception: "); output.append(e.getMessage()); output.append("<br>"); } finally { try { if (rs != null) { rs.close(); } if (stmt != null) { stmt.close(); } if (con != null) { con.close(); } } catch (Exception e) { output.append("Exception (during close of connection): "); output.append(e.getMessage()); output.append("<br>"); } } %> <%= output.toString() %> </body> </html>

JSPSimple은 DataSource 객체를 사용하여 My SQL 데이터베이스와 통신합니다. Tomcat은 웹 앱 컨텍스트 구성 파일의 데이터를 사용하여 DataSource 객체를 생성 및 초기화하고 논리적 이름에 바인딩합니다. 그런 다음 Java 네이밍 및 디렉터리 인터페이스 (JNDI) 네이밍 서비스에 논리적 이름을 등록합니다. DataSource 객체의 인스턴스를 가져오려면 InitialContext 객체를 생성하고 리소스의 논리적 이름을 객체의 lookup 메서드로 전달합니다. 이 메서드가 해당 객체를 검색합니다. Simple JSP 예제의 논리적 이름에는 다음과 같은 java:comp/env/jdbc/mydb 구성 요소가 있습니다.

  • 이름의 나머지 부분과 콜론(:)으로 구분되는 루트 네임스페이스 java.

  • 슬래시(/)로 구분되는 추가 네임스페이스.

    Tomcat은 자동으로 리소스를 comp/env 네임스페이스에 추가합니다.

  • 웹 앱 컨텍스트 구성 파일에서 정의되고 슬래시로 네임스페이스와 구분되는 리소스 이름.

    이 예제에서는 리소스 이름이 jdbc/mydb입니다.

데이터베이스에 연결하기 위해 JSP Simple은 다음을 수행합니다.

  1. DataSource 객체의 getConnection 메서드를 호출합니다. 이 메서드는 Connection 객체를 반환홥니다.

  2. Connection 객체의 createStatement 메서드를 호출하여 데이터베이스와 통신하는 데 사용할 Statement 객체를 생성합니다.

  3. Statement 메서드를 호출하여 데이터베이스와 통신합니다.

    서버의 데이터베이스를 나열하는 SHOW DATABASES 쿼리를 executeQuery 실행하기 위한 단순 JSP 호출

executeQuery 메서드는 쿼리 결과를 포함하는 ResultSet 객체를 반환합니다. JSPSimple은 반환된 ResultSet 객체에서 데이터베이스 이름을 가져와 이를 연결하여 출력 문자열을 만듭니다. 마지막으로 예제는 ResultSet, StatementConnection 객체를 닫습니다. JSP및 JDBC 에 대한 자세한 내용은 각각 JavaServer 페이지 기술JDBC기본을 참조하십시오.

JSP스택과 함께 Simple을 사용하려면 스택을 저장소에 넣어야 합니다. 지원되는 모든 리포지토리를 사용할 수 있지만 다음 섹션에서 설명하는 예제 JSP 스택과 함께 Simple을 사용하려면 퍼블릭 S3 아카이브에 저장해야 합니다. 다른 표준 리포지토리를 사용하는 방법에 대한 자세한 정보는 쿡북 리포지토리 단원을 참조하세요.

S3 아카이브 리포지토리에 JSP Simple을 넣으려면
  1. 예제 코드를 simplejsp.jsp 파일에 복사한 다음 이 파일을 simplejsp 디렉터리에 저장합니다.

  2. simplejsp 디렉터리의 .zip 아카이브를 생성합니다.

  3. 퍼블릭 Amazon S3 버킷을 만들고, simplejsp.zip을 이 버킷에 업로드하고, 이 파일을 퍼블릭으로 설정합니다.

    이 작업을 수행하는 방법에 대한 자세한 설명은 Amazon Simple Storage Service 시작하기를 참조하세요.

stack을 만듭니다

JSPSimple을 실행하려면 다음과 같은 계층이 포함된 스택이 필요합니다.

  • 백엔드 My SQL 서버를 지원하는 My SQL 레이어입니다.

  • Tomcat 쿡북을 사용하여 Tomcat 서버 인스턴스를 지원하는 사용자 지정 계층.

스택을 생성하는 방법
  1. On the AWS OpsWorks 스택 대시보드에서 스택 추가를 클릭하여 새 스택을 생성하고 고급 >>을 클릭하여 모든 옵션을 표시합니다. 다음과 같이 스택을 구성합니다.

    • 이름 - 이 예제에서는 사용자가 정의한 스택 이름입니다. TomStack

    • 사용자 지정 Chef 쿡북 사용 - 토글을 로 설정합니다. 그러면 몇 가지 추가 옵션이 표시됩니다.

    • 리포지토리 유형 - Git

    • 리포지토리 — URL. git://github.com/amazonwebservices/opsworks-example-cookbooks.git

    • 커스텀 셰프 JSON —다음을 JSON 추가하세요.

      { "tomcat": { "base_version": 7, "java_opts": "-Djava.awt.headless=true -Xmx256m" }, "datasources": { "ROOT": "jdbc/mydb" } }

    나머지 옵션의 경우 기본값을 수락할 수 있습니다.

    사용자 JSON 지정은 다음을 수행합니다.

    • Tomcat 쿡북의 ['base_version'] 속성을 재정의해 Tomcat 버전을 7로 설정합니다. 기본값은 6입니다.

    • Tomcat 쿡북의 ['java_opts'] 속성을 재정의하여 인스턴스가 헤드리스임을 지정하고 JVM 최대 힙 크기를 256MB로 설정합니다. 기본값은 Amazon Linux를 실행하는 인스턴스에 대해 옵션을 설정하지 않습니다.

    • 에서 설명한 대로 웹 앱 컨텍스트 이름 () 에 JDBC 리소스 이름 (jdbc/mydb) 을 할당하는 ['datasources] 속성 값을 지정합니다. ROOT tomcat::context

      이 마지막 속성에는 기본값이 없으므로 사용자 지정으로 설정해야 합니다. JSON

    Configuration Management interface showing Chef version options and custom JSON input field.
  2. [계층 추가]를 클릭합니다. 레이어 유형으로는 My를 선택합니다SQL. 그런 다음 [계층 추가]를 클릭합니다.

  3. 탐색 창에서 [인스턴스]를 클릭한 다음 [인스턴스 추가]를 클릭합니다. 인스턴스 추가를 클릭하고 기본값을 수락합니다. 인스턴스에 해당하는 라인에서 [시작]을 클릭합니다.

  4. [계층] 페이지로 돌아가 [+ 계층]을 클릭하여 계층을 추가합니다. Layer type(계층 유형)으로 사용자 지정을 클릭합니다. 이 예제에서는 계층 이름 및 짧은 이름으로 각각 TomCustomtomcustom을 사용합니다.

    Add Layer form with Custom layer type, Name, and Short name fields for creating a customized layer.
  5. [계층] 페이지에서 사용자 지정 계층으로 [레시피]를 클릭하고 [편집]을 클릭합니다. [사용자 지정 Chef 레시피]에서 다음과 같이 계층의 수명 주기 이벤트에 Tomcat 쿡북 레시피를 할당합니다.

    • 설정tomcat::setup을 입력하고 +를 클릭합니다.

    • 구성tomcat::configure을 입력하고 +를 클릭합니다.

    • 배포tomcat::deploy를 입력하고 +를 클릭합니다. 그런 다음 저장을 클릭합니다.

      .

    Custom Chef Recipes interface showing setup, configure, and deploy steps with options.
  6. 탐색 창에서 []을 클릭한 다음 [앱 추가]를 클릭합니다. 다음 옵션을 지정하고 [앱 추가]를 클릭합니다.

    • 이름 - 앱 이름. 이 예제에서는 JSP Simple과 에서 생성한 짧은 이름을 사용합니다. AWS OpsWorks 스택은 simplejsp가 됩니다.

    • 앱 유형 - 이 옵션은 기타로 설정합니다.

      AWS OpsWorks 스택은 표준 앱 유형을 연결된 서버 인스턴스에 자동으로 배포합니다. 앱 유형을 기타로 설정하는 경우 AWS OpsWorks 스택은 단순히 배포 레시피를 실행하고 배포를 처리할 수 있도록 합니다.

    • [문서 루트] - 이 옵션은 ROOT으로 설정합니다.

      [문서 루트] 값은 컨텍스트 이름을 지정합니다.

    • 리포지토리 유형 - 이 옵션은 S3 아카이브로 설정합니다.

    • 리포지토리 URL —이전에 URL 생성한 앱의 Amazon S3로 설정합니다.

    다른 옵션에는 기본 설정을 사용합니다.

    Application settings form with fields for name, app type, document root, and source details.
  7. 인스턴스 페이지를 사용하여 TomCustom 계층에 인스턴스를 추가하고 시작할 수 있습니다. AWS OpsWorks Stacks는 설치 레시피가 완료된 후 새 인스턴스에서 배포 레시피를 자동으로 실행하므로 인스턴스를 시작하면 Simple도 배포됩니다. JSP

  8. TomCustom 인스턴스가 온라인 상태이면 인스턴스 페이지에서 인스턴스 이름을 클릭하여 세부 정보를 확인합니다. 퍼블릭 IP 주소를 복사합니다. 그런 다음 다음과 URL 같이 a를 생성하십시오. http://publicIP/tc/appname.jsp. 예를 들어, 다음과 같이 보일 URL 것입니다http://50.218.191.172/tc/simplejsp.jsp.

    참고

    Tomcat에 요청을 URL 전달하는 아파치는 기본 속성인 로 설정되어 있습니다. ['tomcat']['apache_tomcat_bind_path'] /tc/ 로 확인되는 특수 ROOT 값인 단순 JSP 문서 루트가 설정됩니다. / URL따라서 “... /tc/simplejsp.jsp”.

  9. 이전 단계의 URL 내용을 브라우저에 붙여넣습니다. 다음과 같은 모양이어야 합니다.

    Databases found: information_schema simplejsp test
    참고

    스택에 My SQL 인스턴스가 있는 경우 AWS OpsWorks Stacks는 앱의 약식 이름을 사용하여 각 앱에 대해 데이터베이스를 자동으로 생성합니다.