Slide 1

Slide 1 text

Docker  meets AWS  OpsWorks   Docker  Meetup  Tokyo  #2 classmethod.jp 1 2014/04/11 クラスメソッド株式会社 ⼤大瀧隆太 #dockerjp

Slide 2

Slide 2 text

classmethod.jp 2 ⾃自⼰己紹介 •  ⽒氏名  :  ⼤大瀧隆太  @takipone •  ポジション  :      AWSコンサル部    エンジニア  /  研修講師 •  得意分野  :      ネットワーク  /      デプロイツール •  好きなAWSサービス      Amazon  Route  53 classmethod.jp 2

Slide 3

Slide 3 text

classmethod.jp 3 会社の紹介 AWSとiPhoneアプリの ブログの会社です。 http://dev.classmethod.jp/

Slide 4

Slide 4 text

Dockerコンテナでのアプリデプロイ •  SSHでDockerホストにログイン •  Dockerfileに  “ADD  /src  /docroot”  を記述 •  docker  build  . •  docker  run classmethod.jp 4 本番環境では、誰が実⾏行行するべき? →デプロイフレームワークが欲しい!

Slide 5

Slide 5 text

classmethod.jp 5 AWSのデプロイサービス http://aws.amazon.com/application-‐‑‒management/ 今回はコレ!

Slide 6

Slide 6 text

AWS  OpsWorksとは •  AWSのデプロイサービスはEC2や他のサービ スとの連携、アプリケーションコードのデプ ロイなどの⾯面倒を⾒見見てくれる。 •  OpsWorksはChef(chef-‐‑‒solo)をプロビジョニ ング基盤にしているため、Chefの知識識があれ ば詳細なカスタマイズが可能! classmethod.jp 6 参考 •  https://aws.amazon.com/jp/opsworks/ •  http://www.slideshare.net/ AmazonWebServicesJapan/ops-‐‑‒ worksintroduction-‐‑‒20130625

Slide 7

Slide 7 text

OpsWorksのCookbookリポジトリ •  https://github.com/aws/opsworks-‐‑‒cookbooks classmethod.jp 7 •  最近BerkShelfに対応したので、Opscodeの コミュニティCookbookが導⼊入しやすくなりました!

Slide 8

Slide 8 text

OpsWorksのCookbookリポジトリ classmethod.jp 8 •  Chefだと... と、naoya_̲itoさんに怒怒られそう。 •  OpsWorksのRecipeでは、結構ざっくり executeリソースを多⽤用している模様。 (多分冪等性の検証はしていると思いますが) 冪等性を確保せよ!

Slide 9

Slide 9 text

OpsWorksのCookbookリポジトリ classmethod.jp 9 •  DockerはImmutableな使い⽅方をしたいとこ ろなので、Chefの冪等性にとらわれず くらいカジュアルに使う⽅方がシアワセになれ ると思います。 “DevOps  Automation” Amazonさんが無償で⽤用意してくれる スクリプトに⽑毛が⽣生えたサービス

Slide 10

Slide 10 text

OpsWorksのライフサイクルイベント classmethod.jp 10 ※  後⽚片付けのためのUndeploy, Shutdownイベントもあります。 Setupイベント  :      OS/ミドルウェアのインストール Configureイベント  :      OS/ミドルウェアの構成 Deployイベント  :      アプリケーションコードの配置 package/serviceリソース template/fileリソース  &  notify template/fileリソース  &  notify 任意のChef  Recipe をキックできる

Slide 11

Slide 11 text

OpsWorksのライフサイクルイベント classmethod.jp 11 ※  後⽚片付けのためのUndeploy, Shutdownイベントもあります。 Setupイベント  :      OS/ミドルウェアのインストール Configureイベント  :      OS/ミドルウェアの構成 Deployイベント  :      アプリケーションコードの配置 package/serviceリソース template/fileリソース  &  notify template/fileリソース  &  notify Dockerインストール/アップデート 基本コンテナイメージの取得 アプリのデプロイ、コンテナ起動

Slide 12

Slide 12 text

出来そう! classmethod.jp 12

Slide 13

Slide 13 text

と思ったら。。。 classmethod.jp 13

Slide 14

Slide 14 text

classmethod.jp 14 まんまのブログがあった! http://jaredmarkell.com/ deploying-‐‑‒docker-‐‑‒with-‐‑‒opsworks/

Slide 15

Slide 15 text

classmethod.jp 15 試してみました。(スタックの設定) コンテナごとに Dockerイメージを指定

Slide 16

Slide 16 text

classmethod.jp 16 試してみました。(レイヤーの設定)

Slide 17

Slide 17 text

classmethod.jp 17 SSHで⼊入るとこんな感じ。 コンテナできてます!

Slide 18

Slide 18 text

今後の展望 •  コンテナ数や構成が固定なので、変更更できる ような仕組みを。 •  docker  run/rmしか使っていないので、 Dockerぽいオペレーションを組み⼊入れたい。 •  execリソースじゃない、かっこいいレシピの ためにchef-‐‑‒docker  Cookbookを利利⽤用したい。 – https://github.com/bflad/chef-‐‑‒docker •  随時ブログでアウトプットしていきます! classmethod.jp 18

Slide 19

Slide 19 text

まとめ •  Dockerコンテナのデプロイは、いくらでもや りようはあるけど、有りものを使うのが楽。 •  AWS  OpsWorksはChefを使うので敷居が⾼高 そうに⾒見見えるかもしれないけど、カスタマイ ズが効くし、以外と簡単に使えます。 classmethod.jp 19

Slide 20

Slide 20 text

classmethod.jp 20 •  ありがとうございました!