ほげほげふがふがもぐもぐ。

ゆるふわにかいていきたいです。

JAWS-UG コンテナ支部 入門編 #4 いってきたメモ&感想

JAWS-UG コンテナ支部 入門編 #4 いってきたメモ&感想

https://jawsug-container.connpass.com/event/51776/

  • いってきたので感想が薄いけれどメモを残しておく。

19:00-19:40 『DockerとDockerHubの概念と操作』 zembutsu さん

https://www.slideshare.net/zembutsu/docker-container-image-command-introduction-2017-03

  • 今日伝えること
  • 技術と仕様
    • 技術
      • コンテナ
    • 仕様
      • docker
  • どうしてdocker?
    • サービス、アプリを作ったり、動かしたい
    • でも、みんな手元とリモートの環境違ってて困ってない?
      • そこでdocker
  • コンテナ?
    • 20世紀最大の発明とも言われてる
  • linux kernelのコンテナ化技術
  • docker engine とデーモンの変遷
    • ライブラリ:1.11〜
      • runC
      • containerd
  • dockerはサーバ、クライアントモデル
  • コンテナのプロセス
    • コンテナ内部では、独自のプロセス空間が別
      • あくまでのコンテナの中だけ
  • コンテナのファイルシステム
  • dockerの仕様について
    • dockerのイメージとコンテナの違い
      • ここが難しい
    • image
      • イメージ・レイヤの積み重ね
      • 読み込み専用
      • あくまでファイルで、メタデータの固まり
    • コンテナ
      • イメージ・レイヤを1つのファイルシステムとみなうす
      • 読み書き可能なイメージレイヤをもつ
    • 普通の仮想化との違いがあるので上記を気をつけると覚えやすい
  • dockerコンテナの実行とは
  • ここまでのまとめ
    • docker engineはdokcerイメージのファイルとカーネルの技術
  • でも、コンテナって前からあったよね?
    • ちょっと違うところ
      • docker hubがあるところ
  • [docker クライアント] -> run -> [engine] -> pull -> [docker hub]
  • イメージの自動構築機能
  • コマンドでコンテナ操作
    • イメージ操作コマンド
      • 最近コマンド体系が変わった
  • よく使うコマンド
    • docker image pull
    • docker image ls
      • ローカルイメージ一覧取得
    • docker image run
      • イメージを実行
    • docker container ls
      • コンテナの状態一覧表示
    • docker image build
      • イメージの自動構築
      • Dockerfileからの構築ができる
    • docker container commit
      • コンテナ用レイヤをイメージ化
    • docker container inspect コンテナの詳細情報表示
    • docker image inspect
      • イメージの詳細情報を表示
    • docker container diff
      • イメージとの差分
    • docker image history
      • イメージレイヤと履歴の表示
    • docker login
      • dokcer hubにログイン
    • container rm
      • コンテナ削除
    • image rm
      • イメージ削除
    • container prune
      • 不要イメージをまるっと削除
    • container prune
      • 不要イメージをまるっと削除
    • system prune
      • 不要コンテナ、イメージ、ネットワーク、ボリューム削除
      • 最近便利
    • system info, system df
      • これらも便利
  • 詳しくはqiitaにまとめてある
  • 運用麺で気をつけたいこと
    • copy in write
      • devicemapper
    • ボリュームはコンテナ用のレイヤとは分離
      • イメージレイヤの
    • 用途に応じた技術選択が鍵
  • 振り返り
    • コンテナは技術、dockerは仕様、hubは中継点、コマンドでコンテナとイメージを操作
  • 何か気になるところがあれば

Impressions

  • 最近のことを踏まえて、最新の情報と簡単な歴史を踏まえてまとめられていてわかりやすかった
  • スライドまた読み返したい

『ECS 概要/アップデート情報』AWSJ 浅野さん

[slideあったらはる]

  • 自己紹介
  • 2016/12 - 2017/03のアップデート
    • OSSBloxリリース
      • ECSをカスタマイズしたい人向けのツール
        • 例:カスタムスケジューラを作りたい
      • 構成
    • windows serverコンテナ対応開始(β)
    • task placement policy 導入
      • タスクの配置をより柔軟にカスタマイズできる
      • task placement strategy
    • ECRが docker iamge manifest v2サポート
    • コンテナインスタンスのドレインをサポート
      • 他のタスクに影響を与えずにクラスタからコンテナインスタンスを削除可能に
      • blogに自動化の実装例ものってる
    • ECS-optimized AMIの更新通知がamazon SNSで受信可能に
  • amazon ECR
    • フルマネージドで使える docker レジストリ
      • 特徴
        • フルマネージド
        • コンテナホストと同じリージョンにレジストリを作成することで、push/pullのNWを遅延を低減
      • セキュリティ
        • https経由で通信
        • IAMと連携可能
      • amazon ECR用のクレデンシャルヘルパーを提供している
  • まとめ
    • フィードバックまってる

Impressions

  • ECS周りはそんなにおってなかったのでよかった

『とある社内ビックデータ基盤にバッチ用コンテナ環境を構築してみた』Thiro1123 さん

http://www.slideshare.net/HiroshiToda2/ss-74105091

  • 自己紹介
  • なんで導入することになったのか?
    • 背景と課題(オンプレバッチサーバ)
      • 常時300以上のジョブが実行されている
  • プロジェクトで発生してた課題
    • 日々バッチがうまく動作しない
    • アップデートしたら他のバッチが動かないなど
  • どんな状況か
    • 動いてるバッチ数が半端ない
    • 管理してるサーバも半端ない
    • ジョブ管理ソフト(JP1)も管理が追いつかない
    • アラートやモニタリングも追いつかない
      • まず手始めに
  • 現在は、新しいことしたらその倍の問題が発生しない状況
  • やりたいことは?
    • 各アプリのライブラリを依存しないように
  • バッチ単位でコンテナを用意
  • 現場からは
    • オンプレにある管理サーバからも操作できるようにしてほしい
  • バッチの実行フロー
    • 管理サーバーからはcurlでlambdaをkickする感じに
      • JP1 -> lambda -> sqs -> ECS
  • 現在は
    • 今回の仕組みを使って、オンプレからAWSに移行してる最中
  • Q&A
    • ログはどうしてる?
      • cloudwatch logsに標準出力を流すようにできるだけしてもらうようにしてる

Impressions

  • サーバー側が複雑怪奇に絡み合ってるものを紐解いて、うまい具合にコンテナのうまみを活かして改善してていい話だった

『これからECSをはじめる人のための ECSベストプラクティス』NTTソフトウェア 須藤さん

https://www.slideshare.net/sudoyu/jawsug-ecs-best-practice

  • 自己紹介
  • NTT x docker? , NTT x container ?
    • 実は結構深いつながりがある
    • dockerエンジンメンテナ、etcdメンテナ、 docker meetup tokyoオーガナイザーなどを NTTから排出してる
    • docomoビッグデータ解析システムで、k8sと絡めて利用してる?らしい
  • こんなシステムを構築
  • アプリケーションのデリバリサイクルを早められる
    • docker imageの利用
      • アプリケーションとインフラの責任分界点が明快で、同一性が担保される世界
    • ECR + ECS
      • インフラがマネージドサービスになるので、劇的に負担が減る
    • インスタンスとサービスの分離ができる
      • ECS cluster + service
        • サービスとインスタンスが粗結合になり、マイクロサービス追加がより用意に
  • 運用コストを抑えられる
  • ECS導入のためのアプリケーション設計の勘所
    • 永続化データの設計
      • なるべく docker volumeを使わなくていいように設計する
      • ファイルはS3、ログはcloudwatch logsに、などなど
    • ログ設計
      • awslosログドライバの利用が基本
        • 後から分別したかったら、lambdaで分別するとか
      • fluentdなど、他のログドライバの検討
    • パス設計(URL設計)
      • ALBのパスベースルーティングの利用
    • データソース設計
    • セッション管理
      • ALBのsticky sessionを使う
        • 一番お手軽、ただしtask停止時にはセッションが切れる
      • State storeを使う構成にする
  • 環境構築をする時に注意すること
    • コスト最適化
      • ECSはspotfleetとの相性が非常に良い
      • spotfleetには複数インスタンスタイプを選ぶ
      • 入札アドバイザーや、スポットアドバイザーも確認
    • 最新のECS-optmized AMIの利用
      • DockerやECS agentのバージョンアップで更新される
      • 脆弱性対応が通知されたら最優先でクラスタの更新を
  • ECSでのService discovery
    • taskの変動に応じて、ターゲットグループの情報をメンテナンスしてくれる機能がある
      • 構築順序に注意が必要

Impressions

  • わかりやすさがあり、よかった
  • 多くの場合、インスタンスの利用コストよりエンジニアの稼働時間のが高い
    • ここをきちんと意識とかしていきたい

ECS導入における3つの明確な傾向 jhotta さん

http://qiita.com/jhotta/items/c6e956ca71b6f1f17de0 (スライドではないがベースはこれ)

  • datadogの調査の傾向について
  • datadogでは毎年導入に関する記事を出してる
  • 現在、datadog user 10%で dockerを使ってる
  • 3つの明確な傾向
    • トレンド1:ECSは静かに、着実に人気を獲得してる
      • ECSはバズる仕組みを持っていない
        • OSSとかではないのがやはり強い
    • トレンド2:コンテナの増加は、問題の増加
      • イメージを50以上使い始める場合、オーケストレーターが重要
    • トレンド3:オーケストレーション=多産家系
  • まとめ
    • 多くの企業が導入を検討してる
    • コンテナオーケストレーションはコンテナ界隈のメインストリームになってくる
  • 宣伝

Impressions

全体感想

  • zembutsuさんの話はさすが感でわかりやすかった
  • Thiro1123さん, 須藤さんの話もイメージしやすかったり、コンテナ化するケースでのメリット話も納得できて面白かった
  • 現状の担当プロダクトでもちょっとずつECSのうまみが使えるとことは使っていきたいなー感