now maintainance mode
 now maintainance mode2-5

EMRの対抗技術でECSをみて3週間
ようやくやりたいことがスムースにできるようになってきた。

ひさしぶりにiPhoneを買いたくなった

すこし本格的に 機械学習をやろうとして 3か月ぐらいまともにプログラムが組めてない
サーバーを立てて Hadoopをどうたらこうたら
クラスタ林gで100台ぐらいのPCを1分借りたいだけなんだが Amazon EMRなどを使えばいいというはなしはおいておくと
やれECRだECSだと様々な単語が飛び出し
やれしらべたりなんだりで
完全ローカルな環境にレジストリ立てるのに外部に公開したWebサーバが必要な場合があるなど
めちゃくちゃ感があるので(Docker HUBなどをつかうのもためした)

環境構築するだけで 初見だとWebサーバの構築などに慣れていて 3か月くらいかかるなと
クラスタリング設定したり
いろんな他のソフトの設定をしたり かなりたいへんで
ようやくJupyter notebookにもどって
機械学習のスクリプトをためせるかなみたいな。

EMRでやめときゃよかった まぁ というわけでこの辺はまだドキュメントも少ないので
結構環境構築に慣れていても 3か月は欲しい

Bigdata化しない機械学習の環境なら1人月もあればいい

Amazon純正のECRがいまいち難しいので
場合によっては SSL環境下のDocker Registryは自分で建てたほうが良いかもしれない
問題は Docker Registry が PULL専用の場合 CloundFrontで大規模配信で1024コンテナとかを短時間で配信しきれるかどうか
調査しておかなければいけないことは根深い
(さすがにコンテナを1024個デプロイするとなるとCloundFront級でないときつい 何が使えるか調査)

実験して確認するから 肝心の機械学習のコーディングできやしねぇ

いきおいDocker Registryをローカルに抱えたAMIでスタートしてぇ
さすがに1000台は客がついてから実験に入るとしても
100台ぐらいはデモンストレーションできないとだめだろうなと(ま少ない台数でクラスタリングでBigdataするアルゴリズムもあるけどそれはそれ)

調査する内容が多い(ダメだというにも調査は必要なために 良いプラン ダメなプランわける調査が長い)

ECR Amazon Elastic Container Registry

(ECR) is a fully-managed Docker container registry
思っていたのとは少し違い、やはり大規模向けかとおもう。
ECSとの連携を確認するが、やはり少々使いにくさは残る。
Dockerとは思った以上にはよく連携している。

ECS Amazon Elastic Container Service

コンテナ系サービス vCPU単位で実際に使う計算量を先に指定してコンテナを複数立ち上げるイメージ or EC2

大規模向けというのもあるのだろうが
個人にはとっつきにくさがある。
Dockerとは違うところが多いので、個人ならEC2かEMRとは思うが
EMRの対抗技術として、興味深く確認中
とにかくとっつきにくい
とはいえであるがゆえにブロガーとしては面白い

EMR

EC2のクラスタリングサービスでECSのEC2よりは使いやすさを感じる
とはいえしょっぱなでトラブルをくらい(その後は安定)
良し悪しはあるが難しい
EC2で複数台を借りるより割引があるので
並行演算で多数使うならいいかもしれない。

Amazon ECS タスクに Amazon ECR イメージリポジトリからイメージを取得することを許可する

補足 よくある事項

Task Lifecycle – Amazon Elastic Container Service
Amazon ECSのタスクで表示されるステータスについて
PROVISIONING
  ↓
PENDING
  ↓
ACTIVATING
  ↓
RUNNING

※ECSとECRの連動は結構手間、セキュリティー系を結構設定しないとImageのPULLに失敗する
Docker hubやプライベートリポジトリをEC2に立てたほうがスムーズな場合がある(調査 8h)

※ログの保存先がS3ではなくCloudWatchなのでパーミッションが必要

雑感

RedhatだったりUbuntuだったりLinuxの細かいディストリビューションの違いよる細かい違いに
苦労する。
1つ1つ原因を調べて対処するころにはメーカーが対処が終えて
やんなきゃよかった3週間みたいな悩みを抱える。

クラスタリングとはいわないけど負荷分散は昔からやっているエンジニアが
Hadoopという個別技術などを前提として

ロールの設定だったり、CloudWatchの設定だったり
それなりに手間なので、コンテナイメージの作成以外の
雑多なタスクは頼める人がいるならお願いするのが吉
 
EMR,ECS,ECRを2週間使ってみて感想を書く。
(あと1週間ぐらい調査が必要)
すると、思いもよらない話はいろいろ出てくるので、それについては下調べをして
技術職としてスキル対応したうえで、大丈夫そうか?とか将来性を加味すると
まぁ2週間ぐらい。

つかってみないとわからないとか
やってみてだめだと、気を取り直してまた明日とか 実際は1か月あると楽
 
簡単にサンプルがあったりすると動かなかった場合にメーカー問い合わせなどまで考えないといけないとなると3か月コース
※レポートにまとめて報告とかだと執筆作業で+2週間
簡単に雑感報告+αの見積もり

一時的なトラブルで npm install ijavascriptで カーネルがスタートしないケースがあるみたいで
こういうのをたとえばMSDNとかだと
メーカーに問い合わせができるんだけど サポート契約1個とられるんだろうなぁと

掲示板で聞いたら たすけあいだから無料
 
まぁ、ちょっと他の作業をしていて
そういえばと設定見直して、インストールやり直してすぐに解決はしたけど
 
やっぱりネットっていろいろ教えてもらえるからすごいなっておもった。

料金 – Amazon ECS | AWS

Amazon Elastic Container Service (ECS)
に2つの料金モデルがある。
1つは従来のEC2課金で 自分で好きなEC2を借りてそこで自分でクラスタリングを行う方法

それに対してFargate課金が追加された

大雑把に言うと
vCPU課金で 1024ポイントのCPU(1時間当たりの1vcpuの能力が 1024ポイント)に対して0.05USDぐらいの課金となっており
膨大な演算能力を10分だけかりたい のような Dockerクラスタモデル向きな課金方式となっていた

他方 EC2は t2.mediumなどは0.06USDとFargateよりも高いが 2vCPUあるなど使い方によってはFargateなどよりも安くなるが
使い方によってはFargateの方が便利となる(10台借りれば20vcpu)だが管理工数はEC2並み FargateはDocker並みで管理工数を気にすることなくvCPUを並列に借りられる

ちょっと調べ物をした。
バグが出ていて、バグのログが出ていて数百行のログが出るけどなにしてるかわからない。
2週間調べて
対処法とか
どうして?とか 他のOSでもでるか?とか
対処そのものは2数行だけど
じゃぁ、ほかのやり方は?とか調べると
対処法でA4 1枚
調査経緯や、影響範囲で A4 3枚ぐらい。
実費なら大したことないけど
外注に調査依頼をスポットで出したら
 
そもそも受けてもらえない。という話は置いておいて
たまたま運よくスポットで受けてもらえたら
実働2週間 見積もりだと 諸経費があるから 1人月 売値 スポット
企業同士だと5万10万とかいうはなしもあるけど
 
まぁ、リストプライスだと ざっくり1案件100万
特定のOSでしかおきない、特定の状況で
歴史的経緯とか、様々まとめて。ちょっとだしておわり。
 
MSレベルで自社商品でも 5万かそこら消える
OSSで調べてもらって対処法付き
対処法が公式パッチがなければ、調査機関のパッチが出てくるレベル。2週間
まぁ100万平均だろうなと(影響範囲の調査やパッチなしなら 2週間なら会社価格で数十万だろうなと)
2回目からはさくっととれるけど
初回はOSSだといろいろ調べなきゃいけないからな。そういう意味では1日で5万とかも多いのかもな
でもスポットで5万も困るだろう。
 
まぁでも原因調査って 2種間から1か月 ざっくり 100万なんだろうなぁと(企業ベース、個人なら)

4 sudo yum groupinstall “Development Tools”
5 git clone https://github.com/zeromq/libzmq.git

13 amazon-linux-extras install epel
14 sudo amazon-linux-extras install epel
15 sudo yum install npm

16 git clone https://github.com/notablemind/jupyter-nodejs.git
17 cd jupyter-nodejs
18 mkdir -p ~/.ipython/kernels/nodejs/
19 npm install && node install.js
20 npm run build
21 npm run build-ext

dudo yum install python2-pip
export LD_LIBRARY_PATH=/usr/local/lib

How to Install Pip on Ubuntu 18.04 | Linuxize

料金 – AWS Fargate | AWS

per vCPU per hour 0.05056USD
per GB per hour 0.00553USD

Amazon EC2 (Linuxなど)サーバ単位の課金
Amazon Fargate(ECR) (Dockerなど) Anazon ECRをベースとしたコンテナ単位の課金