eviry tech & service blog

「株式会社エビリー」の社員ブログです。弊社では、クラウド型動画配信サービス「millvi」、ソーシャル動画データ及び分析サービス「kamui tracker」、YouTube総合メディア「かむなび」を開発・提供しています。https://eviry.com/

aspida を用いた快適フロントエンド開発

前書き こんにちは。 株式会社エビリーの millvi 開発チームと kamui tracker 開発チームでエンジニアをしております。ishikawa と申します。 今回 millvi の配信者管理画面を 0 から作成することになり、その際に aspida を使用した開発を行ったため、その…

JMeter による負荷試験の実施手順

こんにちは。 株式会社エビリーの millvi 開発チームでエンジニアをしております。 井上と申します。 millvi は動画配信のサービスであり、時には過去の実績を超えた要件( アクセス数 )で配信したい、といったお客様もいらっしゃいます。 そうした場合になん…

Vue.js のライフサイクルをみる( 動的コンポーネントと activate / deactivate / errorCaptured )

こんにちは。 株式会社エビリーの millvi 開発チームでエンジニアをしております。 井上と申します。 millvi ではフロントエンドの開発に Vue.js を採用しようと活動しております。 その活動の一環として、こちらのブログでも Vue.js での開発で学んだことを…

Vue.js のライフサイクルをみる( beforeCreate から destroyed まで )

こんにちは。 株式会社エビリーの millvi 開発チームでエンジニアをしております。 井上と申します。 millvi ではフロントエンドの開発に Vue.js を採用しようと活動しております。( 世の中の動きに対しての遅れは否めませんが... ) その活動の一環として、…

GitHub Action を使って issue 発行時にラベルを指定したリポジトリに展開する

こんにちは。 株式会社エビリーの millvi 開発チームでエンジニアをしております。 井上と申します。 今回は以下のユースケースを実現するべく右往左往した結果、なんとか最低限やりたいことができたので、その手順を記事に残したいと思います。 よろしけれ…

Lambda 関数を AWS CLI を使ってデプロイする

こんにちは。 株式会社エビリーの millvi 開発チームでエンジニアをしております。 井上と申します。 今回はタイトルにありますとおり、AWS CLI を使った Lambda 関数のデプロイ手順について記事に残したいと思います。 よろしければおつきあいくださいませ…

CloudFront +Lambda@Edge + S3 / DynamoDB 連携

こんにちは。 株式会社エビリーの millvi 開発チームでエンジニアをしております。 井上と申します。 こちらの記事 で CloudFront へのアクセスに対して Lambda@Edge でアクセス元の IP アドレスによるフィルタリングを実現する手順について扱いました。 今…

CloudFront + Lambda@Edge で IP 制限をかける

こんにちは。 株式会社エビリーの millvi 開発チームでエンジニアをしております。 井上と申します。 今回は MediaStore に対して CloudFront でキャッシュする構成において、 Lambda@Edge でアクセス元の IP アドレスによるフィルタリングを実現する手順を…

AWS Elemental MediaLiveでライブ配信サービスを構築してみる

エンジニアのukiです。 eviryではmillviという動画配信サービスを用いたライブ配信を行っていますが、視聴者数が増える(サーバーへの負荷が上がる)と配信が止まってしまう、という問題がありました。 そのバックアップとして、AWSのMediaLiveからの配信を試…

VPC内のLambdaでRDSのテーブルを監視し、SNSを通じてSlackに通知する

エンジニアのTHです。 eviryではkamui tracker(以下 KT)の開発をしています。 KTでは日々様々なバッチ処理を実行していますが、バッチの実行状況の確認は毎日手動(DBの状態を確認する)で行なっている状態でした。 手動ではどうしても確認忘れや手間がかかる…

Selenium + Capybara + Turnip で始めるテスト自動化

初めまして。開発のukiと申します。 4月からeviryでエンジニアをやっています。 eviryの開発フローとしてはこれまでブラウザの自動テストは行われていなかったようなので、 前職の経験を基に自動テスト導入の勉強会を実施しました。 この記事はその勉強会で…

(初級編)サーバーの外部監視と内部監視について

はじめに プロダクト開発本部 ゼネラルマネージャーの⇧boraです。 開発本部では、クラウド型動画配信サービスの「millvi」とソーシャル動画データ及び分析サービスの「kamui tracker」の開発・保守を担当しています。 嬉しい事に、弊社では毎年新卒が入社し…

書籍の一文から拡げる技術陣マネジメント001

これは旧eviry tech blogから移行した記事です。 参考書籍 O'Reilly Japan - ベタープログラマ 以降書籍「ベ」とします エンジニアリング組織論への招待 ~不確実性に向き合う思考と組織のリファクタリング 以降書籍「エ」とします なお引用文中の改行は、ng…

cURLによるメモリリークとその調査の記録

これは旧eviry tech blogから移行した記事です。 早々にブログ記事の更新が厳しくなってきたので、 過去に社内ドキュメントにまとめたものを加筆再利用で公開してみようという試み。 これは案外うまくいった解決事例であり、実際にはこううまくいくことばか…

Jupyter Labでテーブル/LaTeX左寄せ

これは旧eviry tech blogから移行した記事です。 参考URL/書籍 Python - JupyterのMarkdownで表自体を左寄せしたい|teratail O'Reilly Japan - ゼロから作るDeep Learning コードを引用しました どういうこと? 以下を解決したい 眼球を必要以上に動かしたく…

terraform fmtの設定をIntelliJ IDEAでやる

これは旧eviry tech blogから移行した記事です。 事の起こり @minamijoyoさんのQiitaエントリ、 Terraform職人入門: 日々の運用で学んだ知見を淡々とまとめる にて Terraformでは terraform fmt というインデントなどのスタイルを揃えるコマンドを 公式に提…

gormでカラムにAUTO_INCREMENTを設定したテーブルを作る時の注意点

これは旧eviry tech blogから移行した記事です。 eviry開発のtkです。 現在Goを使ったwebアプリケーションを実装しており、その中でmysqlとの連携のためにgormを使用しています。基本的な使い方は公式ドキュメントに書かれているとおりなのですが、タイトル…

gomockでモックを使ったテストを実装する。

go go

これは旧eviry tech blogから移行した記事です。 eviry開発のtkです。 今回はGo関連のテスト用ライブラリである「gomock」を使ってみたので、その使い方などを共有します。 GitHub - golang/mock: GoMock is a mocking framework for the Go programming lan…

CircleCI LocalでGoとMySQLを連携させたテストを実行する。

これは旧eviry tech blogから移行した記事です。 eviry開発のtkです。 CircleCI 2.0からDockerを用いてローカル環境でテストやビルドを実行できるようになりました。 これを使って「MySQLと連携するGoアプリケーションをCircleCI Localでテストを実行する」…

『ソフトウェア開発者採用ガイド』の読書メモ

これは旧eviry tech blogから移行した記事です。 ソフトウェア開発者採用ガイド | Joel Spolsky, 青木 靖 「自炊」をはじめて一週間が過ぎたで書いたとおり「自炊」に励んでいたところ掲題書籍の番となり、メモが挟んであったのに気がついた。ついでなのでこ…

「自炊」をはじめて一週間が過ぎた

これは旧eviry tech blogから移行した記事です。 まったく業務に関係ないですが世界を2ジャンルにわけたらたぶん我々の側にくるだろうジャンル、 自炊 (電子書籍))をはじめて一週間がたち感じたことを書きます。 揃えたもの PFU ドキュメントスキャナー Scan…

wireを使ってgoでDIを実現する

go

これは旧eviry tech blogから移行した記事です。 tkです。 今回新しい試みとしてgoを使ったAPIサーバーを構築することになりました。 構成としてはcontroller/service/repositoryに分離し、テストも実装しながら進めていこうということになっています。 そう…

iOS12 フルスクリーンAPI のフィッシングアラート

これは旧eviry tech blogから移行した記事です。 fujiwaraです。 safari 12よりフルスクリーンAPI(webKitFullScreen)に対応したことで、iOS12で動画のフルスクリーン再生が簡単に実装できるようになりました。 しかしながらこのフルスクリーンモードでは、画…

定期的にDynamoDBにリクエストを送る仕組みをterraformを使って構築する。

これは旧eviry tech blogから移行した記事です。 eviry開発のtkです。 AWS DynamoDBというNoSQLを提供してくれているサービスは、キャパシティを設定することで読み込み・書き込みをさばくことができます。 また、このキャパシティはオートスケーリングに対…

解析環境をdockerに移しました。

これは旧eviry tech blogから移行した記事です。 eviry開発のtkです。 最近、色々なログを集計したり、弊社millviの利用状況を元に分析することが増えました。 ローカルのマシン以外に解析用のマシンもあるのですが、これまではそれぞれの環境に別々に実行環…

Localstack/Minioを使ってAWS Kinesis Firehose/S3のローカル開発環境をdockerで構築する

AWS

これは旧eviry tech blogから移行した記事です。 kamui trackerのエンジニアのkawashigeです。 kamui trackerでは現在アプリケーションの更改の設計を進めており、その中でAWS Kinesis Firehoseを利用することになりました。 AWSのマネージメントサービスは…

バグ報告をしてOSS貢献をする

これは旧eviry tech blogから移行した記事です。 どんなバグ? 非常に些末なバグ aws-sdk-go で ~/.aws/credentials に aws_secret_access_key = /\d{40}/が存在すると session.NewSession() でこける profile として明示的にしなくても、上記エントリが存在…

Fastly Yamagoya MeetUp 2018

これは旧eviry tech blogから移行した記事です。 fujiwaraです。 2018/10/25に行われたFastly Yamagoya MeetUp 2018 に初参加してきました。 Fastly? 弊社メンバーから噂に聞いていたFastlyですが、イメージとしては静的コンテンツだけでなくAPI等にも使える…

SonarQubeで「技術的負債」可視化を試みる

これは旧eviry tech blogから移行した記事です。 前回までのあらすじ 書籍の一文から拡げる技術陣マネジメント001 · eviry tech blog 負債とは一体なんなのかということを開発陣も明確にわかっていない そんな状態ではビジネスサイド(つまり非開発な人々)に…

Rubyで形態素解析を行ってキーワードを抽出する

これは旧eviry tech blogから移行した記事です。 kamui trackerのエンジニアのkawashigeです。 kamui trackerではYouTubeの動画のコメントからキーワードを抽出し、どのようなコメントがついているかをひと目で分かるような機能を提供しています。 上記キー…