2019/7/24Alpaca JapanShinya SasakiAlpacaJapanの機械学習環境になぜRancherが必要なのか?
View Slide
Who?Shinya SasakiHead of Infrastructure Engineeringat AlpacaJapan Co., Ltd.Osaka, Japan2
Alpaca Japan33 3金融 x 機械学習 がテーマのスタートアップ主な提供サービス/プロダクト❖ 銀行・証券会社・信託銀行を中心に 金融機関向けのトレーディングAI技術で多くの実績を保持「相場予測モデルの構築」のプロジェクトで協業「AlpacaSearch for kabu.com」 相互に類似している銘柄のチャートパターンを表示 「AI外貨予測」「AI外貨積立」 指定した外貨の為替の変動を予測し、予測した日に一定金額を積立可能 主要マーケットの短期予測をリアルタイムで表示 弊社の大規模データ処理の技術やディープラーニング技術を活用したアプリケーション
Top-10 Artificial Intelligence Startups in Japan4https://www.nanalyze.com/2019/02/artificial-intelligence-japan/
The Fintech 250: The Top Fintech Startups Of 20185https://www.cbinsights.com/research/fintech-250-startups-most-promising/
日経6/56
Agenda1. AlpacaJapanの市場予測2. AlpacaJapanのインフラ3. Kubernetes運用の課題4. Rancherでの課題解決5. まとめ
このあとの動きを予測する9??????
下落10
テクニカルトレーダーの着目点11
市場予測 = 値動きの前兆となるパターンを捉える12
パターン探し13仮にパターンが分かっていたとしてもハードロジックをプログラムするには条件が多様 or 曖昧すぎる未知のパターンを見つけたい → 機械学習
関連性の把握14Tick
Tick?15https://kotobank.jp/word/ティック-574561
Tickパターンの解析● 大量のTickデータから発生パターンを解析し、どのようなパターンが発生したときにプライスが上がるか・下がるかを予測● 大量のTickパターンを四六時中監視するのは、人間には不可能に近い16Tick発生パターン学習マーケットの上げ・下げをTickの発生パターンから予測するモデル
予測モデルの作成17予測モデルの出力を変換①時系列データの準備 ②処理済みデータ③学習済みのモデル(Deep Learning)④最終調整
18
AlpacaJapanのインフラ基本的にはKubernetes上に構築 (移行中のもありますが)• 予測モデル作成• GPUが大量に必要• バッチ処理• 大量データの集計• CPUが大量に必要• サービス提供• 結果をユーザに提供• Webアプリケーション20オンプレAmazon EKSAmazon EKS
マネージドKubernetesサービスがあるのにRancherっている?
マネージドKubernetesサービスがあるのにRancherっている?いらんやろ
kubernetes運用を始めると出てきた課題241. クラスタの増加2. 利用ユーザの増加3. 利用シーンの増加
1. クラスタの増加どのレベルでクラスタをつくるか?• シングルクラスタ• 1つ、もしくはある程度大きなクラスタで運用• 用途ごとにNamespaceを分ける• マルチクラスタ• 用途ごとに個々にクラスタをつくる• サービスごと• 環境(Production、Staging、Development)ごと25
1. クラスタの増加どのレベルでクラスタをつくるか?• シングルクラスタ• 1つ、もしくはある程度大きなクラスタで運用• 用途ごとにNamespaceを分ける• マルチクラスタ• 用途にごと個々にクラスタをつくる• サービスごと• 環境(Production、Staging、Development)ごと26
シングルクラスタのデメリット• バージョンアップ等のメンテナンス、障害時の影響大• 作業調整が大変• 影響が把握できない• ポリシーの管理が複雑• セキュリティグループ、IAMポリシー• 現状、コンテナレベルの制御はちょっと手間• AWSアカウントは分けれない27
マルチクラスタのデメリット• 複数のAPI URL、kubeconfig• コスト増• EKSはクラスタだけで費用が発生 • 0.20 USD/hour (2019.07現在) • 16k/month くらい • ワーカーノードのリソースにムダが出やすい28
2. 利用ユーザの増加• 運用負荷の増加• 利用方法の説明• クラスタ追加時のアクセス方法の通知• kubeconfigの配布• アクセス権• ユーザごとに権限を変えたい• Namespaceレベル• リソースレベル• RW/RO→ RBAC29
EKSでのユーザアクセス制限1. AWS側でIAMユーザを作成2. kubernetes側でRBAC設定適用3. kubernetes側でconfigmap/aws-authを編集し、IAMユーザに紐づけ30$ kubectl edit -n kube-system configmap/aws-auth• 問題点• aws-authはワーカーノードのIAMロールも含まれるので、Git管理しにくい• あとから確認しにくいhttps://docs.aws.amazon.com/ja_jp/eks/latest/userguide/add-user-role.html
3. 利用シーンの増加• 環境の違い• 普段はセットアップされたローカルPC or Macからkubectlを実行• 一時的にローカル環境使えない場合とか• ユーザーごとのKubernetes理解度、利用頻度の違い• kubectl? なにそれ?• このコンテナ実行したいだけなんだけど• このyaml実行したいだけなんだけど31
1. クラスタの増加への対応• 複数のAPI URL、kubeconfig• コスト増• EKSはクラスタだけで費用が発生 • 0.20 USD/hour (2019.07現在) • 16k/month くらい • ワーカーノードのリソースにムダが出やすい33
1. クラスタの増加への対応• 複数のAPI URL、kubeconfig• コスト増• EKSはクラスタだけで費用が発生 • 0.20 USD/hour (2019.07現在) • 16k/month くらい • ワーカーノードのリソースにムダが出やすい34RancherのURLさえわかっていれば
1. クラスタの増加への対応• 複数のAPI URL、kubeconfig• コスト増• EKSはクラスタだけで費用が発生 • 0.20 USD/hour (2019.07現在) • 16k/month くらい • ワーカーノードのリソースにムダが出やすい35しゃあない
マルチクラスタの課題への対応• 複数のAPI URL、kubeconfig• コスト増• EKSはクラスタだけで費用が発生 • 0.20 USD/hour (2019.07現在) • 16k/month くらい • ワーカーノードのリソースにムダが出やすい36Spotinst社のOceanを利用
OceanSpotinst社が提供する、EKSのワーカーノードにスポットインスタンスを活用し、運用負荷や利用料金を削減してくれるサービス。コンテナの負荷状況に応じてスケール、ノードサイズの決定等を自動で行ってくれる。37Jobリクエストインスタンス起動ノード登録
2. 利用ユーザの増加への対応• 運用負荷の増加• 利用方法の説明• クラスタ追加時のアクセス方法の通知• kubeconfigの配布• アクセス権• ユーザごとに権限を変えたい• Namespaceレベル• リソースレベル• RW/RO→ RBAC38
2. 利用ユーザの増加への対応• 運用負荷の増加• 利用方法の説明• クラスタ追加時のアクセス方法の通知• kubeconfigの配布• アクセス権• ユーザごとに権限を変えたい• Namespaceレベル• リソースレベル• RW/RO→ RBAC39外部認証に対応クラスタごと、プロジェクトごとにユーザ権限が設定可能
2. 利用ユーザの増加への対応• 運用負荷の増加• 利用方法の説明• クラスタ追加時のアクセス方法の通知• kubeconfigの配布• アクセス権• ユーザごとに権限を変えたい• Namespaceレベル• リソースレベル• RW/RO→ RBAC40ユーザに権限を付与すれば、アクセス可能なクラスタ /プロジェクトのみ表示
3. 利用シーンの増加への対応• 環境の違い• 普段はセットアップされたローカルPC or Macからkubectlを実行• 一時的にローカル環境使えない場合とか• ユーザーごとのKubernetes理解度、利用頻度の違い• kubectl? なにそれ?• このコンテナ実行したいだけなんだけど• このyaml実行したいだけなんだけど41
3. 利用シーンの増加への対応• 環境の違い• 普段はセットアップされたローカルPC or Macからkubectlを実行• 一時的にローカル環境使えない場合とか• ユーザーごとのKubernetes理解度、利用頻度の違い• kubectl? なにそれ?• このコンテナ実行したいだけなんだけど• このyaml実行したいだけなんだけど42ブラウザ上でのkubectl yamlファイルのコピペ GUIでのコンテナ、パラメータ指定複数のデプロイ方法に対応
現在の構成43
まとめ• マネージドKubernetesを使っていても出てくる課題• クラスタの増加• 利用ユーザの増加• 利用シーンの増加• Rancherと組み合わせることでこれらの課題に対応できた45
46We're hiring!!https://www.wantedly.com/companies/alpacadb● Web Engineer● Infrastructure Engineer● ML/AI Engineer● Fintech Engineer
Thank you