パラボラアンテナと星の日記

あることないこと

dockerで遊ぶときにEC2で動かす 俺の2015年秋

この記事は、最後まで読んでも特に新しいことは書いてありません。

TL;DR

dockerで遊ぶとき、EC2も良いっすよ

dockerで遊ぶとき

docker-machinecoreos-vagrantも良いツールなのですが、個人的にはEC2に落ちついてきました。

1つのホストの中にコンテナをぽこぽこ立てたり、マルチホスト環境とか作ったりして遊んでいます。

サンデープログラミングが捗るという感じです。

最近のことをメモがてらまとめておきます。

戦略

遊ぶ時の戦略(?)は、こんな感じです。

  • 準備1: CoreOSで起動設定(LaunchConfigurations)を作っておく
    • (作業時間2分以下)
    • AMIはこのへんから、適当に。
  • 準備2: AutoScalingGroupを作っておく
    • (作業時間2分以下)
    • このとき適当にロール当てておくと後でS3とかECS周りで便利(無くてもOK)
  • 遊び始め
    • AutoScalingで 手動で 希望インスタンス数を 0 -> N(N>=1) する
    • (待つこと1〜3分)
  • 遊ぶ:
    • 自由に遊ぶ!!!
  • 遊び終了

遊んだ後にかたづけしないと課金がずっと続く パターンのやつです。

とくに気取った自動化はやっておらず、 「忘れずに0に戻す」 を実践して参ります。

CoreOS、Immutable度高い

CoreOSの場合、どうしても最初に設定されているべきことはuser-datacloud-configを書く必要出てきます。

ちゃんとcloud-config書いておけば、こころ置きなく遊んだ後にシャットダウンできるという感じです。

「遊んだ後にシャットダウンする」と「cloud-config」は相性良い(気がする)。

開発環境としてのVagrant(+VirtualBox)docker-machineとの対比

docker-machine(boot2docker)との対比。

  • メリット
    • 自分の回線都合でdocker pullが遅いとかいうことがなくなる
    • 自分のメモリ都合でVMが作れないということがなくなる
    • production環境に近い
    • ECSが試せる
    • VirtualBox固有のハマりどころにハマらない
  • デメリット
    • 金がかかる(t2.microを1ヶ月動かすと2000円ぐらいかかる)
    • セキュリティグループだるい
    • 起動が遅い

「金がかかる」に関しては、無料利用枠があるうちは無料ですね、私はまだ適用期間内なのでなんとか頑張っています。

「セキュリティグループがだるい」に関しては、まぁproductionで使う時もだるいので…

自分の場合、メリットの1番目が大きくて、わりとdocker pullが遅いのがイライラさせるとこだったんです。

ファミレスとかでテザリングを使う人間にとってこれはデカい。

あと、PCにどれくらい空いているメモリがあるか、ということでも話が違ってくると思う。