KEMBAR78
Daftar
Login
Single Command Deployのための gradle-aws-plugin講座 | PDF
Download free for 30 days
Sign in
Upload
Language (EN)
Support
Business
Mobile
Social Media
Marketing
Technology
Art & Photos
Career
Design
Education
Presentations & Public Speaking
Government & Nonprofit
Healthcare
Internet
Law
Leadership & Management
Automotive
Engineering
Software
Recruiting & HR
Retail
Sales
Services
Science
Small Business & Entrepreneurship
Food
Environment
Economy & Finance
Data & Analytics
Investor Relations
Sports
Spiritual
News & Politics
Travel
Self Improvement
Real Estate
Entertainment & Humor
Health & Medicine
Devices & Hardware
Lifestyle
Change Language
Language
English
Español
Português
Français
Deutsche
Cancel
Save
Submit search
EN
Uploaded by
都元ダイスケ Miyamoto
PDF, PPTX
5,596 views
Single Command Deployのための gradle-aws-plugin講座
2015-09-26 Seasar Conference 2015
Technology
◦
Read more
6
Save
Share
Embed
Download
Download as PDF, PPTX
1
/ 64
2
/ 64
3
/ 64
4
/ 64
5
/ 64
6
/ 64
7
/ 64
8
/ 64
9
/ 64
10
/ 64
11
/ 64
12
/ 64
13
/ 64
14
/ 64
15
/ 64
16
/ 64
17
/ 64
18
/ 64
19
/ 64
20
/ 64
21
/ 64
22
/ 64
23
/ 64
24
/ 64
25
/ 64
26
/ 64
27
/ 64
28
/ 64
29
/ 64
30
/ 64
31
/ 64
32
/ 64
33
/ 64
34
/ 64
35
/ 64
36
/ 64
37
/ 64
38
/ 64
39
/ 64
40
/ 64
41
/ 64
42
/ 64
43
/ 64
44
/ 64
45
/ 64
46
/ 64
47
/ 64
48
/ 64
49
/ 64
50
/ 64
51
/ 64
52
/ 64
53
/ 64
54
/ 64
55
/ 64
56
/ 64
57
/ 64
58
/ 64
59
/ 64
60
/ 64
61
/ 64
62
/ 64
63
/ 64
64
/ 64
More Related Content
PDF
サーバーレスの今とこれから
by
真吾 吉田
PDF
AWS SAMで始めるサーバーレスアプリケーション開発
by
真吾 吉田
PDF
Serverless Ninja Warriors [panel]
by
真吾 吉田
PDF
サーバーレスアーキテクチャのすすめ(公開版)
by
Keisuke Kadoyama
PDF
JAWS DAYS 2017 LT 古きを捨て新しきに近づける
by
Tetsuya Mase
PDF
AWSにおけるバッチ処理の ベストプラクティス - Developers.IO Meetup 05
by
都元ダイスケ Miyamoto
PDF
Scalaプロダクトのビルド高速化
by
kuro kuro
PDF
サーバレスアーキテクチャを実戦投入するにあたって知るべきこと
by
暁 三宅
サーバーレスの今とこれから
by
真吾 吉田
AWS SAMで始めるサーバーレスアプリケーション開発
by
真吾 吉田
Serverless Ninja Warriors [panel]
by
真吾 吉田
サーバーレスアーキテクチャのすすめ(公開版)
by
Keisuke Kadoyama
JAWS DAYS 2017 LT 古きを捨て新しきに近づける
by
Tetsuya Mase
AWSにおけるバッチ処理の ベストプラクティス - Developers.IO Meetup 05
by
都元ダイスケ Miyamoto
Scalaプロダクトのビルド高速化
by
kuro kuro
サーバレスアーキテクチャを実戦投入するにあたって知るべきこと
by
暁 三宅
What's hot
PDF
AWS Lambdaで作るクローラー/スクレイピング
by
Takuro Sasaki
PDF
Alibaba Cloud Serverless
by
真吾 吉田
PPTX
jawsdays 2017 新訳-とある設計士の雲設計定石目録_3
by
a kyane
PPTX
AWS Step FunctionとLambdaでディープラーニングの訓練を全自動化する
by
mizugokoro
PPTX
Serverless Framework 使ってる話(node.js)
by
Naoto Teruya
PPTX
実践サーバレスアーキテクチャ
by
太郎 test
PDF
Introduction to AWS X-Ray
by
Keisuke Nishitani
PDF
Application Lifecycle Management in a Serverless World
by
Keisuke Nishitani
PDF
サーバーレス・アーキテクチャ概要
by
真吾 吉田
PDF
AWSでアプリ開発するなら 知っておくべこと
by
Keisuke Nishitani
PDF
Serverless AWS構成でセキュアなSPAを目指す
by
Masayuki Kato
PDF
Serverless Anti-Patterns
by
Keisuke Nishitani
PPTX
20170311 jawsdays 新訳 とあるアーキテクトのクラウドデザインパターン目録
by
Naomi Yamasaki
PDF
What's new with Serverless
by
Keisuke Nishitani
PDF
MySQL→Aurora移行セミナー
by
真吾 吉田
PDF
サーバーレスのアーキテクチャパターンとそれぞれの実装・テストの勘所
by
真吾 吉田
PDF
Leap MotionとLambdaで「第九」を鳴らしてみる
by
Tsuyoshi Seino
PPTX
Developers.io meetup 01 2013/12/10
by
Tomonari Fukuda
PPTX
クラウドサービス活用事例
by
KLab Inc. / Tech
PDF
AWS クックパッドの運用事例
by
Satoshi Takada
AWS Lambdaで作るクローラー/スクレイピング
by
Takuro Sasaki
Alibaba Cloud Serverless
by
真吾 吉田
jawsdays 2017 新訳-とある設計士の雲設計定石目録_3
by
a kyane
AWS Step FunctionとLambdaでディープラーニングの訓練を全自動化する
by
mizugokoro
Serverless Framework 使ってる話(node.js)
by
Naoto Teruya
実践サーバレスアーキテクチャ
by
太郎 test
Introduction to AWS X-Ray
by
Keisuke Nishitani
Application Lifecycle Management in a Serverless World
by
Keisuke Nishitani
サーバーレス・アーキテクチャ概要
by
真吾 吉田
AWSでアプリ開発するなら 知っておくべこと
by
Keisuke Nishitani
Serverless AWS構成でセキュアなSPAを目指す
by
Masayuki Kato
Serverless Anti-Patterns
by
Keisuke Nishitani
20170311 jawsdays 新訳 とあるアーキテクトのクラウドデザインパターン目録
by
Naomi Yamasaki
What's new with Serverless
by
Keisuke Nishitani
MySQL→Aurora移行セミナー
by
真吾 吉田
サーバーレスのアーキテクチャパターンとそれぞれの実装・テストの勘所
by
真吾 吉田
Leap MotionとLambdaで「第九」を鳴らしてみる
by
Tsuyoshi Seino
Developers.io meetup 01 2013/12/10
by
Tomonari Fukuda
クラウドサービス活用事例
by
KLab Inc. / Tech
AWS クックパッドの運用事例
by
Satoshi Takada
Viewers also liked
PDF
HeapStats @ Seasar Conference 2015 LT
by
Yuji Kubota
PDF
いるけどないからつくってみたよ高速モバイルプッシュ配信くん #cmdevio
by
fd0
PDF
Seasar Conference 2015 LT Mayaa~以下略
by
Susumu Ishigami
PPTX
Public Relations and the "S" Curve: adoption, innovation and moving forward
by
Richard Binhammer
PDF
Día mundial de la aistencia humanitaria.
by
José María
PPTX
Make employees brand ambassador
by
The Cure for social sharing
PPTX
How effective is the combination of your main question 2 evaluation
by
Grayce
PPTX
Digital Marketing Trends Disrupting Consumer Behavior v. 19
by
Kyle Lacy
PDF
Q214 earnings presentation
by
TextronCorp
PDF
Getting Started Blogging
by
Tonia.Johnson
PPT
Writing a good book review
by
Kamal Vora
PPT
2011 Zlate Stranky Mobile Roadshow v6
by
Pavel Kotyza
DOC
Astikh Etaireia
by
ATHANASIOS KAVVADAS
PDF
ビアマジ!21 暇人マッチングサービス
by
stucon
PPTX
Plotting your path to success in fundraising
by
TPP Recruitment
PPTX
9 de febrero 2016 powerpoint
by
Lidia Jazmin Rubio Olivares
PPTX
2016 TSAE Tech Talks - Project Management 101
by
Trevor S. Mitchell, CAE
PPTX
Presentation for assemblies...Sara Khan
by
Sara
PPTX
Delivering a Remarkable Customer Experience in 2016
by
Table19
HeapStats @ Seasar Conference 2015 LT
by
Yuji Kubota
いるけどないからつくってみたよ高速モバイルプッシュ配信くん #cmdevio
by
fd0
Seasar Conference 2015 LT Mayaa~以下略
by
Susumu Ishigami
Public Relations and the "S" Curve: adoption, innovation and moving forward
by
Richard Binhammer
Día mundial de la aistencia humanitaria.
by
José María
Make employees brand ambassador
by
The Cure for social sharing
How effective is the combination of your main question 2 evaluation
by
Grayce
Digital Marketing Trends Disrupting Consumer Behavior v. 19
by
Kyle Lacy
Q214 earnings presentation
by
TextronCorp
Getting Started Blogging
by
Tonia.Johnson
Writing a good book review
by
Kamal Vora
2011 Zlate Stranky Mobile Roadshow v6
by
Pavel Kotyza
Astikh Etaireia
by
ATHANASIOS KAVVADAS
ビアマジ!21 暇人マッチングサービス
by
stucon
Plotting your path to success in fundraising
by
TPP Recruitment
9 de febrero 2016 powerpoint
by
Lidia Jazmin Rubio Olivares
2016 TSAE Tech Talks - Project Management 101
by
Trevor S. Mitchell, CAE
Presentation for assemblies...Sara Khan
by
Sara
Delivering a Remarkable Customer Experience in 2016
by
Table19
Similar to Single Command Deployのための gradle-aws-plugin講座
PDF
Spring Boot の Web アプリケーションを Docker に載せて AWS ECS で動かしている話
by
JustSystems Corporation
PDF
Docker for Windows & Web Apps for Containers 実践活用技法
by
Microsoft Corporation
PDF
アプリ屋もDockerをドカドカ使おう ~ Docker入門
by
Hori Tasuku
PDF
オトナのDocker入門
by
Tsukasa Kato
PDF
ビルドサーバで使うDocker
by
Masashi Shinbara
PDF
Dockerを使ったローカルでの開発から本番環境へのデプロイまで
by
Ryo Nakamaru
PDF
Elastic beanstalk docker_support
by
Amazon Web Services Japan
PDF
試して学べるクラウド技術! OpenShift
by
Etsuji Nakai
PDF
GMO プライベート DMP 開発で 取り組んできた DevOps と今後の展望
by
Tetsuo Yamabe
PDF
20120416 aws meister-reloaded-aws-elasticbeanstalk-public
by
Amazon Web Services Japan
PDF
AWSマイスターシリーズReloaded(AWS Beanstalk)
by
Akio Katayama
PDF
インフラエンジニアがk8sでアプリを作って見えた今後のインフラ
by
susumu tanaka
PDF
Running Java Apps with Amazon EC2, AWS Elastic Beanstalk or Serverless
by
Keisuke Nishitani
PDF
コンテナ時代にインフラエンジニアは何をするのか
by
gree_tech
PDF
Windows 開発者のための Dev&Ops on AWS
by
Amazon Web Services Japan
PDF
Dockerイメージ構築 実践テクニック
by
Emma Haruka Iwao
PPTX
PHP on Cloud
by
Akio Katayama
PPTX
Docker & Kubernetes基礎
by
Daisuke Hiraoka
PDF
Spring Boot on Kubernetes : Yahoo!ズバトク事例 #jjug_ccc
by
Yahoo!デベロッパーネットワーク
PDF
Al mininum 47redmine-2nd
by
mikoto20000
Spring Boot の Web アプリケーションを Docker に載せて AWS ECS で動かしている話
by
JustSystems Corporation
Docker for Windows & Web Apps for Containers 実践活用技法
by
Microsoft Corporation
アプリ屋もDockerをドカドカ使おう ~ Docker入門
by
Hori Tasuku
オトナのDocker入門
by
Tsukasa Kato
ビルドサーバで使うDocker
by
Masashi Shinbara
Dockerを使ったローカルでの開発から本番環境へのデプロイまで
by
Ryo Nakamaru
Elastic beanstalk docker_support
by
Amazon Web Services Japan
試して学べるクラウド技術! OpenShift
by
Etsuji Nakai
GMO プライベート DMP 開発で 取り組んできた DevOps と今後の展望
by
Tetsuo Yamabe
20120416 aws meister-reloaded-aws-elasticbeanstalk-public
by
Amazon Web Services Japan
AWSマイスターシリーズReloaded(AWS Beanstalk)
by
Akio Katayama
インフラエンジニアがk8sでアプリを作って見えた今後のインフラ
by
susumu tanaka
Running Java Apps with Amazon EC2, AWS Elastic Beanstalk or Serverless
by
Keisuke Nishitani
コンテナ時代にインフラエンジニアは何をするのか
by
gree_tech
Windows 開発者のための Dev&Ops on AWS
by
Amazon Web Services Japan
Dockerイメージ構築 実践テクニック
by
Emma Haruka Iwao
PHP on Cloud
by
Akio Katayama
Docker & Kubernetes基礎
by
Daisuke Hiraoka
Spring Boot on Kubernetes : Yahoo!ズバトク事例 #jjug_ccc
by
Yahoo!デベロッパーネットワーク
Al mininum 47redmine-2nd
by
mikoto20000
More from 都元ダイスケ Miyamoto
PDF
認証の標準的な方法は分かった。では認可はどう管理するんだい? #cmdevio
by
都元ダイスケ Miyamoto
PDF
アプリケーション動作ログ、 ERRORで出すか? WARNで出すか? #cmdevio2019
by
都元ダイスケ Miyamoto
PDF
マイクロサービス時代の認証と認可 - AWS Dev Day Tokyo 2018 #AWSDevDay
by
都元ダイスケ Miyamoto
PDF
クラスメソッドにおける Web API エンジニアリングの基本的な考え方と標準定義 - Developers.IO 2018 (2018-10-05)
by
都元ダイスケ Miyamoto
PDF
AWSクラウドデータストレージ総論
by
都元ダイスケ Miyamoto
PDF
20170312 F.K様向け ライフパートナーM.M様のご提案
by
都元ダイスケ Miyamoto
PDF
Spring Day 2016 - Web API アクセス制御の最適解
by
都元ダイスケ Miyamoto
PDF
マイクロWebアプリケーション - Developers.IO 2016
by
都元ダイスケ Miyamoto
PDF
20150908 ”時間の流れ” という無限リストを扱うAWS Lambda
by
都元ダイスケ Miyamoto
PDF
体で覚えるSQS! DEVIO-MTUP11-TOKYO-007
by
都元ダイスケ Miyamoto
PDF
20140315 JAWS DAYS 2014 ACEに聞け! CloudFormation編
by
都元ダイスケ Miyamoto
PDF
20131210 CM re:Growth - Infrastructure as Code から Full Reproducible Infrastru...
by
都元ダイスケ Miyamoto
PDF
20130516 cm課外授業8-aws
by
都元ダイスケ Miyamoto
PDF
20121215 DevLOVE2012 Mahout on AWS
by
都元ダイスケ Miyamoto
PDF
20121206 VOYAGE LT - 名前重要って言うけどさ
by
都元ダイスケ Miyamoto
PDF
20120830 DBリファクタリング読書会第三回
by
都元ダイスケ Miyamoto
PDF
java-ja 第1回 チキチキ『( ゜ェ゜)・;'.、ゴフッ』 - Strategy
by
都元ダイスケ Miyamoto
PDF
DevLOVE Beautiful Development - 第一幕 陽の巻
by
都元ダイスケ Miyamoto
PDF
DevelopersSummit2011 【17-E-1】 DBも変化せよ - Jiemamy
by
都元ダイスケ Miyamoto
PDF
とべとべ電設部勉強会20100717 DB meets Jiemamy
by
都元ダイスケ Miyamoto
認証の標準的な方法は分かった。では認可はどう管理するんだい? #cmdevio
by
都元ダイスケ Miyamoto
アプリケーション動作ログ、 ERRORで出すか? WARNで出すか? #cmdevio2019
by
都元ダイスケ Miyamoto
マイクロサービス時代の認証と認可 - AWS Dev Day Tokyo 2018 #AWSDevDay
by
都元ダイスケ Miyamoto
クラスメソッドにおける Web API エンジニアリングの基本的な考え方と標準定義 - Developers.IO 2018 (2018-10-05)
by
都元ダイスケ Miyamoto
AWSクラウドデータストレージ総論
by
都元ダイスケ Miyamoto
20170312 F.K様向け ライフパートナーM.M様のご提案
by
都元ダイスケ Miyamoto
Spring Day 2016 - Web API アクセス制御の最適解
by
都元ダイスケ Miyamoto
マイクロWebアプリケーション - Developers.IO 2016
by
都元ダイスケ Miyamoto
20150908 ”時間の流れ” という無限リストを扱うAWS Lambda
by
都元ダイスケ Miyamoto
体で覚えるSQS! DEVIO-MTUP11-TOKYO-007
by
都元ダイスケ Miyamoto
20140315 JAWS DAYS 2014 ACEに聞け! CloudFormation編
by
都元ダイスケ Miyamoto
20131210 CM re:Growth - Infrastructure as Code から Full Reproducible Infrastru...
by
都元ダイスケ Miyamoto
20130516 cm課外授業8-aws
by
都元ダイスケ Miyamoto
20121215 DevLOVE2012 Mahout on AWS
by
都元ダイスケ Miyamoto
20121206 VOYAGE LT - 名前重要って言うけどさ
by
都元ダイスケ Miyamoto
20120830 DBリファクタリング読書会第三回
by
都元ダイスケ Miyamoto
java-ja 第1回 チキチキ『( ゜ェ゜)・;'.、ゴフッ』 - Strategy
by
都元ダイスケ Miyamoto
DevLOVE Beautiful Development - 第一幕 陽の巻
by
都元ダイスケ Miyamoto
DevelopersSummit2011 【17-E-1】 DBも変化せよ - Jiemamy
by
都元ダイスケ Miyamoto
とべとべ電設部勉強会20100717 DB meets Jiemamy
by
都元ダイスケ Miyamoto
Recently uploaded
PDF
FOSS4G Hokkaido - QFieldをランナーのために活用した - QField for runners
by
Raymond Lay
PDF
技育祭2025秋 サボろうとする生成AIの傾向と対策 登壇資料(フューチャー渋川)
by
Yoshiki Shibukawa
PPTX
How to buy a used computer and use it with Windows 11
by
Atomu Hidaka
PPTX
「Drupal SDCについて紹介」2025/10/17の勉強会で発表されたものです。
by
iPride Co., Ltd.
PPTX
FOSS4G Japan 2025 - QGISでスムーズに地図を比較 - QMapCompareプラグインの紹介
by
Raymond Lay
PDF
DX人材育成 サービスデザインで実現する「巻き込み力」の育て方 by Graat
by
Graat(グラーツ)
PDF
FOSS4G Japan 2024 ハザードマップゲームの作り方 Hazard Map Game QGIS Plugin
by
Raymond Lay
PDF
「似ているようで微妙に違う言葉」2025/10/17の勉強会で発表されたものです。
by
iPride Co., Ltd.
FOSS4G Hokkaido - QFieldをランナーのために活用した - QField for runners
by
Raymond Lay
技育祭2025秋 サボろうとする生成AIの傾向と対策 登壇資料(フューチャー渋川)
by
Yoshiki Shibukawa
How to buy a used computer and use it with Windows 11
by
Atomu Hidaka
「Drupal SDCについて紹介」2025/10/17の勉強会で発表されたものです。
by
iPride Co., Ltd.
FOSS4G Japan 2025 - QGISでスムーズに地図を比較 - QMapCompareプラグインの紹介
by
Raymond Lay
DX人材育成 サービスデザインで実現する「巻き込み力」の育て方 by Graat
by
Graat(グラーツ)
FOSS4G Japan 2024 ハザードマップゲームの作り方 Hazard Map Game QGIS Plugin
by
Raymond Lay
「似ているようで微妙に違う言葉」2025/10/17の勉強会で発表されたものです。
by
iPride Co., Ltd.
Single Command Deployのための gradle-aws-plugin講座
1.
Single Command Deployのための gradle-aws-plugin講座 ∼自動ビルド厨はここまで大きくなりました∼ 2015-09-26 クラスメソッド株式会社 都元ダイスケ #seasarcon
2.
自己紹介 ✦ よく訓練されたアップル信者、都元です。 ✦ Java屋出身のAWS屋 ✦
Java歴約10年?(since 2006) ✦ AWS歴約4年(since 2011夏) ✦ SSHしたら負けだと思っている。 ✦ Twitter @daisuke_m ✦ Seasar2からSpringへ
3.
2009-03-14 Seasar Conference 2009
White 2008-09-06 Seasar Conference 2008 Autumn 2009-06-13 Seasar Conference 2009 Spring
4.
Do you know? ✦
DBの進化的設計を実現する開発プロセス ✦ 要するにRailsのmigrationのような ✦ 現在のJavaでいうFlywayのような ✦ EclipseプラグインによるER図エディタ 2006-20 Jiemam
5.
Jiemamy ✦ DBの進化的設計 by
Martin Fowler ✦ アプリケーションのビルドに伴って ✦ アプリケーションが依存するDBの構築を自動化 ✦ DBスキーマに対して変更管理を適用
6.
スマートビルド / デプロイ –Miyamoto,
Daisuke (2006) リポジトリからコードをチェックアウトし、 必要に応じて環境固有の設定をした後、 コマンド1つで起動・デプロイができるべき 2006年にここまで言ってたかどうか忘れましたが、 Seasar Conference 2008では確実に言ってた。 この考えは現在も変わっていません。
7.
ってなことを訴え始めた2006年 ✦ あの頃の俺は青かった。 ✦ 自動化と管理の対象はDBじゃない。 ✦DBを含む、インフラ全部だ。
8.
時は流れ、現在… ✦ 世はまさに大クラウド時代! ✦ Infrastructure
as Code! ✦ プログラムから、アプリケーションのビルド・ インフラの構築・デプロイまでが実現できる世界
9.
Single Command Deploy ThoughtWorks,
Inc. Technology Radar March 2012 ここまでイントロ
10.
本日のアジェンダ ✦ AWSというインフラ環境をざっとご紹介 ✦ 実演
Single Command Deploy ✦ Spring(!?)Bootアプリケーションを ✦ Dockerを使ってコンテナ化して ✦ Gradleによるタスクで ✦ AWS Elastic Beanstalk環境にデプロイ
11.
いきなり実演(裏で ✦ 前提条件(下記を満たしていれば、みんな出来るはず) ✦ Mac
OS(Winでも動くかも…。未確認) w/ git ✦ インターネット接続回線があって ✦ AWSアカウントを持っていて ✦ EC2キーペアの発行・登録が終わっていて ✦ S3のバケットが1つ作ってあって ✦ アクセスキーを↓規定の場所に記述してある ~/.aws/credentials ✦ http://dev.classmethod.jp/cloud/aws/exclusive-aws- credentials-location/
12.
$ ### チェックアウト### $
git clone git@github.com:classmethod-aws/berserker.git ~/tmp/ sis-demo $ cd ~/tmp/sis-demo $ git checkout refs/tags/sis-demo $ #### ここは各環境で異なるところ ### $ cp env/_sample.gradle env/personal.gradle $ sed -i '' -e 's/templateBucket:.*$/templateBucket: "cf- templates-1r72h3gknbax2-ap-northeast-1",/' env/personal.gradle $ sed -i '' -e 's/KeyName:.*$/KeyName: "miyamoto-kp1",/' env/ personal.gradle $ diff env/_sample.gradle env/personal.gradle $ ### デプロイ・HTTPアクセス・撤収 ### $ ./gradlew -is awsFullDeploy $ curl -s ... $ ./gradlew -is awsFullUndeploy
13.
システムインフラ ネットワークとサーバと、諸々。
14.
旧来の最小構成インフラ ‣ サーバーマシン1台 ‣ Apache ‣
Tomcat ‣ MySQL ‣ ルーターとインターネット接続(IPアドレス等)
15.
オンプレ中規模インフラ ‣ DNSサーバー /
ルーター / ロードバランサー ‣ APサーバー ‣ DBサーバー ‣ メールサーバー ‣ その他
16.
Amazon Web Services
17.
AWSインフラ ✦ ネットワーク:Amazon VPC ✦
データベース・サーバ:Amazon RDS ✦ アプリケーション・サーバ:Amazon EC2
18.
Amazon VPC ✦ VPC
= 1つのプライベートネットワーク ✦ インターネット接続は任意 ✦ Availability Zone (AZ) ✦ 物理的に離れているけど 高速な専用線で結ばれたDC ✦ VPC AZ → Subnet
21.
基本的な構成 (1) Single-AZ構成 ✦ 可用性が足りない ✦
サービスを止めずにメンテナンスできない ✦ スケーラビリティが足りない ✦ 付加が増えても垂直にしかスケールできない サーバは落ちるものだし、水平スケール出来るのが望ましい 可用性が欲しい・スケーラビリティが欲しい
22.
Amazon EC2 ✦ 結構気軽に「メンテだから再起動してね」 って言われる。 ✦
Multi-AZ による冗長化構成が前提。 ✦ メンテナンスだけでなく、障害にも対応。 ✦ Design for failure
23.
基本的な構成 (2) Multi-AZ構成 ✦ AZ(
AWSのデータセンター)が1つ 丸ごとぶっ飛んでも、サービスが継続 できる ✦ 負荷が増えたら水平にスケールできる ✦ ただし、アプリケーション・サーバを ステートレスに保たなければならない ✦ データをファイルシステムに書かない ✦ RDBやS3に書き出す
26.
Spring Boot
27.
最近のJavaフレームワーク ✦ Play Framework ✦
Dropwizard ✦ Ninja framework ✦ Spring Boot ✦ アプリケーションサーバ (コンテナ)準備不要の、スタンドアローンアプリ。 ✦ Javaプロセスを1つ立ち上げればHTTPサーバが動く。
29.
Spring Bootの主な特徴 ✦ 簡単起動 ✦
$ java -jar your-app.jar ✦ クラスパス設定やコンテナ準備不要。 ✦ 設定の自動化 ✦ classpath内のクラスの有無によって自動設定 ✦ 設定のカスタマイズはアノテーションで ✦ Spring Bootを使ってみよう ✦ http://dev.classmethod.jp/server-side/spring-boot/
31.
Flyway ∼ DBの進化的設計 ✦
Jiemamy is dead ✦ スキーマにバージョンを付与 ✦ 前バージョンからの差分SQLを自作する ✦ どこまで適用したかは、実際のDB上に管理テーブルを作って記録 ✦ 未適用の差分SQLを順次適用することによるマイグレーション ✦ ただし、自動化されたロールバックは不可能 ✦ Flyway with Spring Boot でDBマイグレーションを自動化する ✦ http://dev.classmethod.jp/server-side/flyway-with-spring-boot/
33.
Docker
34.
1プロセスのための環境 ✦ 一般的にサーバ上では様々なプロセスが起動 ✦ Applicationの実行には直接関係無いものも多数 ✦
Applicationプロセスとしてはザックリと、 これだけあれば充分じゃない? ✦ プロセスが稼働する基盤(OSとメモリ空間?) ✦ プロセスが読み書きする状態(ファイルシステム) ✦ 他のプロセスは見えなくて良い。 ✦ 他のプロセス用のファイルも見えなくていい。
35.
Docker for Spring
Boot ✦ 最小限のファイルシステムにJavaをインストー ルし、your-app.jar を取り込んだDockerイメー ジを作成 ✦ イメージからDockerコンテナ(プロセス環境) を作成し、その中で java プロセスを起動 ✦ Docker と Spring Boot は相性が良い。
36.
Dockerfileの例 FROM java:openjdk-8-jdk EXPOSE 8080 WORKDIR
/opt/berserker/ ADD logback.xml /opt/berserker/logback.xml ADD berserker-x.xx.jar /opt/berserker/ CMD /usr/bin/java -DJDBC_CONNECTION_STRING=$JDBC_CONNECTION_STRING ... -Dspring.profiles.active=$SPRING_PROFILES_ACTIVE -Dlogging.config=/opt/berserker/logback.xml -Dserver.port=8080 -jar berserker-x.xx.jar OpenJDK 8 インストール済みの ファイルシステムイメージ アプリケーション本体jarの組み込み 起動コマンド
38.
AWS Elastic Beanstalk ホントは今は オレンジ色
39.
Elastic Beanstalk ✦ AWS上のWebシステムの基本構成を自動構築 ✦
開発者はApplication Bundle(後述)を作成し、 AWSに食わせる ✦ これだけで、アプリの動作環境が構築完了する
40.
Application Bundle ✦ Beanstalkの作法に従ったApp一式を含むZIPファイル ✦
Spring Bootアプリケーション(jar) ✦ logback.xml(ログ設定) ✦ Dockerfile(前述) ✦ これをZIPで固めてAmazon S3にアップロード
41.
CloudFormation ✦ Beanstalkの守備範囲 ✦ アプリケーションサーバシステム ✦
ELB, EC2 (AutoScaling) ... ✦ CloudFormationの守備範囲 ✦ システム全体を構成する周辺AWSリソース ✦ Beanstalk, VPC, S3, RDS ...
43.
アプリケーションのデプロイと システムのデプロイ –Miyamoto, Daisuke リポジトリからコードをチェックアウトし、 必要に応じて環境固有の設定をした後、 コマンド1つでシステムの起動・デプロイができるべき
44.
CloudFormation Template + Parameter Parameter Stack Bucket with Objects DynamoDB Table ELB Instances Auto
Scaling Amazon CloudFront 基本的システム構成 S3, DynamoDB, EC2, IAM,AutoScaling, SecurityGroup, ELB, CloudFront Instance Type, クラスタの台数, SSH接続元IP, キー名, ...等
45.
Template JSON、ということはインフラを バージョン管理できる\(^o^)/
46.
インフラの進化的設計 • インフラの構成をTemplateとしてバージョン管理する • TemplateからStackを作る(構築) •
インフラ構成を追加・編集(そしてバージョン管理) • 既存Stackを新しいテンプレートで更新する(成長)
47.
Gradle
48.
Gradle ✦ ビルド等を中心としたジョブ実行基盤 ✦ Javaの依存ライブラリ管理∼ ビルド、パッケージング ✦
Spring Bootアプリケーションの起動 ✦ プラグイン:spring-boot-gradle-plugin
50.
ではこれを… ✦ App Bundleの作成に使えないだろうか? ✦
App BundleのS3 uploadに使えないだろうか? ✦ Beanstalkの環境起動に使えないだろうか? ✦ 全部Yes!!
51.
App Bundle作成 task createBundle(type:
Zip, dependsOn: bootRepackage) { archiveName = ... // zipファイル名 from "src/main/bundle" // Dockerfile等 from jar.archivePath // jar }
52.
gradle-aws-plugin ✦ GradleからAWSリソースを操作したい ✦ 参考:
https://github.com/classmethod-aws/ gradle-aws-plugin
53.
導入 buildscript { repositories { mavenCentral() maven
{ url "https://plugins.gradle.org/m2/" } } dependencies { classpath "jp.classmethod.aws:gradle-aws-plugin:0.21" } } apply plugin: "jp.classmethod.aws.s3" apply plugin: "jp.classmethod.aws.cloudformation" apply plugin: "jp.classmethod.aws.beanstalk"
54.
CloudFormation操作 cloudFormation { stackName =
'berserker' conventionMapping.stackParams = { // (snip) return stackParams } capabilityIam true templateFile = file('berserker.template') templateBucket = ... templateKeyPrefix = ... } awsCfnMigrateStack.mustRunAfter uploadBundle awsCfnMigrateStack.dependsOn awsCfnUploadTemplate
55.
S3へのリソースアップロード task createBundle(type: Zip,
dependsOn: ...) { // (snip) } task uploadBundle(dependsOn: createBundle, type: AmazonElasticBeanstalkUploadBundleTask) { file project.createBundle.archivePath overwrite project.version.endsWith('-SNAPSHOT') }
56.
Gradle Task Graph
57.
一発タスク task awsFullDeploy(dependsOn: [ uploadBundle, awsCfnUploadTemplate, awsCfnMigrateStackAndWaitComplete ]) task
awsFullUndeploy(dependsOn: [ awsCfnDeleteStackAndWaitCompleted ])
58.
Gradle Task ✦ ./gradlew
bootRun ✦ ./gradlew awsFullDeploy ✦ ./gradlew awsFullUndeploy
59.
システム ポータビリティ
60.
Full Described System ✦
システム構築及び運用のコード化・自動化 ―― Automated ✦ 自動化しない・できない部分はポエムを書く ―― Documented ✦ システムの構成全てが「記述」されている。
61.
✦ 1つのAWSアカウント内に複数の環境を構築できる。 ✦ 例えば本番環境と開発環境等。 ✦
社内で共通のAWSアカウントに展開する。 ✦ あらゆるAWSアカウントに環境を構築できる。 ✦ 例えば個人検証環境。サンドボックス。 ✦ 開発者毎の個人検証用AWSアカウントに展開する。 ✦ あらゆるリージョンに環境を構築できる。 ✦ と、いいかもね。DRの視点で。
62.
環境依存設定 ✦ プロジェクト直下のenvディレクトリに 設定ファイルを置き、それを動的に読み込む -Penv=prd ✦ env/ ✦
.gititnore ✦ _sample.gradle ✦ prd.gradle ✦ dev.gradle ✦ personal.gradle ✦ profile名(AWSのキー) ✦ リージョン名 ✦ EC2キーファイルのパス ✦ 各種CFnパラメータ ✦ ローカルDB名、user、pass ✦ ログ設定ファイルのパス
63.
portability ✦ ./gradlew awsFullDeploy
-Penv=prd ✦ ./gradlew awsFullDeploy -Penv=dev ✦ ./gradlew awsFullDeploy -Penv=personal ✦ 詳しくは Developers.IO 「プロジェクトに対する環境固有設定の導入」 http://bit.ly/gradle-env-dep-config を参照。
64.
まとめ ホントは今は オレンジ色
Download