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

Docker meets AWS OpsWorks

takipone
April 11, 2014

Docker meets AWS OpsWorks

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

takipone

April 11, 2014
Tweet

More Decks by takipone

Other Decks in Technology

Transcript

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

  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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

  12. 出来そう!
    classmethod.jp 12

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide