일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- Adapter 패턴
- play 강좌
- Hyperledger fabric gossip protocol
- 파이썬 강좌
- 하이브리드앱
- play2 강좌
- 파이썬 데이터분석
- 안드로이드 웹뷰
- Actor
- 하이퍼레저 패브릭
- 파이썬 동시성
- 주키퍼
- 파이썬 머신러닝
- 스칼라 동시성
- CORDA
- hyperledger fabric
- 플레이프레임워크
- Akka
- akka 강좌
- Play2 로 웹 개발
- 스위프트
- 이더리움
- Play2
- 파이썬
- 스칼라
- 그라파나
- 스칼라 강좌
- 엔터프라이즈 블록체인
- 블록체인
- Golang
- Today
- Total
HAMA 블로그
Play2 를 AWS Elastic Beanstalk 에서 사용해보자. 본문
Play2 를 AWS Elastic Beanstalk 에서 사용해보자.
[하마] 이승현 (wowlsh93@gmail.com) 2016. 7. 31. 14:35* 역주 : 완벽한 전체 내용이 포함되어 있지 않습니다.
저도 잘 아는게 아니라서 ㅜㅜ 잘 알게되면 추가 / 수정 하겠습니다.
Deploy Playframework (Play!) to AWS Elastic Beanstalk with Jenkins (번역)
플레이프레임워크는 가볍고 높은 성능을 가진 웹어플리케이션 플랫폼으로써 상태를 갖지 않는 웹 티어에서 완벽하게 작동한다. AWS Elastic Beanstalk 에서도 환상적으로 작동되는데 이 포스트는 플레이프레임워크를 AWS Beanstalk 에서 작동시키기 위해 젠킨스를 이용하는 방법에 대해 말한다.
플레이프레임워크 버전 2.3+ 과 2.3,2.4,2.5에서 테스팅 되었다.
Step 1: 플레이프레임워크 프로젝트를 준비하라
새로운 "Java SE" container types 타입을 이용하여 Elastic Beanstalk 상에 디플로이 하기 위해 우리는 우리의 플레이 프레임워크에 약간의 변경을 할 것이다. 먼저 dist 라는 이름의 디렉토리를 최상위에 만들어라. .ebextension 과 Procfile를 통해서 ElasticBeanstalk 에게 프로젝트를 런치하는 방법에 대해 알려줄것이다.
https://github.com/Enalmada/play-beanstalk (만들어져있는 프로젝트)
Procfile
파일을 만들어서 넣고./bin/ajmoss
의 ajmoss 자리에 build.sbt 에 정의되어있는 네 프로젝트 이름을 넣고-Dconfig.file=conf/live.application.conf
를 추가하라 아래처럼 ~
web: ./bin/ajmoss -Dhttp.port=5000 -Dconfig.file=conf/live.application.conf
좋다. 이제 ElasticBeanstalk 에 Deploy 하기위한 준비는 끝났다. Java SE containers 는 nginx 를 reverse proxy 역할로 사용하는데 기본 프록시는 5000번 포트를 사용한다. 만약 커스텀 설정이 필요하면 가능하고 다음을 살펴보라 customize the reverse proxy using these instructions.
Step 2: 젠킨스 만들고 설정하기
만약 AWS 안에 젠킨스 인스턴스가 없다면 이것을 참고해서 설치하자. install jenkins as outlined in this article. Oracle JDK 8 젠킨스는 이것도 필요하다. OpenJDK 버전은 지원하지 않는다.
다음으로 Playframework 프로젝트를 빌드하기위해 아래 처럼 Typesafe Activator 를 인스톨하자:
sudo cd /opt/
sudo wget https://downloads.typesafe.com/typesafe-activator/1.3.7/typesafe-activator-1.3.7-minimal.zip
sudo unzip typesafe-activator-1.3.7-minimal.zip
sudo ln -s activator-1.3.7-minimal activator
sudo touch /etc/profile.d/activator.sh
sudo chmod +x /etc/profile.d/activator.sh
sudo echo 'export PATH=$PATH:/opt/activator/' >> /etc/profile.d/activator.sh
sudo source /etc/profile.d/activator.sh
sudo chown jenkins /opt/activator/activator
sudo chgrp jenkins /opt/activator/activator
이제 activator 는 인스톨되었고 AWS Elastic Beanstalk Deployment Plugin. 를 인스톨 한다.
이제 젠킨스 job 을 만들 준비가 되었다. 당신의 리포지토리에 접속하기위한 소스코드 매니지먼트를 셋업한다. 나는 github + Git Plugin 을 체크아웃하기위해 사용한다.
다음으로 빌드 스텝을 만드는데 프로젝트 분산을 위해 .zip 파일로 프로젝트를 만든다.
"Execute Shell" bash 커맨드로 아래와 같이 한다 :
/opt/activator/activator clean dist
mv target/universal/*.zip target/elasticbeanstalk.zip
이제 우린 AWS Elastic Benastalk 를 위한 추가 빌드 스텝을 추가 할 것이다. 작은 전처리 작업이 필요하다
Step 3: AWS 권한 을 만들라
AWS 상에 젠킨스를 접근하고 Elastic Beanstalk 리소스를 제어할 수 있는 key/secret key 페어가 필요하다. S3 버킷을 프로비전해야하고 버킷에 우리의 빌드/리소스를 업로드할 것이다. 가장 간단한 방법은 S3 Bucket 에 직접적으로 권한을 주는것이다 다음 예와 같이 :
{
"Version": "2008-10-17",
"Id": "Policy1400141113811",
"Statement": [
{
"Sid": "Stmt1400141111261",
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::603736890550:user/jenkins"
},
"Action": [
"s3:DeleteObject",
"s3:GetObject",
"s3:PutObjectAcl",
"s3:PutObject"
],
"Resource": "arn:aws:s3:::ajmoss-artifacts/*"
}
]
}
노트 : 이 예제는 나의 S3 bucket 이다 이름은 'ajmoss-artifacts'.
Step 4: AWS Elastic Beanstalk 빌드 스텝을 설정한다.
Jenkins 를 설정하며 "AWS Elastic Beanstalk" 을 위한 빌드 스텝으로 각 섹션을 설정할 것이다.
"AWS Credentials and Region" 에 access key / secret key 를 넣자.
"Application and Environment" 에 EB 리소스의 이름을 넣자.
"Packaging" 은 root object 를 설정한다 다음과 같이 target/elasticbeanstalk.zip
"Uploading" 업로드 하기위한 S3 bucket 를 설정하며 "S3 Key Prefix" 는 젠킨스를 위한 디렉토리이다.
"Version and Deployment" 각 빌드의 이름을 설정한다.
나는 ${GIT_COMMIT}-${BUILD_TAG}
를 사용하는데 git commit hash plus the build tag from Jenkins 를 사용한다
Step 5: Kick Ass
이제 Elastic Beanstalk applications 을 손쉽게 할 수 있게 됬다.
'PlayFramework2' 카테고리의 다른 글
play2 에서 Anorm 으로 PostgreSQL 사용하기 (0) | 2016.08.24 |
---|---|
Deploy Play 2.4 (Scala) on Amazon EC2 [Simple] (0) | 2016.08.11 |
Play2 시작하기 - IntelliJ (0) | 2016.08.03 |
Play2 설치하기 (with Activator, Scala, Windows, Eclipse) (0) | 2016.08.02 |
Play Framework vs Spring MVC (0) | 2016.07.28 |