SlideShare une entreprise Scribd logo
1  sur  51
Télécharger pour lire hors ligne
ブログ製本サービス
MyBooks.jpのアーキテクチャ Part.3
AWS Elastic Beanstalkについて
欧文印刷株式会社・ソフトウェアエンジニア・田名辺健人
2014/04/11 第13回勉強会
Who am I ?!(この顔にピンときたら)
田名辺 健人(たなべたけひと)
ソフトウェアエンジニア
!
!
欧文印刷株式会社(東京都)
2011年11月クラウド移住
札幌でリモート勤務中
初代AWSサムライ
好きなサービス: SWF
@dateofrock
http://blog.dateofrock.com/
www.mybooks.jp
EC2
Instance
WordPress
(AMI元)
Elastic IP
Address
ELB
EC2
Instance
EBS
EBS snapshot
S3
Simple Workflow
Service
Tomcat Session Store
Book Data
Tomcat7 (Grails/back-end)
EC2 Instances
ELB
Decider
Worker
EC2 Instances
(Auto Scaling)
Tomcat7 (Grails/front-end)
CloudWatch
Simple Email
Service
S3 (App
Resources)
editor.mybooks.jp
A. 静的サイト B. 動的サイト
Route53
www.mybooks.jp
EC2
Instance
WordPress
(AMI元)
Elastic IP
Address
ELB
EC2
Instance
EBS
EBS snapshot
S3
Simple Workflow
Service
Tomcat Session Store
Book Data
Tomcat7 (Grails/back-end)
EC2 Instances
ELB
Decider
Worker
EC2 Instances
(Auto Scaling)
Tomcat7 (Grails/front-end)
CloudWatch
Simple Email
Service
S3 (App
Resources)
editor.mybooks.jp
A. 静的サイト B. 動的サイト
Route53
www.mybooks.jp
EC2
Instance
WordPress
(AMI元)
Elastic IP
Address
ELB
EC2
Instance
EBS
EBS snapshot
S3
Simple Workflow
Service
Tomcat Session Store
Book Data
Tomcat7 (Grails/back-end)
EC2 Instances
ELB
Decider
Worker
EC2 Instances
(Auto Scaling)
Tomcat7 (Grails/front-end)
CloudWatch
Simple Email
Service
S3 (App
Resources)
editor.mybooks.jp
A. 静的サイト B. 動的サイト
Route53
www.mybooks.jp
EC2
Instance
WordPress
(AMI元)
Elastic IP
Address
ELB
EC2
Instance
EBS
EBS snapshot
S3
Simple Workflow
Service
Tomcat Session Store
Book Data
Tomcat7 (Grails/back-end)
EC2 Instances
ELB
Decider
Worker
EC2 Instances
(Auto Scaling)
Tomcat7 (Grails/front-end)
CloudWatch
Simple Email
Service
S3 (App
Resources)
editor.mybooks.jp
A. 静的サイト B. 動的サイト
Route53
AWS Elastic Beanstalk
Immutable Infrastructure
今一番ナウい!
そして日本人には発音がつらいww
Blue Green
Deployment
http://martinfowler.com/bliki/BlueGreenDeployment.html
それ
Elastic Beanstalk
そのものですから
AWS Elastic Beanstalk
Elastic Beanstalk
で
Blue Green Deployment
してみる
DNS
Storage
DB
LB LB
Servers Servers
Server Image Server Image
Blue Green
Live Pending
version1
DNS
Storage
DB
LB LB
Servers Servers
Server Image Server Image
Blue Green
Live Pending
version1 version2
DNS
Storage
DB
LB LB
Servers Servers
Server Image Server Image
Blue Green
Live Pending
version1 version2
DNS
Storage
DB
LB LB
Servers Servers
Server Image Server Image
Blue Green
Pending Live
version1 version2
1.サーバーを直接触らない
上書きデプロイしてリスタートとか
事故の元w
(基本的に)サーバーにログインし
ての作業はやらない。
Immutable Infrastructureとしての
Elastic Beanstalk
そもそもkey pair
指定が必須ではない
(注)私は臆病者なので指定してますw
EC2のセットアップ
1.あらかじめセットアップ済み
AMIを作る
2.cloud-initやChefなどで頑張るw
3.configを利用する
• Elastic Beanstalk的には王道
EC2のセットアップ
1.あらかじめセットアップ済み
AMIを作る
2.cloud-initやChefなどで頑張るw
3.configを利用する
• Elastic Beanstalk的には王道
YAML
YAML
$APP_ROOT/.ebextensions/*.config
✓パッケージインストール
✓アーカイブダウンロード + 展開
✓ファイル生成 or コピー
✓OSユーザー・グループ作成
✓コマンド実行(OS用)
✓コマンド実行(コンテナ用)
✓サービス設定(/etc/init.d)
✓Beanstalk固有の設定
packages:
yum:
libmemcached: []
ruby-devel: []
nfs-utils: [1.0.9]
rpm, yum, apt,
rubygems (chef)
sources:
/usr/local/bin:↲
http://hoge.com/hoge.tar.gz
tar, tar+gzip, tar+bz2, zip
files:
"/home/ec2-user":
mode: "000777"
owner: ec2-user
group: ec2-user
source: http://hoge.com/a.txt
files:
"/home/ec2-user":
mode: "000777"
owner: ec2-user
group: ec2-user
content: |
# this is my file
# with content
content直書きOK
users:
myuser:
groups:
group1
group2
uid: "50"
homeDir: “/tmp”
groups:
- groupOne
- groupTwo
gid: "45"
commands:
test:
command: myscript.py
cwd: /home/ec2-user
env: myvarname: myvarvalue
container_commands:
replace-server_xml:
command: ↲
cp .ebextensions/server.xml ↲
/etc/tomcat7/server.xml
server.xmlの置換
container_commands:
01syncdb:
command: "django-admin.py syncdb --noinput"
leader_only: true
02migrate:
command: "django-admin.py migrate"
leader_only: true
マイグレーションの実行
services:
sysvinit:
myservice:
enabled: true
ensureRunning: true
option_settings:
- namespace: ↲
aws:elasticbeanstalk:container:tomcat:jvmoptions
option_name: Xmx
value: 512m
- option_name: AWS_SECRET_KEY
value: SECRET_KEY
- option_name: AWS_ACCESS_KEY_ID
value: ACCESS_KEY
2.App側も気を使う必要あり
Immutableである→ステートレス
ステートレスなアーキテクチャ
メンテが楽!!
スケーラブル!!
Immutable Infrastructureとしての
Elastic Beanstalk
DNS
Storage
DB
LB
Servers
Server Image
Blue
Live
DNS
Storage
DB
LB
Servers
Server Image
Blue
Live
データ(状態)はサーバーの外へ!
DNS
Storage
DB
LB
Servers
Server Image
Blue
Live
サーバーはいつでも捨てられる!
Immutable Infrastructure
今一番ナウい!
そして日本人には発音がつらいww
AWS Elastic Beanstalk
www.mybooks.jp
EC2
Instance
WordPress
(AMI元)
Elastic IP
Address
ELB
EC2
Instance
EBS
EBS snapshot
S3
Simple Workflow
Service
Tomcat Session Store
Book Data
Tomcat7 (Grails/back-end)
EC2 Instances
ELB
Decider
Worker
EC2 Instances
(Auto Scaling)
Tomcat7 (Grails/front-end)
CloudWatch
Simple Email
Service
S3 (App
Resources)
editor.mybooks.jp
A. 静的サイト B. 動的サイト
Route53
www.mybooks.jp
EC2
Instance
WordPress
(AMI元)
Elastic IP
Address
ELB
EC2
Instance
EBS
EBS snapshot
S3
Simple Workflow
Service
Tomcat Session Store
Book Data
Tomcat7 (Grails/back-end)
EC2 Instances
ELB
Decider
Worker
EC2 Instances
(Auto Scaling)
Tomcat7 (Grails/front-end)
CloudWatch
Simple Email
Service
S3 (App
Resources)
editor.mybooks.jp
A. 静的サイト B. 動的サイト
Route53
Private Distribution
State Sharing
Snapshot
Scale Up
Floating IP
NFS Sharing
DB Replication
Queuing Chain
Multi Datacenter
Bootstrap
Cloud DI
Web Strage Archive
Functional Firewall
Operational Firewall
Multi Datacenter
Bootstrap
Cloud DI
Web Strage Archive
Functional Firewall
Operational Firewall
Snapshot

Contenu connexe

Tendances

2010年インストールマニアックス ~Javaアプリ編~
2010年インストールマニアックス ~Javaアプリ編~2010年インストールマニアックス ~Javaアプリ編~
2010年インストールマニアックス ~Javaアプリ編~
normalian
 
EC2でマルチキャスト
EC2でマルチキャストEC2でマルチキャスト
EC2でマルチキャスト
Kenta Yasukawa
 
EC2上でパケットをミラーリング
EC2上でパケットをミラーリングEC2上でパケットをミラーリング
EC2上でパケットをミラーリング
Kenta Yasukawa
 

Tendances (20)

Behind-the-Scenes and Goals of LINE Summer Internship Program
Behind-the-Scenes and Goals of LINE Summer Internship ProgramBehind-the-Scenes and Goals of LINE Summer Internship Program
Behind-the-Scenes and Goals of LINE Summer Internship Program
 
Serverless Architecture Overview #cdevc
Serverless Architecture Overview #cdevcServerless Architecture Overview #cdevc
Serverless Architecture Overview #cdevc
 
第7回rest勉強会 バリデーション編
第7回rest勉強会 バリデーション編第7回rest勉強会 バリデーション編
第7回rest勉強会 バリデーション編
 
AWSと網元でWordPressサーバ構築(公開用)
AWSと網元でWordPressサーバ構築(公開用)AWSと網元でWordPressサーバ構築(公開用)
AWSと網元でWordPressサーバ構築(公開用)
 
Lvsをvpc上に構築してみた話
Lvsをvpc上に構築してみた話Lvsをvpc上に構築してみた話
Lvsをvpc上に構築してみた話
 
2010年インストールマニアックス ~Javaアプリ編~
2010年インストールマニアックス ~Javaアプリ編~2010年インストールマニアックス ~Javaアプリ編~
2010年インストールマニアックス ~Javaアプリ編~
 
EC2でマルチキャスト
EC2でマルチキャストEC2でマルチキャスト
EC2でマルチキャスト
 
Kubernetesを使う上で抑えておくべきAWSの基礎概念
Kubernetesを使う上で抑えておくべきAWSの基礎概念Kubernetesを使う上で抑えておくべきAWSの基礎概念
Kubernetesを使う上で抑えておくべきAWSの基礎概念
 
AWS Casual2 LT
AWS Casual2 LTAWS Casual2 LT
AWS Casual2 LT
 
[jjug] Java と Benchmark
[jjug] Java と Benchmark[jjug] Java と Benchmark
[jjug] Java と Benchmark
 
AWSで地球の裏側ブラジルの人にすばやくWEBサイトを見せたい。
AWSで地球の裏側ブラジルの人にすばやくWEBサイトを見せたい。AWSで地球の裏側ブラジルの人にすばやくWEBサイトを見せたい。
AWSで地球の裏側ブラジルの人にすばやくWEBサイトを見せたい。
 
Shinjuku.rb #29 ActiveJobでSQS使ったのとその永続化についての話
Shinjuku.rb #29 ActiveJobでSQS使ったのとその永続化についての話Shinjuku.rb #29 ActiveJobでSQS使ったのとその永続化についての話
Shinjuku.rb #29 ActiveJobでSQS使ったのとその永続化についての話
 
LINE API × heroku ×selenium
LINE API × heroku ×selenium LINE API × heroku ×selenium
LINE API × heroku ×selenium
 
errbit とは何なのか LT (社内勉強会用)
errbit とは何なのか LT (社内勉強会用)errbit とは何なのか LT (社内勉強会用)
errbit とは何なのか LT (社内勉強会用)
 
Stm vol3 awsで落ちないwebサービスを構築
Stm vol3 awsで落ちないwebサービスを構築Stm vol3 awsで落ちないwebサービスを構築
Stm vol3 awsで落ちないwebサービスを構築
 
API Gatewayで re:Inventのセッション探し
API Gatewayで re:Inventのセッション探しAPI Gatewayで re:Inventのセッション探し
API Gatewayで re:Inventのセッション探し
 
EC2上でパケットをミラーリング
EC2上でパケットをミラーリングEC2上でパケットをミラーリング
EC2上でパケットをミラーリング
 
Device Farm を使ったスマホアプリの自動テスト
Device Farm を使ったスマホアプリの自動テストDevice Farm を使ったスマホアプリの自動テスト
Device Farm を使ったスマホアプリの自動テスト
 
AWS で concrete5 を 簡単起動!
AWS で concrete5 を 簡単起動!AWS で concrete5 を 簡単起動!
AWS で concrete5 を 簡単起動!
 
T2micro
T2microT2micro
T2micro
 

Similaire à ブログ製本サービス MyBooks.jpのアーキテクチャ Part.3 AWS Elastic Beanstalkについて

JAWS-UG東京第9回 2011年7月14日
JAWS-UG東京第9回 2011年7月14日JAWS-UG東京第9回 2011年7月14日
JAWS-UG東京第9回 2011年7月14日
SORACOM, INC
 
Elastic beanstalk と Docker と Play
Elastic beanstalk と Docker と PlayElastic beanstalk と Docker と Play
Elastic beanstalk と Docker と Play
Takashi Kawachi
 
cloudpack(AWS運用事業)一周年でわかってきたこと
cloudpack(AWS運用事業)一周年でわかってきたことcloudpack(AWS運用事業)一周年でわかってきたこと
cloudpack(AWS運用事業)一周年でわかってきたこと
Hiroyasu Suzuki
 
JAWS-UG北陸第2回 AWSクラウド最新アップデート
JAWS-UG北陸第2回 AWSクラウド最新アップデートJAWS-UG北陸第2回 AWSクラウド最新アップデート
JAWS-UG北陸第2回 AWSクラウド最新アップデート
SORACOM, INC
 
JAWS Summit Satoshi Yokota
JAWS Summit Satoshi YokotaJAWS Summit Satoshi Yokota
JAWS Summit Satoshi Yokota
satoshi
 
アマゾンクラウド実践講座 in 福岡/山口クラウドセミナー 20101208
アマゾンクラウド実践講座 in 福岡/山口クラウドセミナー 20101208アマゾンクラウド実践講座 in 福岡/山口クラウドセミナー 20101208
アマゾンクラウド実践講座 in 福岡/山口クラウドセミナー 20101208
SORACOM, INC
 
クラウドを使ってみよう - クラウド女子会2011年4月30日
クラウドを使ってみよう - クラウド女子会2011年4月30日クラウドを使ってみよう - クラウド女子会2011年4月30日
クラウドを使ってみよう - クラウド女子会2011年4月30日
SORACOM, INC
 

Similaire à ブログ製本サービス MyBooks.jpのアーキテクチャ Part.3 AWS Elastic Beanstalkについて (20)

AWSを用いたWebホスティング
AWSを用いたWebホスティングAWSを用いたWebホスティング
AWSを用いたWebホスティング
 
はじめてのAmazon Web Services
はじめてのAmazon Web ServicesはじめてのAmazon Web Services
はじめてのAmazon Web Services
 
EKSを動かしてみた話
EKSを動かしてみた話EKSを動かしてみた話
EKSを動かしてみた話
 
JAWS-UG東京第9回 2011年7月14日
JAWS-UG東京第9回 2011年7月14日JAWS-UG東京第9回 2011年7月14日
JAWS-UG東京第9回 2011年7月14日
 
Elastic beanstalk と Docker と Play
Elastic beanstalk と Docker と PlayElastic beanstalk と Docker と Play
Elastic beanstalk と Docker と Play
 
Amazon ECS AWS Fargate あるとき~ ないとき~ (トレノケ雲の会 mod2)
Amazon ECS AWS Fargate あるとき~ ないとき~ (トレノケ雲の会 mod2)Amazon ECS AWS Fargate あるとき~ ないとき~ (トレノケ雲の会 mod2)
Amazon ECS AWS Fargate あるとき~ ないとき~ (トレノケ雲の会 mod2)
 
Amazon ECS , AWS Fargate あるとき~ ないとき~
Amazon ECS , AWS Fargate あるとき~ ないとき~Amazon ECS , AWS Fargate あるとき~ ないとき~
Amazon ECS , AWS Fargate あるとき~ ないとき~
 
LocalStack
LocalStackLocalStack
LocalStack
 
Jawsug elastic beanstalk_150207
Jawsug elastic beanstalk_150207Jawsug elastic beanstalk_150207
Jawsug elastic beanstalk_150207
 
スタートアップでのAWS(Amazon Web Services)活用事例
スタートアップでのAWS(Amazon Web Services)活用事例スタートアップでのAWS(Amazon Web Services)活用事例
スタートアップでのAWS(Amazon Web Services)活用事例
 
cloudpack(AWS運用事業)一周年でわかってきたこと
cloudpack(AWS運用事業)一周年でわかってきたことcloudpack(AWS運用事業)一周年でわかってきたこと
cloudpack(AWS運用事業)一周年でわかってきたこと
 
Scraping withawsAWSを利用してスクレイピングの悩みを解決するチップス
Scraping withawsAWSを利用してスクレイピングの悩みを解決するチップスScraping withawsAWSを利用してスクレイピングの悩みを解決するチップス
Scraping withawsAWSを利用してスクレイピングの悩みを解決するチップス
 
JAWS-UG北陸第2回 AWSクラウド最新アップデート
JAWS-UG北陸第2回 AWSクラウド最新アップデートJAWS-UG北陸第2回 AWSクラウド最新アップデート
JAWS-UG北陸第2回 AWSクラウド最新アップデート
 
Morning Session - AWS Serverless Ways
Morning Session - AWS Serverless WaysMorning Session - AWS Serverless Ways
Morning Session - AWS Serverless Ways
 
JAWS Summit Satoshi Yokota
JAWS Summit Satoshi YokotaJAWS Summit Satoshi Yokota
JAWS Summit Satoshi Yokota
 
Running Java Apps with Amazon EC2, AWS Elastic Beanstalk or Serverless
Running Java Apps with Amazon EC2, AWS Elastic Beanstalk or ServerlessRunning Java Apps with Amazon EC2, AWS Elastic Beanstalk or Serverless
Running Java Apps with Amazon EC2, AWS Elastic Beanstalk or Serverless
 
20130326 aws meister-reloaded-windows
20130326 aws meister-reloaded-windows20130326 aws meister-reloaded-windows
20130326 aws meister-reloaded-windows
 
アマゾンクラウド実践講座 in 福岡/山口クラウドセミナー 20101208
アマゾンクラウド実践講座 in 福岡/山口クラウドセミナー 20101208アマゾンクラウド実践講座 in 福岡/山口クラウドセミナー 20101208
アマゾンクラウド実践講座 in 福岡/山口クラウドセミナー 20101208
 
仮想サーバーEC2 & EBS詳細 -ほぼ週刊AWSマイスターシリーズ "Reloaded"-
仮想サーバーEC2 & EBS詳細 -ほぼ週刊AWSマイスターシリーズ "Reloaded"- 仮想サーバーEC2 & EBS詳細 -ほぼ週刊AWSマイスターシリーズ "Reloaded"-
仮想サーバーEC2 & EBS詳細 -ほぼ週刊AWSマイスターシリーズ "Reloaded"-
 
クラウドを使ってみよう - クラウド女子会2011年4月30日
クラウドを使ってみよう - クラウド女子会2011年4月30日クラウドを使ってみよう - クラウド女子会2011年4月30日
クラウドを使ってみよう - クラウド女子会2011年4月30日
 

Plus de Takehito Tanabe

第8回クラウドごった煮 4年と半年、AWSを使い続けた結果
第8回クラウドごった煮 4年と半年、AWSを使い続けた結果第8回クラウドごった煮 4年と半年、AWSを使い続けた結果
第8回クラウドごった煮 4年と半年、AWSを使い続けた結果
Takehito Tanabe
 
テレワークHOKKAIDOセミナー 会社を辞めないUターン
テレワークHOKKAIDOセミナー 会社を辞めないUターンテレワークHOKKAIDOセミナー 会社を辞めないUターン
テレワークHOKKAIDOセミナー 会社を辞めないUターン
Takehito Tanabe
 

Plus de Takehito Tanabe (20)

XamarinとAWSをつないでみた話
XamarinとAWSをつないでみた話XamarinとAWSをつないでみた話
XamarinとAWSをつないでみた話
 
スタートアップがグローバルなシステムを作るために、積極的にサーバーレスに取り組んでみた話 / Serverless Meetup Sapporo
スタートアップがグローバルなシステムを作るために、積極的にサーバーレスに取り組んでみた話 / Serverless Meetup Sapporoスタートアップがグローバルなシステムを作るために、積極的にサーバーレスに取り組んでみた話 / Serverless Meetup Sapporo
スタートアップがグローバルなシステムを作るために、積極的にサーバーレスに取り組んでみた話 / Serverless Meetup Sapporo
 
エフスタ!!HOKKAIDO エンジニアが この先 生き残るには
エフスタ!!HOKKAIDO エンジニアが この先 生き残るにはエフスタ!!HOKKAIDO エンジニアが この先 生き残るには
エフスタ!!HOKKAIDO エンジニアが この先 生き残るには
 
クラウドで管理する手作り育苗ハウスのつくり方
クラウドで管理する手作り育苗ハウスのつくり方クラウドで管理する手作り育苗ハウスのつくり方
クラウドで管理する手作り育苗ハウスのつくり方
 
さっぽろ農学校成果発表
さっぽろ農学校成果発表さっぽろ農学校成果発表
さっぽろ農学校成果発表
 
JAWS-DAYS 2015 / 北海道 x 農業 x クラウド
JAWS-DAYS 2015 / 北海道 x 農業 x クラウドJAWS-DAYS 2015 / 北海道 x 農業 x クラウド
JAWS-DAYS 2015 / 北海道 x 農業 x クラウド
 
青森ITビジネス・マッチング交流会
青森ITビジネス・マッチング交流会青森ITビジネス・マッチング交流会
青森ITビジネス・マッチング交流会
 
Farmnoteの技術(AWS Cloud Roadshow 2014 札幌)
Farmnoteの技術(AWS Cloud Roadshow 2014 札幌)Farmnoteの技術(AWS Cloud Roadshow 2014 札幌)
Farmnoteの技術(AWS Cloud Roadshow 2014 札幌)
 
リモート勤務でエンジニアをやっているワケ 〜 AWS ジャパンツアー 2014年 夏 札幌
リモート勤務でエンジニアをやっているワケ 〜 AWS ジャパンツアー 2014年 夏 札幌リモート勤務でエンジニアをやっているワケ 〜 AWS ジャパンツアー 2014年 夏 札幌
リモート勤務でエンジニアをやっているワケ 〜 AWS ジャパンツアー 2014年 夏 札幌
 
Garage labsサーバー部11U final
Garage labsサーバー部11U finalGarage labsサーバー部11U final
Garage labsサーバー部11U final
 
北海道の楽しい100人
北海道の楽しい100人北海道の楽しい100人
北海道の楽しい100人
 
第8回クラウドごった煮 4年と半年、AWSを使い続けた結果
第8回クラウドごった煮 4年と半年、AWSを使い続けた結果第8回クラウドごった煮 4年と半年、AWSを使い続けた結果
第8回クラウドごった煮 4年と半年、AWSを使い続けた結果
 
クラウド移住で地方に住むということ
クラウド移住で地方に住むということクラウド移住で地方に住むということ
クラウド移住で地方に住むということ
 
華麗なるElastic Beanstalkでの環境構築
華麗なるElastic Beanstalkでの環境構築華麗なるElastic Beanstalkでの環境構築
華麗なるElastic Beanstalkでの環境構築
 
テレワークHOKKAIDOセミナー 会社を辞めないUターン
テレワークHOKKAIDOセミナー 会社を辞めないUターンテレワークHOKKAIDOセミナー 会社を辞めないUターン
テレワークHOKKAIDOセミナー 会社を辞めないUターン
 
AWSと1500日
AWSと1500日AWSと1500日
AWSと1500日
 
雲にのって札幌まで来た話
雲にのって札幌まで来た話雲にのって札幌まで来た話
雲にのって札幌まで来た話
 
クラウド移住体験記
クラウド移住体験記クラウド移住体験記
クラウド移住体験記
 
AWS小ネタ集
AWS小ネタ集AWS小ネタ集
AWS小ネタ集
 
CloudWatch Custom Metrics
CloudWatch Custom MetricsCloudWatch Custom Metrics
CloudWatch Custom Metrics
 

ブログ製本サービス MyBooks.jpのアーキテクチャ Part.3 AWS Elastic Beanstalkについて