рдкрд░рд┐рдЪрдп
рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ рдореИрдВ рдпрд╣ рд╕рдордЭрд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реВрдВрдЧрд╛ рдХрд┐ рдорд╛рдирд╡ рдЬрд╛рддрд┐ рдХреЗ рд▓рд╛рдн рдХреЗ рд▓рд┐рдП рджреЛ рд▓реЛрдХрдкреНрд░рд┐рдп рдХреНрд▓рд╛рдЙрдб рд╕реЗрд╡рд╛рдУрдВ рдХреЛ рдПрдХ рд╕рд╛рде рдХреИрд╕реЗ рдмрдирд╛рдпрд╛ рдЬрд╛рдПред рдирд┐рд╕реНрд╕рдВрджреЗрд╣, рд╡рд╣ рдЙрдЬреНрдЬреНрд╡рд▓ рджрд┐рди рдЖрдПрдЧрд╛ рдЬрдм рдЗрд▓рд╛рд╕реНрдЯрд┐рдХ рдмреАрдирд╕реНрдЯреЙрдХ рдПрдХрджрдо рд╕рд╣реА рд╣реЛрдЧрд╛ рдФрд░ рдЗрд╕ рд▓реЗрдЦ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред
CloudBees рдХреА рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдЬреЛ рдореБрдЭреЗ Elastic Beanstalk Free Tier рдореЗрдВ рдпрд╛рдж рдЖрддреА рд╣реИ
- MySQL DB
- рдЬреЗрдирдХреАрдВрд╕
- рд╕рд╡ рдЧрд┐рдд
- CloudBees рдХреЗ рд▓рд┐рдП рддреИрдирд╛рдд рдХрд░реЗрдВ
рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдЬреЛ рдЗрд▓рд╛рд╕реНрдЯрд┐рдХ рдмреАрдирд╕реНрдЯреЙрдХ рдкреНрд░рджрд╛рди рдХрд░рддреА рд╣реИ рдЬреЛ рдореБрдЭреЗ CloudBees рдореЗрдВ рдХрдореА рд╣реИ
- "100%" рдЕрдкрдЯрд╛рдЗрдо
- рдЧрддрд┐
- рдирд┐рдЧрд░рд╛рдиреА, тАЛтАЛрдШрдЯрдирд╛рдПрдБ рдЖрджрд┐ред
рдирд┐рд╕реНрд╕рдВрджреЗрд╣, рдЗрд▓рд╛рд╕реНрдЯрд┐рдХ рдмреАрдирд╕реНрдЯреЙрдХ рдПрдХ рдЕрдзрд┐рдХ рд╢рдХреНрддрд┐рд╢рд╛рд▓реА рдФрд░ рдЖрд╢рд╛рдЬрдирдХ рд╕реЗрд╡рд╛ рд╣реИ рдЬреЛ рднрд╡рд┐рд╖реНрдп рдореЗрдВ CloudBees рдХреЛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЕрд╡рд╢реЛрд╖рд┐рдд рдХрд░реЗрдЧреА, рд▓реЗрдХрд┐рди рдЕрдм рд╣рдо рдЗрд╕реЗ рдЕрдкрдиреЗ рд▓рд┐рдП рдмреЗрд╣рддрд░ рдмрдирд╛рдПрдВрдЧреЗред
рдЪрд░рдг 1: рд▓реЛрдЪрджрд╛рд░ рдмреАрдирд╕реНрдЯреЙрдХ рдкрдВрдЬреАрдХреГрдд рдХрд░реЗрдВ (рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдкрд╣рд▓реЗ рд╕реЗ рд╣реИ рддреЛ рдЫреЛрдбрд╝реЗрдВ)
рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, рдореИрдВрдиреЗ рдпреВрдПрд╕ рдИрд╕реНрдЯ (рд╡рд░реНрдЬреАрдирд┐рдпрд╛) рд╕рд░реНрд╡рд░реЛрдВ рдкрд░ рдПрдХ рдкрд░реАрдХреНрд╖рдг рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдмрдирд╛рдпрд╛, рдЬреЛ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ, рдбреЗрдЯрд╛рдмреЗрд╕ рд╕реЗ рдХрдиреЗрдХреНрд╢рди рдХреА рдЧрддрд┐ рдФрд░ рдЬреЗрдирдХрд┐рдВрд╕ рд╕реЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреА рддреИрдирд╛рддреА рдХреЛ рдХрд╛рдлреА рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░рддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдЖрдк рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ, рдЕрдиреНрдп рдХреНрд╖реЗрддреНрд░реЛрдВ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
1.1 рдПрдХ рдирдпрд╛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдмрдирд╛рдПрдВ
1.2 рдкрд░рд┐рдгрд╛рдо рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ
1.3 рдЗрд▓рд╛рд╕реНрдЯрд┐рдХ рдмреАрдирд╕реНрдЯреЙрдХ рдПрдкреАрдЖрдИ рдХреЗ рд▓рд┐рдП рдПрдХ рдирдпрд╛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдмрдирд╛рдирд╛
1.4 рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдирд╛ "AWS рдЗрд▓рд╛рд╕реНрдЯрд┐рдХ рдмреАрдирд╕реНрдЯреЙрдХ рдлреБрд▓ рдПрдХреНрд╕реЗрд╕"
1.5 W3 рд╕реНрдЯреЛрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрдирд╛рдИ рдЧрдИ S3 рдмрд╛рд▓реНрдЯреА рдХреА рдЬрд╛рдБрдЪ рдХрд░реЗрдВ
1.6 рдЬрд╛рдБрдЪ рдХрд░ рд░рд╣рд╛ рд╣реИ рдХрд┐ рдкрд░реАрдХреНрд╖рдг рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдЪрд▓ рд░рд╣рд╛ рд╣реИ
рдЪрд░рдг 2: рдкрдВрдЬреАрдХрд░рдг CloudBees (рдЫреЛрдбрд╝реЗрдВ рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдкрд╣рд▓реЗ рд╕реЗ рд╣реИ)
2.1 рдПрдХ рдирдпрд╛ MySQL DB рдмрдирд╛рдПрдБ
рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдХреНрд╡реЗрд░реА рдирд┐рд╖реНрдкрд╛рджрди рдХреА рдЧрддрд┐ рдХреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдлрд╝реАрд▓реНрдб рдЖрдИрдбреА, рдлреВ, рдмрд╛рд░ рдХреЗ рд╕рд╛рде рдЯреЗрд╕реНрдЯрдбреЗрдЯрд╛ рддрд╛рд▓рд┐рдХрд╛ рднреА рдмрдирд╛рдИ рдЧрдИ рдереАред
2.2 рдПрдХ рдЬреАрдЖрдИрдЯреА рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдмрдирд╛рдПрдВ (рд╕реНрд░реЛрдд рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЗрд╡рд▓ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ)
2.3 рдХреЛ рдЬрд╛рд░реА рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП ... рдЪрд░рдг рджреЗрдЦреЗрдВ: 4рдЪрд░рдг 3: рдПрдХ рдкрд░реАрдХреНрд╖рдг рд╡реЗрдм рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдмрдирд╛рдПрдВ
pom.xml
<?xml version="1.0"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.elasticbeanstalk.sampleapp</groupId> <artifactId>elasticbeanstalk-sampleapp</artifactId> <version>1.0-SNAPSHOT</version> <packaging>war</packaging> <name>elasticbeanstalk-sampleapp</name> <url>http:
рдЕрд╕рд╛рдорд╛рдиреНрдп рдореЗрдВ рд╕реЗ, рдХреЗрд╡рд▓ рдмреАрдирд╕реНрдЯреЙрдХ-рдорд╛рд╡реЗрди-рдкреНрд▓рдЧрдЗрди рдХрд╛ рдЙрдкрдпреЛрдЧ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдЗрд▓рд╛рд╕реНрдЯрд┐рдХ рдмреАрдирд╕реНрдЯреЙрдХ рдкрд░ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
ApplicationName - рдкреИрд░рд╛рдЧреНрд░рд╛рдл 1.2 рд╕реЗ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдорд╛рди рдХрд╛ рд╕рдВрдХреЗрдд рджрд┐рдпрд╛
s3Bucket - рдкреИрд░рд╛ 1.5 рд╕реЗ S3 рдмрд╛рд▓реНрдЯреА рдирд╛рдо
s3Key - S3 рдореЗрдВ рдмрдЪрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдпреБрджреНрдз рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдирд╛рдо, $ {maven.build.timestamp} рдХрд╛ рдЙрдкрдпреЛрдЧ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рдирд╛рдо рдХреЗ рд░реВрдк рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред
environmentName - рдкреИрд░рд╛рдЧреНрд░рд╛рдл 1.2 рд╕реЗ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдорд╛рди рдХрд╛ рд╕рдВрдХреЗрдд рджрд┐рдпрд╛
context.xml
<Context> <Resource name="jdbc/beanstalk" auth="Container" type="javax.sql.DataSource" factory="org.apache.tomcat.dbcp.dbcp.BasicDataSourceFactory" username="beanstalk" password="" driverClassName="com.mysql.jdbc.Driver" url="jdbc:mysql://ec2-50-19-213-178.compute-1.amazonaws.com:3306/beanstalk?autoReconnect=true&characterEncoding=utf8" validationQuery="SELECT 1" maxWait="1000" removeAbandoned="true" maxActive="30" maxIdle="10" removeAbandonedTimeout="60" logAbandoned="true"/> </Context>
рдкреИрд░рд╛ 2.1 рдореЗрдВ рдмрдирд╛рдП рдЧрдП рдбреЗрдЯрд╛рдмреЗрд╕ рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдорд╛рдкрджрдВрдбреЛрдВ рдХрд╛ рд╡рд░реНрдгрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред
web.xml
<web-app xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd" version="2.4"> <display-name>Archetype Created Web Application</display-name> <welcome-file-list> <welcome-file>index.jsp</welcome-file> </welcome-file-list> <resource-ref> <res-ref-name>jdbc/beanstalk</res-ref-name> <res-type>javax.sql.DataSource</res-type> <res-auth>Container</res-auth> </resource-ref> </web-app>
index.jsp
<%@ page session="false" %> <%@ page contentType="text/html;charset=UTF-8" language="java" %> <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> <%@ taglib prefix="sql" uri="http://java.sun.com/jsp/jstl/sql" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> <title>Custom Welcome Page</title> </head> <body> <p>Your <b>custom</b> AWS Elastic Beanstalk Application is now running on your own dedicated environment in the AWS Cloud</p> <br/><br/><b>testdata:</b><br/> <jsp:useBean id="now1" class="java.util.Date" /> <sql:query dataSource="jdbc/beanstalk" var="rst" scope="request"> select id, foo, bar from testdata </sql:query> <c:forEach items="${rst.rows}" var="row"> ${row.id} ${row.foo} ${row.bar}<br/> </c:forEach> <jsp:useBean id="now2" class="java.util.Date" /> <br/><br/>Time: ${now2.time - now1.time} ms. </body> </html>
рдФрд░ рдкрд░реАрдХреНрд╖рдг рд╕реВрдЪрдХрд╛рдВрдХ рдкреГрд╖реНрда, рдЬрд┐рд╕рдореЗрдВ рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЗ рд▓рд┐рдП рд╕рдмрд╕реЗ рд╕рд░рд▓ рдХреНрд╡реЗрд░реА рдирд┐рд╖реНрдкрд╛рджрд┐рдд рд╣реЛрддреА рд╣реИ рдФрд░ рд░рдирдЯрд╛рдЗрдо рдкреНрд░рджрд░реНрд╢рд┐рдд рд╣реЛрддрд╛ рд╣реИред
рдкреВрд░рд╛ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░реЗрдВ: git clone git: //git.cloudbees.com/wickiup/beanstalk.git
рдЪрд░рдг 4: рдХреНрд▓рд╛рдЙрдбрдмреАрд╕ рдкрд░ рд╡рд╛рдкрд╕ - рдЬреЗрдиреНрдХрд┐рдиреНрд╕ рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдирд╛
4.1 рдПрдХ рдирдпрд╛ рдХрд╛рд░реНрдп рдмрдирд╛рдирд╛
4.2 (рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреНрд▓рд╛рдЙрдб рд╕реЗ рдЬреАрдЖрдИрдЯреА рдЙрджрд╛рд╣рд░рдг рдореЗрдВ) рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЛ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рд╕ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рд╕реЗ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░реЗрдВред
4.3 рдЗрд▓рд╛рд╕реНрдЯрд┐рдХ рдмреАрдирд╕реНрдЯреЙрдХ рдкрд░ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рддреИрдирд╛рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреЛрд╕реНрдЯ рд╕реНрдЯреЗрдк рдЬреЛрдбрд╝реЗрдВ
aws.accessKey рдФрд░ aws.secretKey рд╡рд╣ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░реЗрдВ рдЬреЛ рдЖрдкрдХреЛ рдЕрдиреБрдЪреНрдЫреЗрдж 1.3 рдХрд╛ рдкреНрд░рджрд░реНрд╢рди рдХрд░рддреЗ рд╕рдордп рдкреНрд░рд╛рдкреНрдд рд╣реБрдЖ рдерд╛
рдпрд╣ рдЪрд░рдг W3 рдХреЛ S3 рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдореЗрдВ рдЬреЛрдбрд╝ рджреЗрдЧрд╛, рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХрд╛ рдПрдХ рдирдпрд╛ рд╕рдВрд╕реНрдХрд░рдг рдмрдирд╛рдПрдЧрд╛ рдФрд░ рдЙрджрд╛рд╣рд░рдг рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░реЗрдЧрд╛ред
4.4 рд╣рдо рдкрд░рд┐рдпреЛрдЬрдирд╛ рдПрдХрддреНрд░ рдХрд░рддреЗ рд╣реИрдВ - рд╣рдо рд▓реЙрдЧ рдореЗрдВ рджреЗрдЦрддреЗ рд╣реИрдВ [INFO] Target Path: s3:
рдЪрд░рдг 5: рдЬрд╛рдВрдЪреЗрдВ рдХрд┐ рд╕рдм рдХреБрдЫ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИ
5.1 рд╣рдо рдЗрд▓рд╛рд╕реНрдЯрд┐рдХ рдмреАрдирд╕реНрдЯреЙрдХ рдХрдВрд╕реЛрд▓ рдореЗрдВ рджреЗрдЦрддреЗ рд╣реИрдВ
рдЬреИрд╕рд╛ рдХрд┐ рд╣рдо рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХрд╛ рдПрдХ рдирдпрд╛ рд╕рдВрд╕реНрдХрд░рдг (20120724145549) рджрд┐рдЦрд╛рдИ рджрд┐рдпрд╛ рд╣реИ рдЬреЛ рдЕрдм рд╕рдХреНрд░рд┐рдп рд╣реИред
5.2 рд╣рдо S3 рдХрдВрд╕реЛрд▓ рдореЗрдВ рджреЗрдЦрддреЗ рд╣реИрдВ
WAR рдлрд╝рд╛рдЗрд▓ (20120724145549-рд▓реЛрдЪрджрд╛рд░рдмреАрдирд╕реНрдЯреЙрдХ-sampleapp.war) рдЬрдЧрд╣ рдореЗрдВ рдЖрд╡реЗрджрди рдХреЗ рд╡рд░реНрддрдорд╛рди рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд╕рд╛рдеред
5.3 рд╡реЗрдм рдЗрдВрдЯрд░рдлреЗрд╕ рдХреА рдЬрд╛рдБрдЪ рдХрд░рдирд╛
рдирд┐рд╖реНрдкрд╛рджрди рд╕рдордп ~ 2 рдПрдордПрд╕, рдЬреЛ рдирд┐: рд╢реБрд▓реНрдХ рдЯрд┐рдпрд░ рдХреЗ рд▓рд┐рдП рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ред
рдкреНрд░рд▓реЗрдЦрди
AWS рдлреНрд░реА рдЯрд┐рдпрд░рдмреАрдирд╕реНрдЯреЙрдХ-maven-рдкреНрд▓рдЧрдЗрди