ブックマーク / techlife.cookpad.com (25)

  • 工事設計認証(技適)をとってみた - クックパッド開発者ブログ

    こんにちは、クックパッドの齋藤です。 私はハードウェアPdMとして、クックパッドマートで事業に関わるハードウェア(マートステーション、プリンタ、温度監視システム等)の企画開発・開発ディレクション・調達・保守等をやっています。 クックパッドマートとハードウェア クックパッドマートは2018年9月20日にリリースされた生鮮品のECプラットフォームです。リリースから4年以上経ち、新規事業ならではのスピードを維持しつつサービス拡大のため試行錯誤を日々続けています。 cookpad-mart.com クックパッドマートはiOSとAndroidの専用アプリで利用可能です。このアプリで商品を購入して、近所の受け取り場所(マートステーションと呼んでいます)で受け取れます。有料で自宅配送するオプションもあります。 クックパッドマートでは、材の輸配送や保管といった現実世界を相手にビジネスを展開しているため

    工事設計認証(技適)をとってみた - クックパッド開発者ブログ
    tmatsuu
    tmatsuu 2023/02/04
    わいわい。最高だな
  • Fluentd 集約ノードのオートスケール - クックパッド開発者ブログ

    こんにちは、技術部 SRE グループ アルバイトの小川です。この記事では、クックパッドでコンテナログの処理に利用している Fluentd ノードのオートスケール対応について紹介します。 クックパッドでは Amazon ECS を用いてコンテナ化されたアプリケーションをデプロイしています。クックパッドでの ECS の利用については過去の記事をご覧ください。 ECS 上で動くコンテナのログを閲覧するために、標準的には Amazon CloudWatch Logs を利用する方法があります。しかし、クックパッドではログ量やコストの問題で CloudWatch Logs は利用せず、独自のログ配送基盤を構築して運用しています。具体的には、ECS のコンテナインスタンスで実行している Fluentd から複数の Amazon EC2 インスタンスで構成される Fluentd 集約ノードにログを転送し

    Fluentd 集約ノードのオートスケール - クックパッド開発者ブログ
    tmatsuu
    tmatsuu 2022/07/09
    memo
  • レガシーとなった TLS 1.0/1.1 廃止までの道のり - クックパッド開発者ブログ

    SRE 兼よろず屋の id:sora_h です。最近は社移転プロジェクトをやっています。趣味は Web *1 です。 さて、クックパッドでは 2020 年 12 月に TLS 1.0 および TLS 1.1 (以後 "Legacy TLS") を廃止しました。 Legacy TLS は RFC 7457 でまとめられているような既知の脆弱性の存在などから、Chrome, Firefox といった主要ブラウザを含め各所でのサポートが打ち切られつつあります。また、現在では IETF においても Legacy TLS は deprecated と RFC 8996 にて宣言されました。 クックパッドでもセキュリティ対策およびレガシーな技術と向き合う一環で廃止を進めました。我々は歴史の長いサービスも提供しているため、古い Android や Internet Explorer などからのアクセス

    レガシーとなった TLS 1.0/1.1 廃止までの道のり - クックパッド開発者ブログ
    tmatsuu
    tmatsuu 2021/08/29
    わいわい。素晴らしい
  • クエリログを使ったAurora MySQLの負荷テスト - クックパッド開発者ブログ

    最近はZX-25Rが気になっている菅原です。4気筒250ccといえば、以前バリオス2に乗っていたんですが、あれもよく回るよいバイクでした。足つきの良さが懐かしいです。 この記事では、クエリログを使ったAurora MySQL負荷テストの話を書きます。 MySQL負荷テスト サービスに使われているデータベースは、Webサーバと比べて自動的なスケールアップ・スケールアウトが簡単ではないためキャパシティプランニングは非常に重要です。サービスへのアクセス増による負荷増大の結果、急激に性能が低下するためなるべく事前にキャパシティを把握しておきたいところです。 クックパッドではサービスのデータベースとして主にAurora MySQLを利用しているのですが、キャパシティを把握するための負荷テストには以前から苦労してきました。 1. シナリオを書くのが大変 サービスで使われているデータベースの負荷テス

    クエリログを使ったAurora MySQLの負荷テスト - クックパッド開発者ブログ
    tmatsuu
    tmatsuu 2020/11/23
    「データベース負荷テストツールqrn」ほっほー!そういえば負荷テストツールTsungがPostgreSQLやMySQLに対応してるけど試したことはない。
  • 最新のログもすぐクエリできる速くて容量無限の最強ログ基盤をRedshift Spectrumで作る - クックパッド開発者ブログ

    こんにちは。去年の今頃は Rust を書いていました。 インフラストラクチャー部データ基盤グループの id:koba789 です。 背景 クックパッドではデータ基盤の DBMS として Amazon Redshift を利用しています。 既存のデータ基盤について詳しいことは クックパッドのデータ活用基盤 - クックパッド開発者ブログ を参照してください。 今まで、ログは数時間に1度、定期実行ジョブで Redshift 内のテーブルにロードしていました。 ロードジョブの実行間隔が "数時間" と長めなのは、Redshift のトランザクションのコミットが遅いためです。 クックパッドでは数百ものログテーブルがあるため、仮に1分おきにすべてを取り込もうとすると秒間数回以上のコミットを行わなければなりません。 このような頻繁なコミットは Redshift 全体のパフォーマンスを悪化させてしまいます

    最新のログもすぐクエリできる速くて容量無限の最強ログ基盤をRedshift Spectrumで作る - クックパッド開発者ブログ
    tmatsuu
    tmatsuu 2018/12/09
    ふむ。いま新規にログをParquetでS3に保存したければKinesis FirehoseでParquet変換かなーと思っている今日このごろ。まだ実践には至ってない。
  • 自作キーボード沼 自由研究ノート - クックパッド開発者ブログ

    こんにちは!広報部のとくなり餃子大好き( id:tokunarigyozadaisuki )です。 クックパッドSlackには無数のオープンチャンネルが存在していますが、最近盛り上がりを見せているのが「#keyboards」というチャンネル。先週末コミックマーケットが開催されていたためここ最近はその話でもちきりの様子でしたが、普段から大事な仕事道具であるキーボードにこだわりを持った社員が日々情報交換をしています。興味位で社員のキーボードをのぞいでみると、ピカピカ光るものから、カチカチッと音がなるもの、アルファベットも数字も書いていないもの……その多彩さにびっくりします。 そこで、クックパッドエンジニアの最近のキーボード事情を調査してみました! なお、HHKBやRealforceはクックパッドでは当たり前だったので、紹介は割愛いたします。 クックパッドエンジニアのキーボード @takai

    自作キーボード沼 自由研究ノート - クックパッド開発者ブログ
    tmatsuu
    tmatsuu 2018/08/17
    癖が強すぎる。すごい。自作じゃないけど昔C.ITOHのSHORT TYPE KEYBOARDを愛用してた。あれ復刻してください東プレさん
  • Chaos Engineering やっていく宣言 - クックパッド開発者ブログ

    技術部のヨシオリです。 Netflix が Chaos Engineering の論文を公開して 2 年ほど経ちました。 クックパッドは最近、 Chaos Engineering を導入する事を決めました。 この記事ではその背景を紹介したいと思います。 そもそも Chaos Engineering とは Netflix では Failure Injection Testing として、営業時間中に意図的に障害を起す事をやっていました。Chaos Monkey というインスタンスとサービスを落すものから Chaos Gorilla、Kong という availability zone や region 単位で障害を発生させるものなどです。 その経験から Chaos Engineering というものが提唱されました。 Principles of Chaos Engineeringによれば C

    Chaos Engineering やっていく宣言 - クックパッド開発者ブログ
    tmatsuu
    tmatsuu 2018/08/08
    スポットインスタンスの環境にする事によって強制するのいいね。Chaos Engineeringの導入は難しくてもまずはスポットインスタンスでも問題ないようにするってとこから始めるの良い。
  • x3 Speed Up Android CI at Cookpad - クックパッド開発者ブログ

    海外事業部の松尾(@Kazu_cocoa)です。こちらは、私たちの x3 Speed Up Android CI at Cookpad に公開した記事の日語訳です。英語でご覧になりたい方は原文を一読ください。 以下に登場するAndroidアプリは海外版のクックパッドアプリとそれにまつわる環境を指します。国内のものと構成も異なるところがありますので、そのあたりを頭に入れつつ読んでいただければと思います。 この記事では、現在のAndroidアプリ開発向けCI環境の紹介とその環境構築の流れを紹介します。現在の環境では、GitHub上に作成されたプルリクエストへのプッシュ毎にビルド・テストの実行含めて処理が 7分程度 で完了します。これらの処理にはAPKの作成、各種テストの実行が含まれます。 以前は、私たちのCIはプッシュ毎に 合計で25分程度 かかっていました。そのころは、2つの役割の異なるJ

    x3 Speed Up Android CI at Cookpad - クックパッド開発者ブログ
    tmatsuu
    tmatsuu 2018/07/12
    Androidエミュレータの制約がベアメタルインスタンスなら回避できる。はー知らなかった。
  • オフィス・AWS環境をセキュリティ監視するためのログ収集 - クックパッド開発者ブログ

    インフラストラクチャー部セキュリティグループの水谷 (@m_mizutani) です。 現在、クックパッドセキュリティグループではセキュリティ監視を高度化に対して取り組んでいます。サービスに関連する部分の監視は以前からやってきたのですが、ここしばらくはそれ以外のインフラやオフィスで発生するセキュリティ侵害を検知することを目的とした監視基盤の構築に力を入れています。 昔は一般的にオフィス、インフラのセキュリティ監視と言えば、イントラネット内に閉じた環境でのログ収集から分析まで完結していたケースも少なくなったと考えられます。しかし現在だとインフラとしてクラウドサービスを多用したり、業務で使うツールをSaaSによって提供するという場面も増えているかと思います。このような状況だとセキュリティ監視のために見るべき箇所がばらけてしまうといったことが起こります。クックパッドでも積極的にSaaSやAWS

    オフィス・AWS環境をセキュリティ監視するためのログ収集 - クックパッド開発者ブログ
    tmatsuu
    tmatsuu 2018/06/18
    「アンチウィルスソフトとしてCylance PROTECTを採用」ほう。初耳
  • AWS Lambda@Edge で画像をリアルタイムにリサイズ&WebP形式へ変換する - クックパッド開発者ブログ

    技術部の久須 (@hkusu_) です。クックパッドではモバイル基盤グループにて Androidクックパッドアプリの開発・メンテナンスに携わっています。 普段の業務とは少し異なるのですが、画像リクエストに応じリアルタイムに画像を変換してレスポンスするという仕組みを AWSLambda@Edge を用いて実現してみたので、構築した環境の内容やコードを紹介したいと思います。画像変換の内容はコードの実装次第で大概のことは実現できそうですが、今回のコードの内容はスマホ向け WEB サイトやモバイルアプリ向けの画像配信を想定し、通信容量の削減および表示速度の向上を目的とした画像のリサイズ(主に縮小)と WebP 形式への変換です。 注意:実運用している段階ではないので参考にされる場合はご注意ください。ちなみにクックパッドには番環境とは切り離された調査・検証用の AWS 環境があり、今回の

    AWS Lambda@Edge で画像をリアルタイムにリサイズ&WebP形式へ変換する - クックパッド開発者ブログ
    tmatsuu
    tmatsuu 2018/06/03
    QueryString Forwadingを有効にするのでETag/Last-Modifiedは変更不要。なるほど上手い。TTL、Defaultだけ気をつければMinimumとMaximumはデフォルトで良いとの認識でいる。
  • S3に保存したログファイルをストリーム処理するサーバーレスアプリケーションの紹介 - クックパッド開発者ブログ

    インフラストラクチャー部セキュリティグループの水谷(@m_mizutani)です。 クックパッドでは現在セキュリティ監視の高度化に取り組んでおり、その一環としてセキュリティ関連のログ収集およびその分析に力を入れています。ログ収集の部分では可用性などの観点からAWSのオブジェクトストレージサービスであるS3に一部のサービスやサーバのログをまず保存し、後から保存されたファイルを読み込んで分析などに利用しています。分析のためにS3に保存したファイルを前処理する方法としてAWS Glueなどを用いたバッチ処理がありますが、到着したログをなるべくストリームデータのように扱いたい場合もあります。特にセキュリティ関連のログでは以下のようなユースケースで利用しています。 アラートの検出: ログを検査してその中から危険度の高いと考えられるログを探し出し、アラートとして発報します。アラートの具体的な例としては

    S3に保存したログファイルをストリーム処理するサーバーレスアプリケーションの紹介 - クックパッド開発者ブログ
    tmatsuu
    tmatsuu 2018/05/05
    いいね。S3Pathと小さいサイズを渡すだけだからKinesisの代わりにSQS FIFOでもええんちゃうかと思ったんだけど何か理由があるんだろうか。Async Invokeができるからかな。
  • クックパッドのデータ活用基盤 - クックパッド開発者ブログ

    インフラ部 & 技術部の青木峰郎です。 クックパッドでは全社的にAmazon Redshiftを中心としたデータ活用基盤を構築しています。 今日はその全体像についてお話ししたいと思います。 データ活用基盤の全体像 まず、以下にクックパッドのデータ活用基盤の全体像を示します。 大きく分けると入力が2系統、内部処理が1系統、出力が3系統あります。 入力はMySQLからのインポートとログのロードがあり、どちらも独自に構築したシステムで行われています。 DB内部のデータ処理はSQLバッチのみです。 そして出力は管理画面やBIツールからのアクセスとバッチ処理によるエクスポートに大別できます。 以下1つずつ説明していきましょう。 入力その1: MySQLインポートシステム MySQLからRedshiftへのマスターテーブル取り込みにも独自のインポートシステムを使っています。 このインポート処理には、つ

    クックパッドのデータ活用基盤 - クックパッド開発者ブログ
    tmatsuu
    tmatsuu 2017/10/08
    「Redashはキューまわりのできが悪すぎて、 アドホックな社内ローカルパッチを大量に当ててなんとか回している」ほうほう
  • Synthetic Monitoring を活用したグローバルサービスのネットワークレイテンシの測定と改善 - クックパッド開発者ブログ

    インフラ部 SRE グループの渡辺(@takanabe)です。普段はクックパッドのグローバルサービス (https://cookpad.com/us) のインフラの開発や運用をしています。 クックパッドは、21 言語・67 カ国以上を対象にサービスを展開しています ( 2017 年 6 月末時点)。今後もその数を増やしていく予定です。 世界中で使われるサービスのインフラを開発していく上で、乗り越える必要がある課題は沢山ありますが、その中でも、ユーザが利用するクライアントとクックパッドのインフラをむすぶネットワークのレイテンシは特に大きい課題です。 稿ではなぜグローバルに利用されるサービスにおいて、ネットワークレイテンシが問題になるのか、また、クックパッドではネットワークレイテンシをどう計測し改善しようとしているかについて解説します。 ネットワークレイテンシとは ユーザがサービスにリクエス

    Synthetic Monitoring を活用したグローバルサービスのネットワークレイテンシの測定と改善 - クックパッド開発者ブログ
    tmatsuu
    tmatsuu 2017/09/30
    昔VelocityでLinkedInがRUMとPOPの話をしていたの思い出した。グローバル展開してるサービスでないと手を出す機会がないのでこういう経験できるのいいね。
  • スキューのない世界を目指して - クックパッド開発者ブログ

    こんにちは。インフラストラクチャー部データ基盤グループの小玉です。 先日Amazon Redshift(以下、Redshift)で32TBのテーブルを全行スキャンするクエリを3同時に走らせたまま帰宅し、クラスターを落としてしまいました。 普段はRedshiftのクエリをチューニングしたり、データ基盤周りの仕組みを慣れないRubyで書いたりしています。 突然ですが、スキュー(skew)という単語をご存じでしょうか。 「skew 意味」で検索すると「斜め」とか「傾斜」といった訳が出てきますが、コンピューティング界隈では「偏り」という訳語が定着していると思います。 さらに、分散並列DB界隈で単にスキューもしくは偏りと言った場合、それはしばしばデータの偏りを指します。 データが偏っているとは データが偏っているとは、複数ノードで構成される分散並列DBにおいて、各ノードが保持するデータ量(行数)に

    スキューのない世界を目指して - クックパッド開発者ブログ
    tmatsuu
    tmatsuu 2017/08/04
    なるほど。このデータ構造ならこのkeyというわけではなくて、一番良く実行するクエリーに合わせてkeyを決定するのが良さそうと感じました。
  • 時系列データベースに関する基礎知識と時系列データの符号化方式について - クックパッド開発者ブログ

    こんにちは。インフラストラクチャー部 SRE グループの吉川 ( @rrreeeyyy ) です。今期オススメのアニメはツインエンジェル BREAK です。 普段の業務並びに趣味の一環として、サーバのモニタリング環境の調査や改善に取り組んでいます。 そこで稿では、モニタリングのコンポーネントの一つとして外すことが出来ない、時系列データベースの基礎知識に関して紹介します。 そもそも時系列データ・時系列データベースとは? 時系列データというのは、特定の時間ごとに何らかの値を取得した際の、取得した一連の値を指します。 例えば、以下のようなフォーマットをしたデータなどは時系列データにあたるでしょう。 timestamp1,key,value1 timestamp2,key,value2 timestamp3,key,value3 : 時系列データベースとは、上記のような時系列データの保存・処理に

    時系列データベースに関する基礎知識と時系列データの符号化方式について - クックパッド開発者ブログ
    tmatsuu
    tmatsuu 2017/06/08
    rrreeeyyy君さん素晴らしい
  • Web サービスの完全 HTTPS 化 - クックパッド開発者ブログ

    インフラストラクチャー部長の星 (@kani_b) です。 2017年1月5日をもって、クックパッド における全ページで HTTPS が使われるようになりました。 完全 HTTPS 化をするにあたり、その理由や具体的な進め方について紹介します。 以前 SRE Tech Talks #2 にて一部発表した内容も含みますので、ご興味のある方はあわせてスライドもご覧ください。 完全 HTTPS 化に踏み切った理由 以前のクックパッドは、ログインや登録情報の参照など、いわゆる個人情報や認証情報を扱う箇所のみに HTTPS が使われていました。 このように「必要な箇所にのみ HTTPS を使う」構成は、ある程度歴史のある Web サービスにおいてよく使われている構成です。 この状態から、完全 HTTPS 化に踏み切った理由を説明します。 サービスをよりセキュアにするため HTTPS の利用を考えるに

    Web サービスの完全 HTTPS 化 - クックパッド開発者ブログ
    tmatsuu
    tmatsuu 2017/04/25
    勉強会でこの話を聞いたときにフィーチャーフォン対応を聞いたところ、フィーチャーフォンは別ドメインなので引き続きHTTPも提供とのこと。なるほどー。
  • MySQL with InnoDB のインデックスの基礎知識とありがちな間違い - クックパッド開発者ブログ

    こんにちは、サービス開発部の荒引 (@a_bicky) です。 突然ですが、RDBMS の既存のテーブルを見てみたら「何でこんなにインデックスだらけなの?」みたいな経験はありませんか?不要なインデックスは容量を圧迫したり、挿入が遅くなったりと良いことがありません。 そんなわけで、今回はレコードを検索するために必要なインデックスの基礎知識と、よく見かける不適切なインデックスについて解説します。クックパッドでは Rails のデータベースとして主に MySQL 5.6、MySQL のストレージエンジンとして主に InnoDB を使っているので、MySQL 5.6 の InnoDB について解説します。 InnoDB のインデックスに関する基礎知識 インデックスの構造 (B+ 木) InnoDB では B+ 木が使われています。B+ 木は次のような特徴を持った木構造です。 次数を b とすると、

    MySQL with InnoDB のインデックスの基礎知識とありがちな間違い - クックパッド開発者ブログ
    tmatsuu
    tmatsuu 2017/04/19
    ほぼ同意だけども、最後の冗長なインデックス削除についてはインデックスマージ周りの挙動からMySQLにおいては必ずしも削除が妥当とは言い切れないかも?と思ってる。インデックスマージが発生する時点で負け?ぐぬぬ
  • ActiveRecordを使ってRedshiftから大量のデータを効率的に読み出す - クックパッド開発者ブログ

    こんにちは、トレンド調査ラボの井上寛之(@inohiro)です。 普段は、クックパッドの検索ログを基にした法人向けデータサービス「たべみる」の開発や、 広告事業周辺のデータ分析などを担当しています。 Amazon Redshiftなどのデータベースに蓄積されたログなどの大量のデータに対して、 日次や週次などの単位でバッチ処理を行っている方は多くいらっしゃると思います。 ログなどを扱うバッチ処理では、処理対象が膨大であるとアプリケーションが使うメモリが増大し、 枯渇してしまう恐れもあるため、データの扱いに気をつける必要があります。 データベース内で完結するバッチ処理ならばそこまで気にする必要は無いかもしれませんが、 外部のプログラムからデータを読み出して処理する場合は特に注意が必要です。 そこで考えられる一つの工夫として、処理対象を分割して、繰り返して処理を行う方法が挙げられます。 一般的な

    ActiveRecordを使ってRedshiftから大量のデータを効率的に読み出す - クックパッド開発者ブログ
    tmatsuu
    tmatsuu 2016/07/02
    golangでcursorも扱えるだろうか。RowsにNext()があるけども1行単位でしか取れないっぽい?
  • 「現在時刻」を外部入力とする設計と、その実装のこと - クックパッド開発者ブログ

    こんにちは。技術部 開発基盤グループの諸橋です。 クックパッドでは昨今の多くのWeb企業と同じように、GitHub EnterpriseのPull Requestを使ったコードレビューを広範に実施しています。わたしたちのコードレビューでは、ソースコードの字面にとどまらず、サービスの機能として魅力的かどうかや、保守性を含めた設計が適切かといった議論に発展することも良くあります。 きょうはそんななかで話題に上がった「現在時刻」の扱いかたに関する設計の話を書きます。 背景 サービスを開発・運営している我々には、時間帯によって出し分けたり、特定の期間のみに表示したいコンテンツがたくさんあります。 そのたびにデプロイし直すというのはつらいので(特に24:00に出なくなるコンテンツなど)なんとかしたくなりますが、一方で時限式のコンテンツはその時になるまでちゃんと動いているか確証が取れないので怖いです。

    「現在時刻」を外部入力とする設計と、その実装のこと - クックパッド開発者ブログ
    tmatsuu
    tmatsuu 2016/05/31
    予約機能と予約プレビュー機能を実装した経験があると身につくやつだ。
  • OSSEC ではじめるセキュリティログ監視 - クックパッド開発者ブログ

    インフラストラクチャー部の星 (@kani_b) です。 Heartbleed, ShellShock, XSA-108 (a.k.a. EC2 インスタンス再起動祭), POODLE など、今年は話題となるような脆弱性が各地を襲う一年でした。 脆弱性への対応に加え、いわゆるセキュリティ対策に日頃頭を悩ませている方も多いのではないかと思います。 一言にセキュリティ対策と言っても、実際やるべきことは多岐にわたります。今回はそのうちの一つとして、OSSEC という IDS (侵入検知システム) を使ったセキュリティログ監視についてご紹介します。 OSSEC とは OSSEC は、いわゆるホスト型の IDS (HIDS) です。以下のような機能を持っています。 ログ解析、監視 ファイルの変更監視 rootkit の検知 それらをトリガにしたプログラムの自動実行 (Active Response)

    OSSEC ではじめるセキュリティログ監視 - クックパッド開発者ブログ
    tmatsuu
    tmatsuu 2015/02/01
    記事きてたのね