タグ

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

  • カヤック発OSSカタログ - KAYAC Engineers' Blog

    SREチームの長田です。 今回は、カヤックのメンバーが業務で使うために開発・公開しているOSSなプロダクトをまとめて紹介しようという企画です。 KAYAC organization以下にあるものだけでなく、在籍中のメンバーが作ったものもひっくるめて、実際に業務で使用しているものを中心に 紹介しています。 以下の3つのカテゴリに分けて記載しています。 各カテゴリ内はアルファベット順です。 ツール編 人間が手動で実行するもの アプリケーション編 どこかに常駐して、イベントを受け取ると動作するもの ライブラリ編 ツールやアプリケーションから参照されるもの 集めてみたらそこそこの量になったので、記事では詳細な説明は省いています。 GitHubリポジトリのURLや関連記事のリンクを併記していますので、より詳しく知りたい場合はそちらを参照ください。 (...) 内はそのプロダクトで使用している主なプ

    カヤック発OSSカタログ - KAYAC Engineers' Blog
  • CEL(Common Expression Language)を使ってIAMポリシーを検索する iam-policy-finder - KAYAC Engineers' Blog

    SREチームの藤原です。 今回は CEL(Common Expression Language) を使って、AWSのIAMポリシーを検索するツールを作ったので紹介します。 github.com 3行でまとめ CEL (Common Expression Language)の式を指定してAWS IAMポリシーを検索するツールをOSSとして作りました。GetAccountAuthorizationDetails APIで取得したIAMポリシーをCELで評価して、マッチするものを出力します 例えば「lambda:GetFunctionがあるがlambda:ListTagsがないポリシーを探す」などができます AWSからたびたびやってくる、IAMポリシーに関するお知らせに対応するのに便利です 突然の「Action Required」 ある日、AWSからこんなメールが届きました。 Lambda Ge

    CEL(Common Expression Language)を使ってIAMポリシーを検索する iam-policy-finder - KAYAC Engineers' Blog
  • クラシコムさんと合同勉強会を開催しました! - KAYAC Engineers' Blog

    技術部の小池です。 2024年7月19日に 北欧、暮らしの道具店 を運営している株式会社クラシコムさんと合同勉強会を開催しました。 クラシコムさんとは SRE と データ基盤 領域の協業によるご縁があり、2019年にも勉強会を開催しています。 クラシコムさんの新オフィス 今回の勉強会は2024年3月に移転したクラシコムさんの新オフィスで開催しました。 白を基調とした開放的で広々とした空間でとても居心地がよかったです。 勉強会の様子 はじめに乾杯をして軽くピザをべ、穏やかな雰囲気で発表が始まりました。 OpenAI/Gemini APIを使って EPUBを翻訳するCLIツールをつくってみた OpenAI/Gemini APIを使って EPUBを翻訳するCLIツールをつくってみた クラシコム冨田さんの発表です。 speakerdeck.com EPUB のデータ構造や OpenAI API

    クラシコムさんと合同勉強会を開催しました! - KAYAC Engineers' Blog
  • 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
  • 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
  • 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
  • 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
  • 社内発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
  • タスクランナーとしてのmakeを使う際の工夫と注意点 - KAYAC engineers' blog

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

    タスクランナーとしてのmakeを使う際の工夫と注意点 - 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
  • 負荷試験とOSSツール選定の話 - KAYAC engineers' blog

    この記事は 面白法人グループ Advent Calendar 2022 の15日目の記事です。 こんにちは、カヤックボンドの松です。 今回は弊社の技術顧問をご担当いただいている、ドレッドノート株式会社の佐々木様よりご寄稿いただいた記事となります! みなさん、はじめまして! 主にパフォーマンスチューニングや検証用のボット開発等を行っているドレッドノート株式会社の佐々木と申します。 この度、カヤックグループの皆様より Advent Calendar 2022 に寄稿する機会を頂戴しましたので、2022年12月時点の方法を元に負荷試験とモダンなOSSツールについて書いてみたいと思います。 負荷試験の重要性 突然ですが、みなさんが関わっている案件で負荷試験を行っていますか? サービス開始前・提供中、どちらであっても負荷のかけ方によって様々な情報を得ることができます。 現状の性能・台数・実装で、ど

    負荷試験とOSSツール選定の話 - KAYAC engineers' blog
  • RedshiftのMERGE SQL commandがGAになりましたね。 - KAYAC engineers' blog

    SREチームの池田です。 今回はAmazon RedshiftのMERGE SQL commandがGAになりましたので、MERGE SQL commandの何が嬉しいのかを話をしたいと思います。 SRE連載 4月号になります。 aws.amazon.com 3行でまとめ RedshiftのMERGE SQL commandがGAになりました。 Bulk UpsertをSQL1文で実行できるものです。 以前と比べるとスッキリします。 複数のデータソースから算出されるレポートの更新に使うと嬉しい。 以前のRedshiftにおけるBulk Upsertについて ご存知かもしれませんが、『なかったらInsert、あったらUpdate』を通称Upsertといいます。 Redshiftにおける、Upsertのやり方ですがMERGE SQL commandが出る前のRedshiftでは以下のドキュメン

    RedshiftのMERGE SQL commandがGAになりましたね。 - KAYAC engineers' blog
  • 【解説編】CircleCIからOIDCを用いて安全にGoogle Cloudにアクセスする - KAYAC engineers' blog

    SREチーム(新卒)の市川恭佑です。これはカヤックSRE連載の2月号です。 よく見ると投稿日が3月になっていますが、どちらかと言うと2月が28日までしかない方に問題があるので、大丈夫です。(何が?) ということで、2023年も滑り出し好調のカヤックSRE連載ですが、前回の記事ではCircleCIからGoogle CloudにOIDCでアクセスする方法について、 ちゃんと動く(はずの)ソースコードをサクッと紹介いたしました。 techblog.kayac.com さて、Google CloudとCircleCIをお使いの皆様、もうOIDC対応は完了しましたか? 安心してください。私のプロジェクトでも一部未完遂です。(おい) ということで今回は、前回紹介したソースコードを深掘りして解説します。 私と同じように、途中でなんか面倒になって一旦塩漬けにしたら正直忘れかけてる長い道のりの途中にいる皆様

    【解説編】CircleCIからOIDCを用いて安全にGoogle Cloudにアクセスする - KAYAC engineers' blog
  • ゲームにおけるA/Bテストについて - KAYAC engineers' blog

    こんにちは。技術部平山です。 今回は、ゲームにおけるA/Bテスト について論じます。 「論じます」で始めたことで察しがつくかとも思いますが、今回はブログではありません。 媒体はブログですが、ブログの容量ではない代物になっております。3.5万字(115KB)超えです。 ゲームにおけるA/Bテストについて、実施の方法や問題点、 倫理的側面に至るまで幅広く書き連ねてみました。 読んで欲しいのはどちらかと言えば同僚なのですが、 そういう時にはまず社外に出してしまった方が良いものですので、 ブログにしてしまいます。 比較的同業の方が読むことを想定しているため、 図表を用いてわかりやすくすることはしておりません。 これを書いた人間は何者か 技術的な問題の前に ゲームにおいても構図は全く同じ A/Bテストが可能である条件 A/Bテストの手続きを概観する 振り分け アプリ内振り分けの場合 Firebase

    ゲームにおけるA/Bテストについて - KAYAC engineers' blog
  • SRE連載が始まります! - KAYAC engineers' blog

    あけましておめでとうございます。SREチーム(新卒)の市川恭佑です。 カヤック技術ブログでは記事が2023年初エントリですが、Happy Lunar New Year!の方が違和感のない時期になってしまいました。 年、新たにカヤックSRE連載と題した企画を始めるので、概要についてご報告します。 連載企画を始める経緯 カヤックの技術ブログといえば毎年恒例のアドベントカレンダー企画が人気ですが、これは12月限定のため、それ以外の時期にブログの更新が激減する傾向がありました。 ブログ過疎化の対策として、カヤックでは去年からSREチームで毎月1のペースでブログ記事を出していました。 実のところ、内部的にはこれを「SRE連載」と読んでいました。 「とりあえずやってみよう」というノリで始まった連載でしたが、結果的には「12月を除くすべての期間において記事を出す」という実績を作れたので、年は正式

    SRE連載が始まります! - KAYAC engineers' blog
  • Webサービスの急激なアクセス数増加を予測して対処する方法と実践 - KAYAC engineers' blog

    どうも、ゲームコミュニティ事業部Tonamelのサーバサイド担当の谷脇です。 今回はTonamelのサービス特性上、どうしても発生する急激なアクセス数の増加(以下スパイクアクセス)をどのように対処しているかをお話します。 Tonamelのサービス内容については以前の記事に書いています。一言でいうと「誰でもeスポーツ大会の運営ができるサービス」です。 Tonamelの特徴 大会が開始したときに発生するスパイクアクセス スパイクアクセスの様子 上記は、あるゲーム大会が大会を開始した10:40ごろのリクエスト数の遷移です。Tonamelは大会の開始と同時にトーナメント表が公開されます。大会に参加している人はもちろん、観戦を行っている人もトーナメント表を見に来ます。観戦する人の同期としては、知人や推しの選手のトーナメント表上での位置や、相手を確認しに来ているようです。 Tonamelに限らず、We

    Webサービスの急激なアクセス数増加を予測して対処する方法と実践 - KAYAC engineers' blog
  • 2ヶ月ちょいで3kmを1分速く走れるようになる方法 - KAYAC engineers' blog

    この記事はTech KAYAC Advent Calendar 2022 21日目の記事です。 こんにちは、サーバサイドエンジニアの千葉です。 2年前に健康診断の結果が悪くて健康増進のため始めたランニングでしたが、すっかり習慣となってしまい、今ではフルマラソンでサブ3.5(3時間30分切り)を目標に日々練習をしています。 今回こちらの記事 で紹介したNIPPON ITチャリティ駅伝に参加することになり、大会に向けて練習した結果、2ヶ月ちょいで3kmのタイムを1分以上縮めることができたので記事にしてみました。 練習環境と練習内容 練習環境ですが、私の住んでいる近所には平坦な箇所があまりなく(坂には困らないです)、橋のあたりにアップダウンがある河川敷をメインで走っています。 速いタイムを出すためにはやはりスピード練習をやる必要があるのですが、トラックや平坦で長い距離を使って行うような練習はでき

    2ヶ月ちょいで3kmを1分速く走れるようになる方法 - KAYAC engineers' blog
  • Go言語のためのRedshift Data API sql driver 『redshift-data-sql-driver』 - KAYAC engineers' blog

    この記事はAWS Analytics Advent Calendar 2022の16日目です。 こんにちは、SREチーム所属の@mashiikeです。 13日目にも記事を書いて、なんと欲張って2回目も書いてます。 13日目の記事は『redshift-data-set-annotator』に関してでした。 このような形で、私は用途がニッチな物を作ることが多いのですが、日はニッチシリーズの中からGo言語のためのRedshift Data API sql driverについて話します。 Redshift Data API Redshiftへ接続する際は、通常VPCへのアクセスが必要になります。 (Public AccessibilityをONにすればその限りではありませんが、セキュリティを考えると中々ONにすることはためらわれます。) そのため、psqlクライアント等を使って手元から接続するの

    Go言語のためのRedshift Data API sql driver 『redshift-data-sql-driver』 - KAYAC engineers' blog
  • 秘密情報には出どころも書いてくれ!頼む! - KAYAC engineers' blog

    SREチームの長田です。 KAYAC Advent Calendar 2022の11日目の記事です。 アプリケーションから何かしらの外部サービスを利用するとき、そのサービスを利用するためのAPI Keyなり秘密鍵なりの秘密情報を保持することになります。 暗号化したものをファイルとしてアプリケーションに持たせたり、 Amazon Web Services(AWS)ならAWS Secrets Managerや AWS Systems ManagerのParameter Store(SSM Paramater Store)に保存したものを実行時に読み込んだりするでしょう。 これらの秘密情報、どこから来たのかわかりますか? どこから来た秘密情報なのか 秘密情報を使って出どころを調べられるのであれば問題はないでしょう。 # 例えばAWSのIAM User Credenntialsとか $ AWS_A

    秘密情報には出どころも書いてくれ!頼む! - KAYAC engineers' blog
  • GoでDBを使ったアプリを書くときみんなどうしてる? Tonamelはどうしているか晒してみます - KAYAC engineers' blog

    こんにちは。ゲームコミュニティ事業部サーバサイドエンジニアの谷脇です。 この記事はTech KAYAC Advent Calendar 2022の2日目です。 私はTonamelというWebサービスを運営しています。Tonamelでは、GoPerlを用いてサーバサイドアプリケーションを構築しています。 この記事ではTonamelでのパッケージ構成や、DBを使う際に用いているライブラリについて紹介します。 そもそもTonamelって何 パッケージ構成やは、アプリケーションの特性や、実装の複雑さなども考慮するため、前提として作っているものを説明します。 tonamel.com Tonamelとはeスポーツを始めとした競技の大会を開催するときに用いるプラットフォームです。大会主催者と参加者双方が利用します。 Tonamelの機能説明 この図に挙げているように、『参加者管理』と『トーナメント表』

    GoでDBを使ったアプリを書くときみんなどうしてる? Tonamelはどうしているか晒してみます - KAYAC engineers' blog