LoginSignup
5
5

More than 5 years have passed since last update.

JAWS-UGコンテナ支部 #4

Posted at

official

connpass

好きです ECR (仮) @orih_y さん

  • slide
  • ECRの紹介
  • ECRとは、フルマネージドDockerレジストリ
  • デフォでHTTPS
  • docker pull でdocket.hubと同じ様なやり方で取得可能。
  • 価格、1レジストリ、30レポジトリ、200イメージ、Ntag、50GBを運用した場合、??たぶん安い。
  • 2016-02-05現在、東京リージョンにはない。

お前のDockerイメージはまだ重い〜体脂肪一桁のDockerイメージを目指して〜株式会社サイバーエージェント @stormcat24 さん

  • slide
  • Dockerイメージの減量について
  • 目安として1GBのDockerイメージをpullするのに約60秒かかる(DockerHubの場合、約75秒)
  • アプリケーション内ではコンテナ1つの構成では成立しないので、60秒では厳しい(遅い)。
  • イメージが大きいと、イメージのビルド時間、イメージのアップロード、ダウンロード時間が増える。
  • 運用に及ぼす影響
    • デプロイ時間
    • AutoScalingで追加されたサービスインする時間が増える
  • 軽ければ軽いほど価値がある

イメージを軽くする方法

  • イメージのレイヤー数を減らす
    • レイヤー自身もイメージなのでレイヤーを減らせばサイズも減る
    • RUN命令をチェーンする。(シェル実行を&&で繋げる)
  • 産業廃棄物(build時に生じた不要なツールやファイル)を適切に処理する
    • yumやapt-getのゴミ、ビルドに使用したソース、git、成果物だけ残すことを意識する
  • ボリュームマウントを活用する
    • ホストに必要なディレクトリを配置し、コンテナにマウントする事でイメージを削減する。
    • ホストに依存するため、ポータビリティは落ちる。
  • DockerHub
    • イメージのサイズを確認出来る。
    • 必ずしも綺麗になってるわけではないので、サイズ確認が重要。
    • メジャーどころはubuntuやdebianが多い
    • Dockerfileのノウハウだけ頂いて、ベースイメージだけ変えるのも選択技
  • scratch  * 現存最小のDockerイメージ  * shもlsもない  * amazon/amazon-ecs-agent(9MB)のベース  * 全部セルフサービス
  • busybox
    • 元組み込み系Linuxのデファクト
    • シェルはash
    • 扱いは難しい(中でビルド出来ない)
  • AlpineLinux
    • 2MB
    • Busyboxベース
    • APKというパッケージ管理ツールがあり、Bubyboxよりは扱いやすい
    • alpine-java(50MB), alpine-node(15MB), ruby(10MB) ,go(50MB)と派生が増えてきた
    • タイミング次第で置き換えたい。
    • nginx 150MB -> 20MBくらいの容量削減。
    • 80%くらいイメージ容量削減出来る。
    • Web/APIのECSタスク4つで200-300MBくらい1分くらいでpull+run出来る。
  • トレードオフ
    • Dockerfileの職人芸化
    • Alpineのレポジトリにあるパッケージのバージョンアップが遅い
  • ImageLayer.io
    • Dockerイメージを可視化してくれるツール
    • DockerHubと連携
    • 太ってる箇所を一目でわかる
    • GithubとDockerHubで公開されているので、独自レポジトリで使えるが、レジストリが固定化されているので、forkして変更すれば使える。
  • アプリケーションを小さくする
    • コンテナ時代ではサイズの小ささも問われる
    • Docker芸人には各言語のビルドツール(Node:npm、Java/Scala:Marvenとか)の知識も問われる -> Docker有識者だけでは成立しない。
    • ライブラリスコープの見直しの為のリファクタリング
    • 静的ファイル、外部に出せそうなのは、ボリュームマウントへ

実践ECS-CLI(デモ) @pottavaさん

  • slide
  • サンプルアプリ
  • ECSをコマンドラインから操作するツール
  • EC2インスタンス操作を隠蔽して使える
  • DockerComposeを使ってるかのようにECSを操作出来る
  • Dockerを使ったローカルでの開発から本番環境へのデプロイまで
  • 実際に開発してAWSにデプロイするには
    • Dockerレジストリが必要 -> ECRでOK
    • Dockerホストが必要 -> ECS-CLI/docker-machine
    • オーケストレーション -> Consul, DNS
    • ログ -> ??
  • ECS-CLIを使うには
    • 本番環境で使用するにはまだ未熟
    • ELBとの連携が出来ない
    • docker-composeが使えたら便利なのに・・・

CloudwatchEventを使ったECSのAutoScaling クラスメソッド株式会社 千葉 淳さん

  • slide
  • ECSはコンテナのAutoScalingは未対応なので、CloudwatchEventで無理やりAutoScalingさせた話
  • CludwatchとSNSの違いは設定が楽なのと、APIを使用してリアルタイムにトリガー出来る
  • 課題  * 動作が遅い(最大5分)
    • コンテナ単位でのAutoScalingは出来ない(ECSクラスタ単位)。コンテナの状態把握が出来ないから。・・・Datadog使えば出来るのでは?
5
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
5