Mais conteúdo relacionado
Semelhante a 当社のawsへの取組 (20)
当社のawsへの取組
- 2. 自己紹介
● お仕事
○ SIer (前職)
■ Java GUI系
○ KLab入社後
■ Java サーバサイド開発、受託系SE
■ PHPでのソーシャルゲーム開発
■ AWSインフラ担当へ(最近半年くらい)
- 4. AWS?
● Amazon Web Services の略
● IaaS型クラウドの先駆け
● EC2 (Elastic Computing Cloud)
○ 仮想サーバのホスティングサービス
● 世界中にリージョンと呼ばれる物理拠点がある
○ 北米(東海岸*1, 西海岸*2)
○ アジア・パシフィック(東京, シンガポール)
○ 南アメリカ
○ 欧州
- 6. 当社の状況 (技術面)
● 統合インフラ基盤 DSAS(※)
○ 物理インフラ
○ 安定・安心・大規模
○ 国内大型IP向け
○ 構成はほぼ枯れている
○ 多重化 / 冗長化 / フェイルオーバー!
(※) http://www.klab.com/jp/services/products/dsas/index.html
● AWSに対する期待
○ 早期立ち上げ可能なインフラ
○ 海外ゲーム向け
○ 構成は試行錯誤中
- 10. 登場する技術
● Amazon VPC (Virtual Private Cloud)
● AWS CloudFormation
● Chef-solo
● Capistrano
- 11. AWS VPC
● プライベートネットワークを構築できる!
○ VPCではない従来型のEC2は「レガシー」
● VPCの特徴(抜粋)
○ インスタンス停止してもprivate IPアドレスが保持される
○ ネットワークインタフェースの差し替え
■ Active-standby構成が組める
○ ルーティングの動的変更
● はまりどころもたくさん!
- 13. CloudFormation / Chef / Capistrano
● CloudFormation
○ EC2インスタンスや仮想ルータなどAWSのリソースを設計
したとおりに起動させる
● Chef (Chef-solo)
○ EC2インスタンスで動作するミドルウェア(apache,
memcached,等)やconfigurationを設計したとおりに反映さ
せる
● Capistrano
○ 多数あるサーバ群を効率よく操作するためのフロントエン
ド
- 14. インフラのライフサイクル
初期構築 アプリケーション運用
CloudFormation Capistrano
Chef
ノウハウの記述 インフラ改善
CloudFormation Capistrano
テンプレート Chef
Chefレシピ
- 15. CloudFormation (抜粋)
"nat": { EC2インスタンスを起動する
定義
"Type": "AWS::EC2::Instance",
"Metadata": {
"AWS::CloudFormation::Init": {
"configSets": {
"boot": [ "bootPackages","bootCommands" ]
},
"bootPackages" : {
"packages" : { 起動時に自動的にインストール
するパッケージも指定できる
"yum" : {
"gcc" : [],
"gcc-c++" : [],
- 16. CloudFormation (抜粋)
ネットワークインタフェースの定
義
"natNetworkInterface" : {
"Type": "AWS::EC2::NetworkInterface",
"Properties" : {
"SubnetId" : { "Ref" : "admUsWest2aSubnet" },
"SourceDestCheck" : "false",
"GroupSet" : [ { "Ref": "admSecurityGroup" } ]
}
}
- 18. Chef (JSON)
name 'role_mgr'
description '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]",
]
- 19. 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が生
成される
- 21. Capistrano
# ex-1
$ cap shell
cap> ls /tmp # 全サーバの /tmp 以下をls
# ex-2
$ cap logging:tail_log # 全webサーバのログをtail -fする
$ cat deploy.rb
namespace :logging do
task :tail_log, :roles => :web do
stream "tail -f/var/log/httpd/access.log"
end
end