selmertsxの素振り日記

ひたすら日々の素振り内容を書き続けるだけの日記

Sidekiqのjobの信頼性向上方法と Sidekiq Proの検討について

自分のための覚書 TL;DR sidekiq proでは、server processが死んでも jobの復活がサポートされる sidekiq proにおいて、redis が死んでも、1000件程度のジョブならclientが保持し続けて、redisが復活したタイミングでenqueue してくれる ↑の状況において、cl…

Office365のユーザーimport/exportはそれぞれフォーマットが異なる

TL;DR AzureADのデータについて、ロールバックできる仕組みが欲しい できる限り自前で実装せずに、公式の提供してくれる仕組みに乗っかりたい Office365に存在する import/exportを試してみた そのままでは IDaaSのロールバック用途には使えなさそう グルー…

webpackをupdateしたらterserの問題でbuildができなくなる問題の対処法

TL;DR webpackのバージョンを v4.29.0 にupdateしたらbuildできなくなった どうやら最新の terser-js に問題があったらしい https://github.com/terser-js/terser/issues/253 terser-js を 3.14 にしたら問題が解決した 事象 npm update をして webpackのバ…

【GCP】Datastoreを作ってしまったGCPプロジェクトではFirestoreを使えない

表題の通り。それだけなんだけれども、同じ悲劇を経験する人がいないようにブログに書きました。 2019年1月、Firestoreが東京リージョンでも使えるようになった。 https://firebase.google.com/docs/firestore/locations?hl=en#location-r せっかくなので、…

「U30のための最速キャリア戦略」の所感

読んだもの speakerdeck.com 読んでみた経緯 ここで紹介されていたスライドの内容があまりにも納得がありすぎたので、全部読んでみたくなった。 今更だけど #devboost で一番好きなスライド。2人以上の人間が関わるあらゆる場面で言えることだと思う。"意に…

GCPでCloud Functionsを作る際の個人的なTIPS

この記事は技術同人誌Advent Calendar 2018の19日目の記事です。 こんにちは。 @selmertsxです。主にRailsのサーバーサイドエンジニアをやってます。 技術同人誌 Advent Calendarということで、今年の11月にNextPublishing様から出版させて頂いたAmazon Web …

TypeScript開発における僕のVisual Studio Code設定

僕が Visual Studio Code を利用して開発しているときの設定。 こうすると ts-nodeとjestの双方でdebuggerを利用できる。 ※ 他に良い方法があれば :pray: 設定ファイル { "version": "0.2.0", "configurations": [ { "type": "node", "request": "launch", "…

AWS re:Invent 2018のupdateまとめをLTで話してきました!

speakerdeck.com Microservicesをやりたい

「AWS re:Invent報告会 by Yappli 」でChaos EngineeringについてLTしてきました!

speakerdeck.com 発表資料はこちらになります。 AWS re:Inventの報告会なのに、完全に趣味によりすぎてしまいました...!!!

AWS re:invent 2018 サービスアップデート1行まとめ

aws

ML系 Amazon Personalize eコマースなどでレコメンドができるようになるサービス。今までのサービスと異なり、自分たちの持っているデータを学習データとしてINPUTさせることができる。データはS3 or Amplify から送信可能。 Amazon Forecast 時系列データの…

AWS Re:invent 2日目のKeynoteまとめ

aws

Lambda の公式 Runtimeに Ruby 2.5が追加されました Lambda Layersによって、Lambda間でロジックを簡単に共有できるようになりました Lambdaで Custom Runtimeを設定することができるようになり、好きな言語で書くことができるようになりました https://aws.…

(TypeScriptで書かれてWebpackでビルドされた) CloudFunctionsのエラー通知をわかりやすくしてみた

やりたいこと stack driver error reportのエラーの内容をもう少しわかりやすくしたい。 やること GitHub - prisma/serverless-plugin-typescript: Serverless plugin for zero-config Typescript support ここを参考に node-sourcemap-supportを導入した。 …

gcloudコマンドを実行するGCPのアカウントを切り替える

忘れないようにメモ。 例えば、before-selmertsx プロジェクトから、test-selmertsx プロジェクトへと切り替えるとする。 そのときの手順は下記の通り configurationsの作成 gcloud config configurations create test-selmertsx gcloud config configuratio…

Cloud FunctionsとCloud Schedulerを利用してDatadogで監視しているホスト数を通知させてみた

作ったもの 指定された期間のDatadogの監視台数について、最小,最大,合計(ホスト数×時間)を算出してSlackに通知してくれるCloudFunctionsを作成しました。そのCloudFunctionsはCloud Pub/Subで実行され、Cloud SchedulerはそのCloud Pub/SubのTopicを一日一…

Azure ADとG Suiteのグループを同期させる

モチベーション メーリスの設定を自動でして欲しい Google Drive内の資料の閲覧権限を自動かつ適切に付与したい 誰がどのようなグループに所属し、どのような権限を持つかはAzure ADで制御したい やり方の方針 Azure ADとG SuiteのGroupを同期させる Azure A…

G Suite Domain-Wide Delegationを使ってG SuiteのGroupを作成する

TL;DR googleapisを使って、G Suiteの Groupを作成できるようにした 公式のドキュメントにはnodejsでの実装方法が無かったので自分で実装した よってこれが最適な方法かは分からない G Suiteの特権管理者の権限が付与されている必要がある https://developer…

TypeScriptで書いたCloud FunctionsをCloudBuildを使ってDeployする

これを読んで出来るようになること TypeScriptで書いたCloud Functionを、Code Buildを使ってdeployできるようになる。 前提と事前準備 前提 CloudFunctionsのコードはwebpackを使ってまとめている Deployは serverless コマンドではなく、gcloudコマンドで…

GCPのCloud BuildでCloudFunctionsをデプロイする

モチベーション GitHub上で管理しているCloud Functionsのコードについて、masterにマージされたタイミングでdeployして欲しい。 Cloud Buildとは何か? Docker Image作ったり Cloud Functionsをdeployしたり、テストしたりできます。CircleCIみたいなものを…

「Amazon Web Services サーバレスレシピ」という本をリリースしました

FiNCのエンジニアの方々と一緒に書いた本が、この度 インプレス R&D様から出版していただくことになりました。 僕は最初の章を書かせて貰っています。宜しければ見てやってください〜。

CloudFunctionsをServerless Framework & TypeScriptの環境で試してみる

やったこと Serverless Frameworkを使って CloudFunctionを動かしてみました。 試した内容は下記の通りです。 TypeScriptで書けるようにしてみる serverless.ymlの設定で環境変数を利用する 日本のリージョンにDeployする 実際に利用したコード https://gith…

Azure ADのGraphAPIを利用する

この資料を読んでできるようになること Azure ADのディレクトリをAPIを利用して操作できるようになる 手順 Appを登録する AccessTokenを取得する GraphAPIを叩く Appを登録する Azure Active Directoryを選択 App Registrationsを選択 nameとsign-on URLを設…

OpenID Foundationのガイドラインに沿ったRailsでのOIDC Implicit Flow実装

IDaaSを社内サービスに適用したかったので、その準備としてOpenID Foundation Japanのガイドラインが伝える OpenID Connect Implicit Flowの実装方法を試してみました。 前提 本ドキュメントではOpenID Connectの仕様については説明しない OpenID Foundation…

RailsでOpenID Connect Implicit Flowを試す

モチベーション RailsでIDaaSを使った認可認証を一通り自分で作りたい それによってOIDC Implicit Flowの実現において、必要な処理に関する理解を深めたい OIDC Implicit Flowを使ったのは、既存のSPAサービスに組み込むのであれば、これが一番楽そうだった…

Query and Visualize AWS Cost and Usage Data Using Amazon Athena and Amazon QuickSightのメモ

モチベーション 弊社ではセキュリティ対策の一環からAWS Organizationとそれに関連するセキュリティ対策を導入した セキュリティ対策で利用しているAWS Config Rule, GuardDuty, CloudTrailのサービスについては按分計算が必要 按分をいい感じに計算したいの…

Minikube Tutorial をまるっとやる

最初に このドキュメントは、このチュートリアルをまるっとやったことの記録。 kubernetes.io まとめ minikubeはlocalのimageを簡単に参照可能である minikubeが具体的にどこからどこまで担保してくれてるのかよく分かってない。 kubectl はcontextを切り替…

CloudSQL をRailsで使ってみる

モチベーション 今、個人で作ってるプロダクトを試しに GKEで動かしてみたい GCPだと、RDBはCloudSQLを利用した方が良さそう GKEの前に、CloudSQLを触ってみる 今日の学び CloudSQLは、Globalからアクセス可能であるが、IPのホワイトリストかProxyを利用する…

GCPエンタープライズ設計ガイドの読書メモ

はじめに 業務でGCPの一部を利用することになったため、概要を把握するためにこれをサラッと読んだ。 この本はGCPの様々な機能に関する概要をまとめたもので、これを読むだけでGCPがガンガン使えるようになるものではない。 あくまでGCP全体の概要を把握する…

KubernetesとGKEの学習

最初に この記事は、下記の書籍を読んだ上で自分の理解を整理するためにまとめたものです。 マルチホストでDockerを動かそう 単一ホストでサービスやってると、そのホストが落ちたらアウト マルチホストにして可用性と拡張性をあげる マルチホスト環境でコン…

Local環境のアプリケーションに対してAzure ADでOpenID Connectの認証をしてみる (その2)

TL;DR Azure ADでOpenID Connectの認証ができるか確認をした 確認環境は森岡がテスト用に作ったアプリケーション 上記環境はLocal環境で動いていて、Dockerで構成されている lua-resty-openidcを使ってnginxレイヤーだけで認証ができた まだ本番への反映をし…

lua-nginx-moduleをdockerで動かす

TL;DR imageの指定方法は、下記のフォーマット openresty/openresty:<openresty-version>-<image-version>-<flavor> flavorとはosのことでcentos, alpine などが入る 今回はこんな感じになった openresty/openresty:1.13.6.2-0-centos 上記方法でイメージを作れば、すぐにluaを実行可能 github.com 設定</flavor></image-version></openresty-version>…