ブックマーク / techblog.kayac.com (138)

  • AWS Systems Manager Parameter Storeを便利に使うツール "ssmwrap" がv2になりました - KAYAC engineers' blog

    SREチームの長田です。 今回はssmwrapという拙作CLIツールのはなしです。 ssmwrapとは ssmwrapは、AWS Systems Manager Parameter Store(以下SSM Params)から値を取得し、 環境変数またはファイルに出力した上でコマンドを実行するツールです。 secret類をSSM Paramsに保存している場合、アプリケーション実行時にSSM Paramsから必要な値を取得することになります。 AWSのサービスにアクセスするという操作は、それなりに手間がかかるものですが、 ssmwrapを使えば環境変数とファイルというより簡便な入出力インターフェイスを通してSSM Paramsの値を参照できます。 実装が簡潔になるだけでなく、アプリケーションからのAWS APIへの依存を排除することにもなります。 # SSM Paramsにこんな値が保存され

    AWS Systems Manager Parameter Storeを便利に使うツール "ssmwrap" がv2になりました - KAYAC engineers' blog
  • 【JS体操】第2問「画像の横長具合を比較しよう」〜正攻法&ハック部門の解説〜 - KAYAC engineers' blog

    こんにちは! カヤック面白プロデュース事業部のおばらです。 普段は受託案件のデザイン・フロントエンド開発などを担当しています。 さて、『JS体操』第2問 いかがでしたか? 今回初めての方々 第1問に引き続きの方々 複数のアプローチで何通りも回答してくださった方々 普段業務で JavaScript をバリバリ書いているであろう方々 JavaScript を学んでいる学生の方々 などたくさんの方々が挑戦してくださいました。 とても嬉しいです。ありがとうございます! 『JS体操』とは? 『JS体操』とはカヤックが主催する JavaScript のコードゴルフ大会です。 もともとは社内の勉強会として始めた施策です。 その詳細は以下のブログ記事を御覧ください! techblog.kayac.com 第2問の詳細はこちら https://hubspot.kayac.com/js-taiso-002 も

    【JS体操】第2問「画像の横長具合を比較しよう」〜正攻法&ハック部門の解説〜 - KAYAC engineers' blog
  • AWSコスト異常検知を導入したら、『人にお願いする』トイルが発生したのでSlackBotを作って解消した - KAYAC engineers' blog

    SREチームの池田(@mashiike)です。SRE連載の5月号になります。 AWSのコストについては、多くの方がすごく気にしていると思います。 カヤックでもAWSのコストの変動に関しては敏感に気にしています。 そんな方々の心のお供になる機能が、 AWSコスト異常検知(AWS Cost Anomaly Detection) です。 今回は、このコスト異常検知にまつわるトイル削減の取り組みを紹介します。 背景 AWSコスト異常検知は、AWS マネジメントコンソールの中では『Billing and Cost Management』配下にある機能になります。 この機能を使うことでAWSで発生したコストに関して、通常とは異なるコストの発生を検知することができます。 コスト異常検知自体については、CureApp テックブログ様のZennの記事がわかりやすくまとまっているので、そちらを参照いただければ

    AWSコスト異常検知を導入したら、『人にお願いする』トイルが発生したのでSlackBotを作って解消した - KAYAC engineers' blog
  • エンジニア in ハイパーカジュアル - KAYAC engineers' blog

    こんにちは。技術部平山です。 今回は、ハイパーカジュアルというジャンルにおけるエンジニア、 というテーマで書きます。 勉強会でしゃべった動画がありますので、そちらを見て頂いても良いかと思います。 外に出すということで、普段よりも多少丁寧にしゃべっております。 前置き 平山が作った製品群 これらは2022年あたりから現在にかけて、平山が自分で企画、実装した製品です。 これらのうち、利益を出せた製品は2つあります。 黒字製品 Draw Saber(Android iOS) Mannequin Downhill(Android iOS) の2つで、順に2800万、2100万ダウンロードです。加えて、いい線まで行ったものの、利益を出すに至らなかった製品が一つあります。 赤字だったTitanShoot Titan Shoot(Android iOS) こちらは210万ダウンロードと、うまく行ったもの

    エンジニア in ハイパーカジュアル - KAYAC engineers' blog
  • 【JS体操】JavaScript で頭の体操をしよう!〜第一問 44文字 解説編〜 - KAYAC engineers' blog

    こんにちは!カヤック面白プロデュース事業部のおばらです。 普段は受託案件、特にインタラクティブな WebGL や Canvas2D を駆使する案件のデザイン&実装を担当しています。 先日出題したJS体操 第一問目、挑戦してくださったみなさまありがとうございました! 早速ですが最短文字数の回答は 44文字 でした! export default x=>x-(x%=.2)+.2-(.04-x*x)**.5 みごと44文字を達成した方は、 halwhite さん koyama41 さん sugyan さん tkihira さん たつけん さん の5名!(※ Unicode コードポイント順) おめでとうございます!! 最短文字数を狙った正統派の回答以外にも、裏技的な面白アプローチがたくさんありました笑 このアプローチは面白い、ぜひ紹介したい!という回答がいくつかあったので、解説記事は2回に分けて

    【JS体操】JavaScript で頭の体操をしよう!〜第一問 44文字 解説編〜 - KAYAC engineers' blog
  • Fargate Spotを本番運用するための監視の実践 - KAYAC engineers' blog

    SREチームの橋です。SRE連載の3月号となります。 Amazon ECSのコスト最適化においてはFargate Spotが有効な手段となりますが、いつ中断されるか分からない性質上、その監視も併せて実施していく必要があります。今回はそのFargate Spotを番環境で運用しているプロジェクトにおける取り組みを紹介します。 背景 Fargate (Amazon ECS on AWS Fargate) を用いると負荷に合わせた容易なスケーリングが可能になる一方、このときCPU使用率の安全マージンや予測のブレなどにより、リソースがやや過剰になってしまうこともあります。 Fargate Spotの代表的なユースケースと言えばユーザーに露出しない開発環境ではないかと思いますが、このような場合にコストを考えると、タスクの中断をある程度許容しての番環境でのFargate Spot運用も可能な選択

    Fargate Spotを本番運用するための監視の実践 - KAYAC engineers' blog
  • YAPC::Hirosima 2024でコードゴルフコンテストを開催しました 〜解説編〜 #yapcjapan - KAYAC engineers' blog

    こんにちは、技術部の谷脇です。 去る2月10日に行われたYAPC::Hiroshima2024ですが、みなさまはいかがだったでしょうか。私は参加して大満足であり、運営の方々に大感謝させていただきます。 さて、カヤックではゴールドスポンサーと椅子スポンサーをしていたというのは開催直前に出した記事で述べさせていただきました。 techblog.kayac.com この記事では伏せられていた、椅子スポンサーのPerlbatrossですが、この記事ではPerlbatrossの内容紹介と問題解説をしようと思います。 Perlbatrossとは YAPC::Hiroshima2024の開催期間中にコードゴルフの問題を出していました。以下は椅子スポンサーで貼らせていただいた問題です。 Q1. Split of Graphemeの問題 さて、これだけではなく、QRコードにアクセスすると実際に問題を解けるサ

    YAPC::Hirosima 2024でコードゴルフコンテストを開催しました 〜解説編〜 #yapcjapan - KAYAC engineers' blog
  • CloudFront FunctionsをテストするOSS、cfftを公開しました - KAYAC engineers' blog

    SREチームの藤原です。 今回は Amazon CloudFront Functions をテストするためのOSSとして、cfft というものを書いたので紹介します。 github.com 3行でまとめ CloudFront Functionsのテストは手元ではできなくて面倒です CloudFront Functionsをテストする cfft というOSSを書きました KeyValueStoreの操作を含め、便利な使い方がいろいろありますのでどうぞご利用下さい CloudFront Functionsをテストするのが面倒という問題 CloudFront Functions (以下CFF) は、AWSが提供するCDNであるAmazon CloudFrontのエッジノード上でリクエストやレスポンスの操作が行える、JavaScriptの実行環境です。典型的なユースケースとしては、キャッシュキーの

    CloudFront FunctionsをテストするOSS、cfftを公開しました - KAYAC engineers' blog
  • デプロイ対象環境ごとに別々のSlackチャンネルに通知するGitHub Actionsの実装例 - KAYAC engineers' blog

    SREチームの長田です。 SRE関連の記事としては今年最初の記事になります。 今年も定期的にSREチームメンバーによる記事を投稿していく予定です。 よろしくお願いします。 さて、今回はGitHub Actionsのはなしです。 TL;DR デプロイを実行するGitHub Actionsの実行状況を デプロイ対象環境ごとに別々のSlackチャンネルに通知する場合の実装例として、 「slackapi/slack-github-actionで通知をつくりこむ」 「Actions Workflowを分ける」 「Actions Workflow実行の入り口を分ける」 の3つを紹介します。 背景 カヤックでは「まちのコイン」という地域通貨サービスを開発・運用しています。 coin.machino.co まちのコインの開発・運用チームの、特にサーバーサイドに関しては、 アプリケーションやインフラ構成の変

    デプロイ対象環境ごとに別々のSlackチャンネルに通知するGitHub Actionsの実装例 - KAYAC engineers' blog
  • 「JS体操」のすゝめ 〜その①〜 - KAYAC engineers' blog

    このエントリは【カヤック】面白法人グループ Advent Calendar 2023 の24日目の記事です。 こんにちは!意匠部のおばらです。 面白法人カヤックでは日々、様々な社内勉強会が開催されています。記事では JS 好きな社内のエンジニア向けに私が企画&主催している「JS体操」についてご紹介します。 記事の最後にはみなさんも挑戦できるように最新の「JS体操」を紹介しています。ぜひ挑戦してみてください。 1.「JS体操」とは? 2.「JS体操」の掟 3.「JS体操」のメニュー 3.1. 何らかのロジックを解く 3.2. コードゴルフで文字数を競う 4.「JS体操」の流れ 4.1. 出題方法 4.2. 解答方法 4.3. 実際の様子 5.「JS体操」の過去問の紹介 5.1. 第一回 5.2. 第二回 5.3. 第三回 5.4. 第八回 5.5. 第十一回 5.6. 第十四回 5.7.

    「JS体操」のすゝめ 〜その①〜 - KAYAC engineers' blog
  • インクジェットプリンターの目詰まりとの戦い - KAYAC engineers' blog

    この記事はTech KAYAC Advent Calendar 2023の7日目の記事です。 こんにちは、@commojunです。記事を書くのは2年ぶりです。昨年は娘が生まれ、最近1歳になりました。知らない間に紙をったりしていて、目が離せません!! はじめに 皆さんはご自宅にプリンターはお持ちでしょうか?我が家にはあります。ペーパーレス化が進んできた昨今、プリンターを持たないという人も増えてきていると聞きます。たまにしか印刷しないならコンビニで大丈夫だったりしますからね。 しかし、印刷物が必要になる出来事は突然やってきます。最近だと、保育園の入園申し込みをするために、市で公開されているPDFファイルを紙に印刷して、期日までに申し込み用紙を完成させる必要がありました。そんなときプリンターでさくっと申込用紙を出力できると頼もしいです。内容を書き損じたときも、気軽にもう一度プリントするだけです

    インクジェットプリンターの目詰まりとの戦い - KAYAC engineers' blog
  • 社内発OSSのドッグフーディングでみんな捗る! - KAYAC engineers' blog

    Tech KAYAC Advent Calendar 2023 の11日目です。 こんにちは。 専らドッグフードをべる側の長田です。 もちろんリアルな犬のはなしではなく、ドッグフーディングのはなしです。 https://ja.wikipedia.org/wiki/ドッグフーディング ドッグフーディング (英: dogfooding) または「自社のドッグフードをべる」「ドッグフードする」(Eating your own dog food、Drinking your own champagneとも言う)は、コンピュータ業界において、自社製品を開発して利用する組織の習慣で、組織が実際の使用法で日々自分たちで製品を利用しながら製品テストを行うことである。 カヤック由来のOSS 実はカヤック(社員名義も含む)はOSSなプロダクトをそこそこの数公開しておりまして、実際の業務でも使っています *1

    社内発OSSのドッグフーディングでみんな捗る! - KAYAC engineers' blog
  • Rails+PostgreSQL+Apartmentでたった1行の変更がレスポンスタイムを3倍速にした話 - KAYAC engineers' blog

    こんにちは! Tech KAYAC Advent Calendar 2023 11日目を担当する荒賀(@ken39arg)です。 在籍期間15年と弊社の中でかなり古参になってしまった私ですが、アドベントカレンダーを年に2書くのは初めてです。1 今回の内容は、今年7月に無事に成功したお仕事の話で、完了したらブログに書くように言われていたものです。 が、どうしても筆が進まず、のらりくらりと逃げていたのですが、良い年越しをするためにいい加減書いておくか〜という内容です。 TL;DR Rails + PostgreSQL + Apartment という構成のサービスで下記の1行の設定変更コミットを取り込んだ結果・・・ $ git log -n1 -p 64b39f258e9adde2e55752e4f1d5b6be12bcb216 commit 64b39f258e9adde2e55752e4f

    Rails+PostgreSQL+Apartmentでたった1行の変更がレスポンスタイムを3倍速にした話 - KAYAC engineers' blog
  • 俺の管理画面 2023年冬 - KAYAC engineers' blog

    面白法人カヤック技術部の谷脇です。私は元気です。 この記事は面白法人グループ Advent Calendar 2023の5日目のエントリーです。 というわけでこの記事では、現環境(私が取り組んでいる業務のこと)ベストの管理画面の技術選択について考えたことを書き連ねていきます。 前提知識 管理画面の定義 ここで読者と私の目線を合わせるため、この記事上での管理画面の定義をしておきます。 管理画面はサービスの運営上必要な操作やデータの閲覧をまとめたWebアプリケーションです。また、このWebアプリケーションは一般ユーザーには開放されておらず、サービス運営者側のみ閲覧と操作が可能となっている、とします。 管理画面を作る動機 ここではTonamelの管理画面について、考えて導入したことを書きます。 tonamel.com Tonamelはゲーム大会やイベントを開催するためのプラットフォームです。We

    俺の管理画面 2023年冬 - KAYAC engineers' blog
  • ITS健保制覇攻略ーー補助がこんなにお得なのに意外と使われていない件 - KAYAC engineers' blog

    このエントリは【カヤック】面白法人グループ Advent Calendar 2023 の17日目の記事です。 はじめに こんにちは、今年のITS健保、ライブなどの抽選でどれも当選しなかった魏と申します。 ITS健保(関東ITソフトウェア健康保険組合)には様々なお得の施策がありますが、他の社員に聞いたら意外と知られていないのが多いようです。それを機に今回の記事でいくつかを軽く紹介します。 はじめに 保養施設 一番お得な「直営・通年・夏季・冬季保養施設」 抽選申込 空き照会申込 5000円/泊の補助がもらえる「契約保養施設」 ITS旅行センター契約保養施設 ラフォーレ倶楽部 10000円補助がもらえる「ITS旅行パック」 その他 健歩大会 利用料金が半分になる「スポーツクラブ」 さらにお得の小技 最後に 保養施設 保養施設 ITS健保で利用できる保養施設は6種類ありますが、メインの3つだけ紹介

    ITS健保制覇攻略ーー補助がこんなにお得なのに意外と使われていない件 - KAYAC engineers' blog
  • Google Cloud Operations Suite で実現する "頑張らないオブザーバビリティ" - KAYAC engineers' blog

    SRE チームの市川恭佑です。 先日、CloudNative Days Tokyo 2023 のプロポーザルを提出したのですが、残念ながら採択に至らなかったので、今回は宇宙最速の(?)供養エントリになります。 シェア・投票など、ご応援をくださった皆様にはこの場でお礼を申し上げます。ありがとうございました。 event.cloudnativedays.jp 背景とか、経緯とか 筆者は、カヤックの SRE チームにちょうど2年ほど在籍しています。とは言っても半年ぐらいは学生アルバイトだったので、正社員としては1年半ほどです。カヤックに入る前も、いくつかの会社で IT エンジニアとしてインターンやアルバイトをしていました。 という訳で、何だかんだ仕事で使うプログラムを書き始めてトータル4年半ほどになりますが、そのうち3年半ほどは全て Amazon Web Services(AWS)でホストされる

    Google Cloud Operations Suite で実現する "頑張らないオブザーバビリティ" - KAYAC engineers' blog
  • タスクランナーとしてのmakeを使う際の工夫と注意点 - KAYAC engineers' blog

    SREチームの長田です。 みなさま開発・運用上の定形オペレーションに伴うタスク実行をどのように管理していますか? 今回は make をタスクランナーとして使う例を紹介します。 タスクランナーがほしい タスクランナーを使う主なモチベーションは以下の2つです。 タスクをリスト化したい タスクの実行インターフェイスを統一したい タスクがリスト化されていれば、それ自体が生きたドキュメントとして機能します。 また、タスクの実行インターフェイスが統一されていれば、 例えばタスクに前処理や後処理を追加したとしても、 開発・運用メンバーが実行するべき操作が変わることはありません。 操作変更の周知コストも下がりますし、変更に伴う操作ミスも減らすことができます。 タスクランナーに求めるもの タスクランナーの機能としては必要最低限のものがよいと考えています。 高機能なタスクランナーも魅力的ではあるのですが、タス

    タスクランナーとしてのmakeを使う際の工夫と注意点 - KAYAC engineers' blog
  • 常時稼働が不要なRDSインスタンスを停止してAWS料金を節約する - KAYAC engineers' blog

    SREチームの長田です。 今回は開発・検証用Amazon RDS(以下RDS)の運用のはなしです。 はじめに 「常時使用するわけではないけど、一定の頻度で必要になるデータベース」というものがあります。 AWSリソースの動作確認を行う環境(カヤックではこれを「ステージング環境」と呼ぶことが多いです)や、 リリース後の負荷試験環境など、番環境とは異なる環境にあるデータベースがこれにあたります。 AWSのようなクラウドサービスを利用している場合、起動時間に対して課金が発生することが多いでしょう。 負荷試験用に用意したRDSインスタンスは、試験が実施されていない期間はただ課金が発生するだけのリソースになってしまいます。 たまにしか使われないデータベースを放置しておくのはもったいない 負荷試験で使用するものは、大抵の場合番環境と同じスペックのものを用意することになるでしょう。 すると番環境と同

    常時稼働が不要なRDSインスタンスを停止してAWS料金を節約する - KAYAC engineers' blog
  • カスタマイズで広がるAWS Copilotの実践力 - KAYAC engineers' blog

    SREチームの橋です。SRE連載の7月号になります。 カヤック社内では弊社藤原のecspressoAmazon ECSのデプロイツールとして活用していますが、AWS公式のデプロイツールAWS Copilot(現在v1.29)もそのオールインワン的な性質から、開発・運営リソースが限られるプロジェクトでは選択肢に入るようになってきました。 今回はそのAWS Copilot活用のため、背後にあるAWS CloudFormationテンプレートをカスタマイズする手法を紹介します。 AWS CopilotとCloudFormation AWS CopilotはECSなどのデプロイを簡単にするCLIツールですが、実態としてはManifestと呼ばれるYAMLの設定ファイルからCloudFormationテンプレートを生成し、各種リソースを作成・管理するものです。 AWS Copilotは内部的にC

    カスタマイズで広がるAWS Copilotの実践力 - KAYAC engineers' blog
  • mirage-ecsで各メンバー専用開発サーバーを実現!まちのコインの運用事例を紹介します - KAYAC engineers' blog

    SREチームの長田です。 突然ですが、 mirage-ecs というツールをご存知でしょうか? 今回はこのツールをまちのコインの開発チームでの使用例をもとに紹介します。 coin.machino.co mirage-ecs を使うと動作確認用のサーバー環境を、サーバーサイドのエンジニアでなくとも自由にいくつでも立ち上げることができるようになります。 「環境」は AWS のECSクラスタ上で起動し、専用のURLが割り当てられ、 認証*1を通過すればどこからでもアクセスできます。 これにより 「クライアントアプリとつなぎ込んで動作確認したいけど、開発環境が空いてないから確認できない」 や、 「プロダクトオーナーに新機能を確認してもらいたいけど、開発環境が空いてないから(以下略)」 といった問題が解消し、 開発と動作確認のサイクルをスピーディーに回すことができるようになります。 mirage-e

    mirage-ecsで各メンバー専用開発サーバーを実現!まちのコインの運用事例を紹介します - KAYAC engineers' blog