Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Docker meets AWS OpsWorks

Ecd0c945f6911dbf75358a8addee15f7?s=47 takipone
April 11, 2014

Docker meets AWS OpsWorks

Docker Meetup Tokyo #2でお話する(した)スライドです。

Ecd0c945f6911dbf75358a8addee15f7?s=128

takipone

April 11, 2014
Tweet

Transcript

  1. Docker  meets AWS  OpsWorks   Docker  Meetup  Tokyo  #2 classmethod.jp

    1 2014/04/11 クラスメソッド株式会社 ⼤大瀧隆太 #dockerjp
  2. classmethod.jp 2 ⾃自⼰己紹介 •  ⽒氏名  :  ⼤大瀧隆太  @takipone •  ポジション

     :      AWSコンサル部    エンジニア  /  研修講師 •  得意分野  :      ネットワーク  /      デプロイツール •  好きなAWSサービス      Amazon  Route  53 classmethod.jp 2
  3. classmethod.jp 3 会社の紹介 AWSとiPhoneアプリの ブログの会社です。 http://dev.classmethod.jp/

  4. Dockerコンテナでのアプリデプロイ •  SSHでDockerホストにログイン •  Dockerfileに  “ADD  /src  /docroot”  を記述 • 

    docker  build  . •  docker  run classmethod.jp 4 本番環境では、誰が実⾏行行するべき? →デプロイフレームワークが欲しい!
  5. classmethod.jp 5 AWSのデプロイサービス http://aws.amazon.com/application-‐‑‒management/ 今回はコレ!

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

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

    冪等性を確保せよ!
  9. OpsWorksのCookbookリポジトリ classmethod.jp 9 •  DockerはImmutableな使い⽅方をしたいとこ ろなので、Chefの冪等性にとらわれず くらいカジュアルに使う⽅方がシアワセになれ ると思います。 “DevOps  Automation”

    Amazonさんが無償で⽤用意してくれる スクリプトに⽑毛が⽣生えたサービス
  10. OpsWorksのライフサイクルイベント classmethod.jp 10 ※  後⽚片付けのためのUndeploy, Shutdownイベントもあります。 Setupイベント  :    

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

     OS/ミドルウェアのインストール Configureイベント  :      OS/ミドルウェアの構成 Deployイベント  :      アプリケーションコードの配置 package/serviceリソース template/fileリソース  &  notify template/fileリソース  &  notify Dockerインストール/アップデート 基本コンテナイメージの取得 アプリのデプロイ、コンテナ起動
  12. 出来そう! classmethod.jp 12

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

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

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

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

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

  18. 今後の展望 •  コンテナ数や構成が固定なので、変更更できる ような仕組みを。 •  docker  run/rmしか使っていないので、 Dockerぽいオペレーションを組み⼊入れたい。 •  execリソースじゃない、かっこいいレシピの

    ためにchef-‐‑‒docker  Cookbookを利利⽤用したい。 – https://github.com/bflad/chef-‐‑‒docker •  随時ブログでアウトプットしていきます! classmethod.jp 18
  19. まとめ •  Dockerコンテナのデプロイは、いくらでもや りようはあるけど、有りものを使うのが楽。 •  AWS  OpsWorksはChefを使うので敷居が⾼高 そうに⾒見見えるかもしれないけど、カスタマイ ズが効くし、以外と簡単に使えます。 classmethod.jp

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