Home
Explore
Submit Search
Upload
Login
Signup
Advertisement
Check these out next
Mod lua
do_aki
成長を加速する minne の技術基盤戦略
Hiroshi SHIBATA
What is chef
Yukihiko SAWANOBORI
Apache Module
Tomohiro Ikebe
ぼくのかんがえた Itamae/Serverspec 構成フレームワーク 〜 Kondate 〜
Naotoshi Seo
Puppet on AWS
Sugawara Genki
Web技術勉強会23回目
龍一 田中
ChefとPuppetの比較
Sugawara Genki
1
of
37
Top clipped slide
Using Chef for Infrastructure Automation of Ameba Pigg
May. 27, 2012
•
0 likes
19 likes
×
Be the first to like this
Show More
•
3,302 views
views
×
Total views
0
On Slideshare
0
From embeds
0
Number of embeds
0
Download Now
Download to read offline
Report
Technology
DevOps Days Tokyo 2012
Yuuki Namikawa
Follow
Backend/Infrastructure Engineer at CyberAgent, Inc.
Advertisement
Advertisement
Advertisement
Recommended
3分でわかる(気になれる) AWS OpsWorks
Yuuki Namikawa
3.6K views
•
15 slides
Chefを利用した運用省力化とDevOpsの取り組みについて
Yuuki Namikawa
7.3K views
•
42 slides
第2回 松本勉強会 2012 05 25 - apache2.4とmod_lua
Ryosuke MATSUMOTO
5.4K views
•
20 slides
Mina 20130417
Naotoshi Seo
3.1K views
•
28 slides
Mod mrubyについて
Ryosuke MATSUMOTO
10.2K views
•
34 slides
組み込みスクリプト言語Mrubyを利用したwebサーバの機能拡張支援機構
Ryosuke MATSUMOTO
2.1K views
•
28 slides
More Related Content
Slideshows for you
(20)
Mod lua
do_aki
•
2.9K views
成長を加速する minne の技術基盤戦略
Hiroshi SHIBATA
•
9.4K views
What is chef
Yukihiko SAWANOBORI
•
20.9K views
Apache Module
Tomohiro Ikebe
•
5.8K views
ぼくのかんがえた Itamae/Serverspec 構成フレームワーク 〜 Kondate 〜
Naotoshi Seo
•
11.8K views
Puppet on AWS
Sugawara Genki
•
5.4K views
Web技術勉強会23回目
龍一 田中
•
775 views
ChefとPuppetの比較
Sugawara Genki
•
29.3K views
Chef SoloからItamaeに完全移行した話+
Tsuyoshi Torii
•
4.8K views
Management of Gems using Bundler.
Tamotsu Furuya
•
714 views
Puppetのススメ
Gosuke Miyashita
•
22.8K views
Cakephp tokyo5
ichikaway
•
1.9K views
Chef社内勉強会(第1回)
Yoshinori Nakanishi
•
15.6K views
Openstack chef-repo
Tomokazu Hirai
•
2.7K views
OrePAN と cpanm を使ったCPAN モジュールの部分ミラーの運用管理 :Yokohama.pm #8
Satoshi Ohkubo
•
4.1K views
Ember.js the Second Step
Dopin Ninja
•
232 views
入門 Chef Server #biglobetechtalk
BIGLOBE Tech Talk
•
8.1K views
Linux Server 冗長化~リアルタイム同期でラクラク運用~
miraitas
•
2.3K views
Chef の気まぐれ環境構築 〜季節の Capistrano を添えて〜 #jawsug
Takeshi Komiya
•
11.8K views
開発エンジニアがChefで テスト駆動サーバー設定してみた #biglobetechtalk
BIGLOBE Tech Talk
•
3.9K views
Similar to Using Chef for Infrastructure Automation of Ameba Pigg
(20)
大規模化するピグライフを支えるインフラ ~MongoDBとChefについて~ (後編)
Yuuki Namikawa
•
17.6K views
サーバの構築作業や運用管理を自動化する「Chef」 (CADC研究レポート発表LT)
Yuuki Namikawa
•
5.7K views
泥臭い運用から、プログラマブルインフラ構築(に行きたい)
Akihiro Kuwano
•
4K views
Rails初心者レッスン lesson1 3rd edition
Goh Matsumoto
•
1.3K views
Cloudstack user group meeting in osaka
Naotaka Jay HOTTA
•
947 views
Jenkinsとhadoopを利用した継続的データ解析環境の構築
Kenta Suzuki
•
6.3K views
Jenkinsとhadoopを利用した継続的データ解析環境の構築
VOYAGE GROUP
•
1.7K views
Aizu.LT::Tokyo #4
Taku Unno
•
988 views
Fluentd meetup #2
Tomohiro Ikeda
•
5.2K views
Operator reading and writing ( Operator SDK 編 )
ロフト くん
•
295 views
Web Operations and Perl kansai.pm#14
Masahiro Nagano
•
2.1K views
メッセージングプラットフォーム Zimbra の紹介とその活用術 - JJUG ナイトセミナー2013/3
日本Javaユーザーグループ
•
4.3K views
serverless
Akira Otsuka
•
3.2K views
プロビジョニングの今 ーフルマネージド・サービスを目指してー #cmdevio2016 #E
Shuji Watanabe
•
2.8K views
Devops @ Gengo -- AWS日本語初会議
Matthew Romaine
•
1.3K views
PHP on Cloud
Akio Katayama
•
2.3K views
2014_0206 aws startup_tech
Yosuke Tomita
•
365 views
RoRとAWSで100,000Req/Minを処理する
aktsk
•
8.7K views
20091119_sinatraを使ってみた
ngi group.
•
919 views
Isomorphic web development with scala and scala.js
TanUkkii
•
23.4K views
Advertisement
More from Yuuki Namikawa
(11)
bash(set)コマンドのオプション3選
Yuuki Namikawa
•
6.7K views
俺たちの自分戦略 - namikawa (DevLOVE Conference 2012)
Yuuki Namikawa
•
2K views
#kuwacon Lightning Talks
Yuuki Namikawa
•
1.2K views
パブリッククラウドサービスAmazon EC2の性能検証レポート (CADC研究レポート発表会用)
Yuuki Namikawa
•
2.7K views
中国のクラウドサービスについて (サイバーエージェント×クックパッド合同勉強会LT資料)
Yuuki Namikawa
•
2.2K views
JAWS-UGサミット2011春 LT資料
Yuuki Namikawa
•
931 views
Railsの運用について
Yuuki Namikawa
•
1.5K views
Webサーバ勉強会 (160-162:?)
Yuuki Namikawa
•
640 views
クラウドサービスAmazon EC2を活用した「SKIPaaS」構築事例
Yuuki Namikawa
•
1.6K views
Amazon EC2 を使ったSaaS運用事例(LT) - Tokyo Cloud Developers Meetup (20090409)
Yuuki Namikawa
•
1.3K views
Amazon EC2を使った実践SaaS運用事例
Yuuki Namikawa
•
1.9K views
Recently uploaded
(20)
Forguncy製品概要.pptx
フォーガンシー
•
50 views
ChatGPT触ってみた
infinite_loop
•
22 views
留信网认证可查【皇家霍洛威学院文凭证书毕业证购买】
32lkhng
•
2 views
☀️【麦吉尔大学毕业证成绩单留学生首选】
15sad
•
3 views
社内ソフトスキルを考える
infinite_loop
•
61 views
MC-800DMT intrusion detector manual
Vedard Security Alarm System Store
•
2 views
ChatGPT + LlamaIndex 0 .6 による チャットボット の実装
Takanari Tokuwa
•
44 views
JSTQB_テストプロセスの概念モデル.pdf
akipii Oga
•
178 views
Omnis
DaisukeFujita10
•
15 views
【DL輪読会】Egocentric Video Task Translation (CVPR 2023 Highlight)
Deep Learning JP
•
55 views
SoftwareControl.pdf
ssusercd9928
•
15 views
ネットワークパケットブローカー市場.pdf
HinaMiyazu
•
7 views
☀️【卡尔顿大学毕业证成绩单留学生首选】
15sad
•
2 views
HTTPの仕組みについて
iPride Co., Ltd.
•
8 views
CDLEハッカソン2022参加報告.pdf
SHOIWA1
•
8 views
統計学の攻略_統計的仮説検定の9パターン.pdf
akipii Oga
•
175 views
モバイル・クラウド・コンピューティング-データを如何に格納し、組み合わせ、情報として引き出すか
Masahiko Funaki
•
2 views
初学者のためのプロンプトエンジニアリング実践.pptx
Akifumi Niida
•
409 views
20230601_Visual_IoTLT_vol14_kitazaki_v1.pdf
Ayachika Kitazaki
•
17 views
AIEXPO_CDLE名古屋紹介
KotaMiyano
•
3 views
Advertisement
Using Chef for Infrastructure Automation of Ameba Pigg
Using Chef for
Infrastructure Automation of Ameba Pigg Yuuki NAMIKAWA Cyberagent Inc. [DevOps Days Tokyo 2012] 1
自己紹介 並河 祐貴 (a.k.a.
id:rx7) (株)サイバーエージェント所属 主にインフラエンジニア Blog: http://d.hatena.ne.jp/rx7/ Twitter: @namikawa 著書・寄稿多数 2
最初に謝罪 m(_”_)m
3
今日の話は・・・ DevOpsの細かい話はしません ごめんなさい 弊社でのサービス運用について Chefを匏用したプログラマブルなシステム基盤
んまぁ、つまりChefの話をしに来ました! 4
アメーバピグ (Ameba Pigg)
5
アメーバピグ (Ameba Pigg)
アバター仮想空間サービス きせかえ、おでかけ ゲーム(カジノ、つり、ライフ(庭)、アイランド) ユーザ数 1190万人 (2012/03, Amebaユーザの約半数) トラフィック (アバター/ゲーム) 約6 7Gbps / ピーク帯 同時接続ユーザ数 (アバター/ゲーム) 約40万ユーザ / ピーク帯 6
ピグでのシステム運用スタイル 職種は一応存在する アプリエンジニア(Dev?) インフラエンジニア(Ops?)... チーム・体制
各施策ごとに機能開発を担当するチーム 非機能部分(勯能・勣定・捓厾化)を担当するチーム 基本的にシステム運用は全員プレイ モニタリングも 障害対応も リリースやサーバ設定も 当番はありますが、基本的にエンジニア全員で担当します 7
皆がWinになれるか
8
アウトプットを高めるためのアプローチ 作業の捓厾化・自動化 施策・タスクの選択と集中 情報共有・コミュニケーション・マインド ...etc
9
システム運用する上でのツール 運用匳 の厢损でツールによる作業捓厾化 アプリケーションのデプロイ
サーバを増設する 設定厭 を卬 する ...etc アプリ/インフラ 方の匞 が必要 セットアップ、パフォーマンスチューニング、トラブ ルシューティング... 10
少し昔の話
11
僕が今の会社に入って 一番最初にやった仕事
12
ピグのWeb/APサーバを3台増設 その時に渡された手順書(1台分)
13
14
アメーバピグ・ピグライフの規模感 アメーバピグ サーバ台数: 約220台
(⇒ 150台まで削減予定) – Web/APサーバ40台 – Socketサーバ75台 – DB(MySQL+FIO)サーバ6台 x 2(スタンバイ) – API, Hadoop Cluster, Mobile, Smart Phone... – etc... ピグライフ サーバ台数: 約250台 – Socket(node.js)サーバ70台、 – DB(MongoDB)サーバ150台 – Statサーバ20台 – etc... 15
ピグのサーバ増設・運用拻 サービス・システム規模、共に右肩上がり 急な増設を求められることもあります ビッグイベントにあわせて30台入れちゃうとか 想定を捪えるスピードでサービスが成
するとか そこで「Chef」を使ってみました 16
それ、 クラウド使ったら でk(ry
クラウドも、運用を捓厾化する1要素 ミドルウェアの設定拻 や、プロセスの状態拻 も 含めて今回は「Chef」で自動化する話をします 17
Chefの概要 http://www.flickr.com/photos/jonathanbeard/3307862620/
18
「Chef」とは
サーバの構築作業やシステム拻 のツール システムのあるべき状態を設定する オープンソース、Ruby製 匏用実 37signals Engine Yard Rackspace hosting etc… http://www.flickr.com/photos/jonathanbeard/3307862620/ 19
サーバ構築・システム拻 自動化の必要勯
手作業では、そもそも時間がかかる 数十台、数百台のレベルになると・・・ 同 叓厎のサーバごとに環境挽 が発生したりとか サーバ匐入までのリードタイムが くなることで 機会損失を発生させることは避けたい 人為的なミスを抑えたい 作業 れ、ルーチン作業でのオ ミス 作業者によって、スキルにバラつき 運用中のサーバでのミスは特に無くしたい 設定に間違いがあっても自動化しておく事で即修正可能 http://www.flickr.com/photos/jonathanbeard/3307862620/ 20
それ、シェルスクリプトでよくね?
サーバの状態が記述できるフレームワーク 基本的なタスクが備わっている 拻 タスクの厍拾をできるだけ える Chefでは内部DSLを採用 Rubyでの柔軟な記述ができる プラットフォームの挽 が 厓できる ディストリビューションによってコマンドに挽 yumとaptとか http://www.flickr.com/photos/photomequickbooth/4062072718/ 21
Chefのシステムアーキテクチャ
Ruby CouchDB Solr Merb(Rack) CouchDB Chef-Solr Indexer Solr RabbitMQ Chef-Server RabbitMQ (Java) API (Erlang) Chef-Server HTTP(REST) WebUI JSON Chef-Client Chef-Client Knife Chef-Client Client http://www.flickr.com/photos/jonathanbeard/3307862620/ 22
Chefでの”主な”登場人物
Node Role Cookbook Recipe Template Attribute 時間の都合上、基本を簡単にご紹介します http://www.flickr.com/photos/jonathanbeard/3307862620/ 23
Node, Role, Cookbook
の関連(捁) nginxのCookbook サーバA APサーバの Passengerの Role Cookbook サーバB RubyのCookbook サーバC gitのCookbook Node Role Cookbook 拻 対拺の 拻 対拺の システムのあるべき形を サーバ グルーピング 定義する設定 http://www.flickr.com/photos/jonathanbeard/3307862620/ 24
Chefのリポジトリ構造 (Cookbook)
cookbooks/ 設定したいパラメータ(各サーバ 固有のものやデフォルト値など) |-- attributes を記述したもの |-- definitions |-- files |-- libraries システムのあるべき姿、 |-- providers つまり設定内容を実際に 記載したRubyスクリプト |-- recipes |-- resources `-- templates サーバへ配置する設定ファイルの テンプレートで、eRubyで記述する http://www.flickr.com/photos/jonathanbeard/3307862620/ 25
Recipe、Templateの一捁
./recipe/default.rb ./templates/default/ports.conf.erb package "apache2" do Listen <%= port %> action :install NameVirtualHost *:<%=port %> end template "/etc/apache2/ports.conf" do source "ports.conf.erb" ./attributes/default.rb owner "root" default[:port] = “8080" group "root" mode 0644 variables( :port => node[:port] ) end “port”:”80” “node A”の情報を保持 [Node Attribute], service "apache2" do [Run List] 等 action [ :enable, :start ] recipeの設定 end chef-client node A Chef-Server http://www.flickr.com/photos/jonathanbeard/3307862620/ 26
Chefで匏用できるResource
Cookbook File Mount Cron Ohai Deploy Package Directory PowerShell Script Erlang Call Remote Directory Execute Remote File File Route Git Ruby Block Group SCM HTTP Request Script Ifconfig Service Link Subversion Log Template Mdadm User http://www.flickr.com/photos/jonathanbeard/3307862620/ 27
Chefのちょっとイケていないところ
サーバのセットアップが面倒くさい 必要なのは最初だけなので、許容できる クライアントは簡単 名前がSEO的に致命的 Chef, Cookbook, Recipe, knife... リアルに調べ物をする時に困ります dry-runができない テスト環境が必須 (クラウド・仮想化が最適) http://www.flickr.com/photos/photomequickbooth/4062072718/ 28
Chefの運用 http://www.flickr.com/photos/jonathanbeard/3307862620/
29
Chefを活用したサーバ増設
PXE + kickstart + Chef 1. 事前に chef-server 側でNodeの設定が必要 2. サーバに線を繋ぎ電源ON、PXEブート開始 3. Label No.とNode名を入 し、OSインストール開始 4. 同時に chef-client のインストールと設定 5. kickstart の %post で chef-client を実 kickstartのcfgファイル 通常のOS インストールタスク 通信 client PXE+ksサーバ chef-clientのインストール OSインストール後 通信 chef-clientの設定 は直接通信 chef-clientの Chef-Server http://www.flickr.com/photos/jonathanbeard/3307862620/ 30
Chefを活用したサーバ増設
今はオンプレミスな物 環境を想定 クラウド環境でも応用可能 EC2だと、事前にAMIを作成しておいて、user-dataに Node名を指定して... (弊社のOpenStackクラウド基盤を活用したい) http://www.flickr.com/photos/jonathanbeard/3307862620/ 31
Cookbookの使い方
Cookbookの捁 ネットワーク設定 H/Wに必要な設定 – 主にH/W固有で必要なドライバやRAIDチェックスクリプト等 各サーバ共通で必要な設定 – DNS, NTP, LDAP, 監視ライブラリ, 鍵交換等 各Roleで必要な設定 NodeへのCookbook設定 RoleへのCookbook設定 { { "run_list": [ "run_list": [ "recipe[network::xxxxx]", "recipe[ameba-common::pigglife]", "recipe[hw::dell_r310]", "recipe[pigglife-mongodb::mongod]" “role[pigglife-mongodb]" ] ] } } http://www.flickr.com/photos/jonathanbeard/3307862620/ 32
Cookbookでのコミュニケーション
セットアップ手順のチェックをRecipe (Cookbook)という名のコードベースで バージョン拻 しているので、厢掇との挽分も卾 認しやすい 誰でもRead/Writeできる場所にあるので、みん なでメンテナンスできる http://www.flickr.com/photos/jonathanbeard/3307862620/ 33
Chefを使う上でやっていること
Script Resource は基本的に使わない 挬 でも実 される chef-client実 時のチェック・運用が面倒 挬 実 しても勬匑ないものしか使わない 過去、こんな感じで書いていました... script “script_name" do interpreter "bash" user “username" creates comp_dir + “script_name.done" code <<-EOH command ...... ...... EOH end http://www.flickr.com/photos/jonathanbeard/3307862620/ 34
Chefを使う上でやっていること
各nodeのChef適用は、chef-clientを実 tomahawk: 数のサーバで同 コマンドを実 “knife ssh”, “knife ssh_cheto” を使いたい NodeのAttributeの登録 JSONファイルを自動生成して登録・バージョン拻 アンインストール・削揄等の叀 も れずに Environment(0.10 )の活用 development, staging, productionの分別 http://www.flickr.com/photos/jonathanbeard/3307862620/ 35
これからChefを勉強する方へ
chef-solo が 匏 chef-server を必要とせず、ローカルにCookbookを 適用できる VMでテストとか練習とか Chefのインタラクティブシェル “shef” Opscode Platform (Hosted Chef) Chefのホスティング環境 (サーバ) 5 nodes までなら、無厄で試せる http://www.flickr.com/photos/jonathanbeard/3307862620/ 36
まとめと今後の展望
Chefを活用することで多くのサーバの増設・拻 にかかる負担を軽減 あるべき状態に自動で設定・維持できる ルールを少し覚えれば、誰でも簡単に設定が書ける 内部DSLなので、Rubyを覚えれば叀 も柔軟に書ける クラウド等の基盤サービスと連携して、インフラ 構築/運用の完全オートメーションができる仕組 みにしたい http://www.flickr.com/photos/jonathanbeard/3307862620/ 37
Advertisement