• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
ブログ製本サービス MyBooks.jpのアーキテクチャ Part.3 AWS Elastic Beanstalkについて
 

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

on

  • 1,703 views

第13回JAWS-UG札幌勉強会で発表した資料です。Immutable InfrastructureとElastic Beanstalkのお話です。

第13回JAWS-UG札幌勉強会で発表した資料です。Immutable InfrastructureとElastic Beanstalkのお話です。

Statistics

Views

Total Views
1,703
Views on SlideShare
766
Embed Views
937

Actions

Likes
6
Downloads
10
Comments
0

9 Embeds 937

http://blog.dateofrock.com 600
http://inaba-serverdesign.jp 278
https://twitter.com 39
http://feedly.com 11
http://s.deeeki.com 4
http://www.google.co.jp 2
http://www.inoreader.com 1
http://www.slideee.com 1
http://ktest.inaba-serverdesign.jp 1
More...

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

CC Attribution License

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

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

    • ブログ製本サービス 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