当社のAWSへの取り組みKLab株式会社佐々木健一(@siroken3)
自己紹介● お仕事  ○ SIer (前職)    ■ Java GUI系  ○ KLab入社後    ■ Java サーバサイド開発、受託系SE    ■ PHPでのソーシャルゲーム開発    ■ AWSインフラ担当へ(最近半年くらい)
AWS?● Amazon Web Services の略● IaaS型クラウドの先駆け● EC2 (Elastic Computing Cloud)  ○ 仮想サーバのホスティングサービス● 世界中にリージョンと呼ばれる物理拠点がある  ○  ...
当社の状況 (ビジネス面)● AWS上で複数タイトルリリース中 ○ 真・戦国バスター for iPhone ○ Load of Dragons for iPhone ○ その他開発中含め複数タイトル● グローバル市場へ重点を急速にシフト ○ ま...
当社の状況 (技術面)● 統合インフラ基盤 DSAS(※)    ○   物理インフラ    ○   安定・安心・大規模    ○   国内大型IP向け    ○   構成はほぼ枯れている    ○   多重化 / 冗長化 / フェイルオーバー...
当社の状況 (組織面)● 水平分業チームから垂直分業チームへ          企画                      個々のチーム     アプリケーション開発       で対応     インフラ (ミドルウェア等)
[目指す姿] 進化/成長するインフラ                   インフラ                    Ver.2          各チームの          ノウハウ インフラ  Ver.1 チーム#1    チーム#2...
現在試行錯誤中ですが    開発中(検討中も含)の   AWSインフラを晒します!
登場する技術●   Amazon VPC (Virtual Private Cloud)●   AWS CloudFormation●   Chef-solo●   Capistrano
AWS VPC● プライベートネットワークを構築できる! ○ VPCではない従来型のEC2は「レガシー」● VPCの特徴(抜粋) ○ インスタンス停止してもprivate IPアドレスが保持される ○ ネットワークインタフェースの差し替え   ...
AZa   AZb   AZc
CloudFormation / Chef / Capistrano● CloudFormation  ○ EC2インスタンスや仮想ルータなどAWSのリソースを設計    したとおりに起動させる● Chef (Chef-solo)  ○ EC2...
インフラのライフサイクル     初期構築         アプリケーション運用 CloudFormation    Capistrano      Chef   ノウハウの記述         インフラ改善 CloudFormation   ...
CloudFormation (抜粋)"nat": {                                 EC2インスタンスを起動する                                         定義   "T...
CloudFormation (抜粋)                                          ネットワークインタフェースの定                                          義"na...
Chef● http://www.opscode.com/chef/● インフラをコーディング!  ○ ノードの役割をJSONで内部構成をRuby DSLで記述  ○ 設定/維持の自動化        Web             NAT  ...
Chef (JSON)name role_mgrdescription This is mgr server role.default_attributes({ :run_app => "mgr" })run_list [       "rec...
Chef (Ruby)web_app "site" do  server_name node[hostname]  server_aliases ["prodsite.klab.com", "stgsite.klab.com"]  docroo...
Capistrano● http://capistranorb.com/● 多数のサーバに対して透過的に同時に運用操  作を行うための仕組み● 元々RoR向けですがPHPでも使える
Capistrano# ex-1$ cap shellcap> ls /tmp # 全サーバの /tmp 以下をls# ex-2$ cap logging:tail_log # 全webサーバのログをtail -fする$ cat deploy....
さらに...● 冗長化して安心して使えるインフラへ● 適切なコストにするノウハウ● インフラ運用と開発のアジャイルな開発を支える  仕組みづくり(devops)
いうわけで当社はAWS力入れてます● AWSに明るい方、チャレンジしたい方大  歓迎!● グローバルゲームインフラ一緒に作りましょう!● もちろんPHP技術者大歓迎!
ご清聴ありがとうございました
当社のawsへの取組
Upcoming SlideShare
Loading in …5
×

当社のawsへの取組

10,928 views

Published on

PHPMatsuri 2012で発表した資料です

0 Comments
9 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
10,928
On SlideShare
0
From Embeds
0
Number of Embeds
8,891
Actions
Shares
0
Downloads
13
Comments
0
Likes
9
Embeds 0
No embeds

No notes for slide

当社のawsへの取組

  1. 1. 当社のAWSへの取り組みKLab株式会社佐々木健一(@siroken3)
  2. 2. 自己紹介● お仕事 ○ SIer (前職) ■ Java GUI系 ○ KLab入社後 ■ Java サーバサイド開発、受託系SE ■ PHPでのソーシャルゲーム開発 ■ AWSインフラ担当へ(最近半年くらい)
  3. 3. AWS?● Amazon Web Services の略● IaaS型クラウドの先駆け● EC2 (Elastic Computing Cloud) ○ 仮想サーバのホスティングサービス● 世界中にリージョンと呼ばれる物理拠点がある ○ 北米(東海岸*1, 西海岸*2) ○ アジア・パシフィック(東京, シンガポール) ○ 南アメリカ ○ 欧州
  4. 4. 当社の状況 (ビジネス面)● AWS上で複数タイトルリリース中 ○ 真・戦国バスター for iPhone ○ Load of Dragons for iPhone ○ その他開発中含め複数タイトル● グローバル市場へ重点を急速にシフト ○ まず北米マーケット
  5. 5. 当社の状況 (技術面)● 統合インフラ基盤 DSAS(※) ○ 物理インフラ ○ 安定・安心・大規模 ○ 国内大型IP向け ○ 構成はほぼ枯れている ○ 多重化 / 冗長化 / フェイルオーバー!(※) http://www.klab.com/jp/services/products/dsas/index.html● AWSに対する期待 ○ 早期立ち上げ可能なインフラ ○ 海外ゲーム向け ○ 構成は試行錯誤中
  6. 6. 当社の状況 (組織面)● 水平分業チームから垂直分業チームへ 企画 個々のチーム アプリケーション開発 で対応 インフラ (ミドルウェア等)
  7. 7. [目指す姿] 進化/成長するインフラ インフラ Ver.2 各チームの ノウハウ インフラ Ver.1 チーム#1 チーム#2 チーム#3
  8. 8. 現在試行錯誤中ですが 開発中(検討中も含)の AWSインフラを晒します!
  9. 9. 登場する技術● Amazon VPC (Virtual Private Cloud)● AWS CloudFormation● Chef-solo● Capistrano
  10. 10. AWS VPC● プライベートネットワークを構築できる! ○ VPCではない従来型のEC2は「レガシー」● VPCの特徴(抜粋) ○ インスタンス停止してもprivate IPアドレスが保持される ○ ネットワークインタフェースの差し替え ■ Active-standby構成が組める ○ ルーティングの動的変更● はまりどころもたくさん!
  11. 11. AZa AZb AZc
  12. 12. CloudFormation / Chef / Capistrano● CloudFormation ○ EC2インスタンスや仮想ルータなどAWSのリソースを設計 したとおりに起動させる● Chef (Chef-solo) ○ EC2インスタンスで動作するミドルウェア(apache, memcached,等)やconfigurationを設計したとおりに反映さ せる● Capistrano ○ 多数あるサーバ群を効率よく操作するためのフロントエン ド
  13. 13. インフラのライフサイクル 初期構築 アプリケーション運用 CloudFormation Capistrano Chef ノウハウの記述 インフラ改善 CloudFormation Capistrano テンプレート Chef Chefレシピ
  14. 14. CloudFormation (抜粋)"nat": { EC2インスタンスを起動する 定義 "Type": "AWS::EC2::Instance", "Metadata": { "AWS::CloudFormation::Init": { "configSets": { "boot": [ "bootPackages","bootCommands" ] }, "bootPackages" : { "packages" : { 起動時に自動的にインストール するパッケージも指定できる "yum" : { "gcc" : [], "gcc-c++" : [],
  15. 15. CloudFormation (抜粋) ネットワークインタフェースの定 義"natNetworkInterface" : { "Type": "AWS::EC2::NetworkInterface", "Properties" : { "SubnetId" : { "Ref" : "admUsWest2aSubnet" }, "SourceDestCheck" : "false", "GroupSet" : [ { "Ref": "admSecurityGroup" } ] }}
  16. 16. Chef● http://www.opscode.com/chef/● インフラをコーディング! ○ ノードの役割をJSONで内部構成をRuby DSLで記述 ○ 設定/維持の自動化 Web NAT Memcache ● apache2 ● iptables ● memcached ● PHP5.3
  17. 17. Chef (JSON)name role_mgrdescription This is mgr server role.default_attributes({ :run_app => "mgr" })run_list [ "recipe[apache2]", "recipe[base::mgr]", Nodeで実行さ "recipe[base::capistrano]", れるレシピ達 "recipe[php]", "recipe[kg_global::mgr]", ]
  18. 18. Chef (Ruby)web_app "site" do server_name node[hostname] server_aliases ["prodsite.klab.com", "stgsite.klab.com"] docroot "/opt/klab/site/current/app/webroot" template "site.conf.erb"end Apache VirtualHostが生 成される
  19. 19. Capistrano● http://capistranorb.com/● 多数のサーバに対して透過的に同時に運用操 作を行うための仕組み● 元々RoR向けですがPHPでも使える
  20. 20. Capistrano# ex-1$ cap shellcap> ls /tmp # 全サーバの /tmp 以下をls# ex-2$ cap logging:tail_log # 全webサーバのログをtail -fする$ cat deploy.rbnamespace :logging do task :tail_log, :roles => :web do stream "tail -f/var/log/httpd/access.log" endend
  21. 21. さらに...● 冗長化して安心して使えるインフラへ● 適切なコストにするノウハウ● インフラ運用と開発のアジャイルな開発を支える 仕組みづくり(devops)
  22. 22. いうわけで当社はAWS力入れてます● AWSに明るい方、チャレンジしたい方大 歓迎!● グローバルゲームインフラ一緒に作りましょう!● もちろんPHP技術者大歓迎!
  23. 23. ご清聴ありがとうございました

×