AWSストレージ概観

AWS で使えるローカルストレージと NFS ストレージを一通り試してみました。
GCP 編はこちら

About

ベンチマークは fio コマンドで取得した。
機械学習のワークロードで扱う機会が多い、CSV のような小さめのテキストファイルとマルチメディアファイルを想定して 4k と 32m のデータで測定した。

GCPストレージ概観

GCP で使えるローカルストレージと NFS ストレージを一通り試してみました。
AWS 編はこちら

About

ベンチマークは fio コマンドで取得した。
機械学習のワークロードで扱う機会が多い、CSV のような小さめのテキストファイルとマルチメディアファイルを想定して 4k と 32m のデータで測定した。

安全かつ最小にTerraformでGPUサーバーを起動する(AWS編)

普段、会社でやっている ML Ops 業務の振り返りを兼ねて最低限必要そうな Amazon VPC 構成用の Terraform Module を作りました。
そして Module には"最小構成"の機械学習環境を作るサンプルを同梱しています。

安全かつ最小にTerraformでGPUサーバーを起動する(GCP編)

普段の仕事でやっている ML Ops 業務の振り返りを兼ねて最低限必要そうな VPC 構成用の Terraform Module for GCP です。
Module には"最小構成"の機械学習環境を作るサンプルを同梱しています。

AI時代のDocker + XaaS簡単理解

私が所属しているDeNA AI システム部の部内勉強会で Docker と XaaS(ザース)の話をさせていただいたので資料を公開します。
XaaS(ザース)は IaaS, FaaS, SaaS などの総称です。

「Container Build Meetup #02」に行ってきた #container_build

「Container Build Meetup」に参加してきました。

Container Build Meetup #2 - connpass

タイムテーブル

分刻みですね。
なお開始時点で「予定のタイトルでしゃべる人は 1 名」でした。
また順番の入れ替わりもあり、さすが皆さん普段からコンテナをビルドしているだけあって動きが軽量で柔軟ですね!

Docker Hubからハッシュ化パスワードとGitHubトークンが漏洩

tl;dr

公式に以下の情報が出た。
Docker - Unauthorized access to Docker Hub database

  • Docker Hub のデータベースがクラックされ以下が流出した可能性がある
    • ユーザー ID, ハッシュ化されたパスワード, GitHub/Bitbucket のトークン
  • 被害を受けたのは約 190,000 アカウント
  • 以下を行うべき

I got a mail

会社の Slack で「Docker Hub、クラックされたって」と見かけて確認したらそんなメールが届いていた。

仕事の振り返り(2019.04)

ここ何年か DeNA という会社で働かせていただいてます。
今月 4 月に異動したこともあり棚卸し的にやってきたことを振り返ってみました。

4 月からは「AI 本部」という組織が新設されすでにこちらで仕事をしています。
3 月末までは「システム本部」所属でした。

GitHub+CircleCI+S3でNoOpsなBlogを構築した

本業の傍ら会社の技術 Blog リニューアルに携わっており、概要を Advent Calendar で「DeNA Engineers’ Blog をリニューアルしている話」として書きました。
「DeNA Engineers’ Blog をリニューアルしている話」ではコンセプトや進め方を中心に書いたので、この記事でもう少しシステム面を書いておきます。
ついでに会社の引き継ぎ資料にしてしまおうという目論見があります。

docker-composeでWebアプリ開発する環境をまとめた(Rails, Flask)

最近、Mac などのローカルには極力 rbenv などをインストールせずにできる限り Docker コンテナ上に開発環境を作ろうとしています。
開発中はdocker-composeを使っているのですが、いろいろなリポジトリに似たような docker-compose.yml が増えてきたのでテンプレート代わりにまとめました。
リポジトリはこちら。

GitHub repository

#gc_k8sday "Google Cloud Kubernetes Day"に行ってきました

3/26 に開催された「Google Cloud Kubernetes Day」に当選したので参加してきました。
最前列でひたすらメモったので放出しておきます。

Program

こんなプログラムでした。

このブログのテーマがHugo Themesに載りました!

このBlog用に作ったHugoテーマ「techlog-simple」をHugoのテーマサイトに載せていただきました。やったね 🎉

Hugo Theme Techlog Simple | Hugo Themes

載せてもらう方法はこの辺りをみてください。

AWS/GCPのWeb ConsoleをNativefierで専用アプリにする

sandbox 用の AWS アカウントと GCP プロジェクトを作ったついでにそれぞれの Web 管理画面をNativefierで専用アプリにした。

GCP プロジェクトは https://console.cloud.google.com/home/dashboard?project=YOUR_GCP_PROJECT_ID のように URL のクエリパラメタでタブごとに異なるプロジェクトを表示できるし、
AWS アカウントも switch role を使えば複数の AWS アカウント間を行き来できる。

Packerを使ってECRとGCRに同じDockerイメージをPushする

自分用の ML 環境として Docker イメージを作っていたのだが、 FROM: nvidia/cuda:9.2-cudnn7-devel-ubuntu18.04 なので DockerHub で public にするのも憚られ、ECR/GCR に置くことにした。
ECR/GCR に置くついでに packer build だけで ECR と GCR に同じイメージが置かれてほしいと思ってやってみた。

Hugo 0.42 からSpeaker Deck貼付はshortcodeではなくembed codeを使う

tldr: Hugo 0.42 以降で Speaker Deck のスライドを貼り付けるときは Speaker Deck の embed code を使いましょう。


ある日 hugo server が実行できなくなった

Hugo のバージョンを上げてこの blog の原稿を開いたらこんなエラーが発生してしまった。
この記事の Speaker Deck shortcode が問題あるらしい。

tmuxとzshのススメ

tl;dr

  • Terminal.appSSH のような CUI で作業するときは tmux 使うと便利
  • tmux 使うときはシェルを zsh にすると便利

サーバーサイド開発をやってる人には今更な話ですけど最近何度かオススメする機会があったので記事を書くことにしました。
以下、私の使い方を説明しているだけで特に目新しい話はありません。

「TD Tech Talk 2018」で分析基盤の話をさせていただきました

PLAZMA Data Platform Day: TD Tech Talk 2018」というイベントにお招きいただいたので「2020 年代に向けた DeNA の分析基盤 」というお話しをさせていただきました。

補足とかは機会あったら書きたいです。

Amazon SageMaker実運用: "Lifecycle Configuration"でEFSを自動マウント

前回の記事に続いてマネージド Jupyter サービスAmazon SageMakerの Notebook インスタンスに EFS のボリュームを自動マウントする。

なおこの発言の真意ですが、Kaggle 社内ランク制度なるものができ部内に Kaggler な方が増える今日この頃、インフラ的な細かな作業に気持ちと時間を取られずにスコアを叩き出していただきたいという意図です。
SageMaker の Terminal すら開かずに使えてほしい。

Amazon SageMaker実運用: NAT GatewayでNotebookの接続元IPアドレスを固定する

Amazon SageMakerを使っていて Notebook インスタンスから以下を行いたくなったので構成を考えてみた。

  • Notebook インスタンスから外部システムにアクセスしたい
    • 対象のシステムはアクセス制限を行なっており接続元 IP アドレスを固定したい
  • Notebook インスタンスマネージド NFS サービスであるAmazon EFSをマウントしたい
    • VPC 内のインスタンスからはマウントできるよう設定済み

解答

AWS Machine Learning Blogに正解が書いてあった。

このWebサイトの見た目をちょっとまともにした

この Web サイト( https://mazgi.github.io/ )は専用の Hugo テーマで公開しているのだけど色々基本的なところが足りていなかったので直した。

一覧ページ(list.html)

Hugo テーマの場合、一覧ページのテンプレートは layouts/_default/list.html という PATH で作る。
なお TOP ページは layouts/index.html という PATH でテンプレートを作っておくとそちらが適用されるが、このサイトの場合は特に TOP ページだけに載せたいものがないので、TOP ページと一覧ページは同じテンプレートを使っている。

S3 + Lambda + SQSでファイル処理する仕組みをTerraformで構築する

画像や音声を S3 にアップロードすると Lambda でいい感じに前処理をして SQS に通知くれるような仕組みを想定して作ってみる。
名前は仮に「media-processor」とした。
(が、今回はファイル名やファイルタイプを SQS に送るダミー機能まで)

Amazon SageMakerをそれなりの人数で使うときの設定

AWS のマネージド Jupyter サービスである「Amazon SageMaker」を数十名規模で使う機会があったのでインフラ的に設定した内容などを書いておく。
SageMaker で何をしたかなどはいずれちゃんとした情報が出ると思う。 出ました!
=> Amazon SageMaker ハンズオンレポート

SSE-KMSで暗号化したS3バケットをs3fsでmountする

タイトルの通り「AWS Key Management Service (AWS KMS) 」を使って暗号化した Amazon S3 バケットを s3fs で Ubuntu 16 上で mount した。
KMS については以下のドキュメントが詳しいが要は暗号化の際に煩雑な鍵の管理を AWS にお願いできる仕組み。

S3 + CloudFrontをTerraformで設定してCircleCIで更新する

「Terraform で S3+CloudFront+SSL/TLS 証明書 w/ ACM を設定して Hugo で作った static な Web サイトを CircleCI で自動 deploy する」やつができた。

できたもの

普通のいかにもHugoで作った Web サイトができた。
もう 2018 年なので手オペなどせず Infrastructure as Code で構築かつ CI でコンテンツ deploy です。
中身はまだない。
きっと酒とメシについての何かが書かれるのでしょう。