タグ

ブックマーク / inside.pixiv.blog (12)

  • Herokuから ECSに 移行した - pixiv inside

    こんにちは、インフラ部の id:sue445 です。私事ですが先日GCPの Professional Cloud Architect を取得しました。 そういうわけで今日はGCPではなくAWSの話をします。 tl;dr; 劇的ビフォーアフター 構成 移行のモチベーション パフォーマンス向上 コスト圧縮 アーキテクチャの採択理由 やったこと 1. DB作成 2. MySQL 5.7 -> 8.0 MySQL 8.0でハマったこと MySQL 8.0からデフォルトの認証がcaching_sha2_passwordになった RDSのMySQL 8.0からMariaDB 監査プラグインがなくなった 3. 番用のDockerイメージを作成 困ったこと:CodeIgniterがログの標準出力に対応していなかった 4. ECS + Fargate + CodePipeline構築 5. CDN作成 6

    Herokuから ECSに 移行した - pixiv inside
  • Terraform運用事例書きました - pixiv inside

    こんにちは、インフラ部の id:sue445 です。 Terraformなにもわからないけどディレクトリ構成の実例を晒して人類に貢献したい - エムスリーテックブログ や Terraformのディレクトリ構成の模索 - Adwaysエンジニアブログ を読んで影響されたのでピクシブのTerraform運用事例を紹介しようと思います。 Terraformの採用理由 GitLabでのリポジトリ構成 Terraformのファイル構成 moduleがうまく使えたと思っている事例 GitLab CIでTerraformをいい感じにCIする テンプレートの使い方 ピクシブで実際に使っているテンプレートファイル このテンプレートでできること masterブランチ以外 masterブランチ このテンプレートファイルのポイント 最後に Terraformの採用理由 Terraformと同じようなプロビジョニン

    Terraform運用事例書きました - pixiv inside
  • ピクシブの全員が共通で使ってるSaaSの紹介 - pixiv inside

    この記事では2020年5月時点でピクシブの社員全員が使っている主なSaaSを紹介します。 ピクシブとSaaS ピクシブはpixiv、BOOTHなどクリエイターを支援する様々なサービスを提供していますが、これらは基的に内製しています。 業務を支えるシステムは最近ではもっぱらSaaSを選ぶことで、社内の開発・運用力をユーザ向けにフォーカスするようにしています。 そんなピクシブでは、かつてはチームごとにバラバラにSaaSを選んで使うことを基にしてきました。 現在はチームが違えどピクシブのプロダクト全体を皆で支えているという意識が高まり、チーム間での共通言語化をすること、利用ノウハウを高めることの重要さが上がってきました。 そういう変化を背景として、徐々に使うSaaSを全員で同じものを使うようになってきています。 なお今でも新しいサービスの利用が必要になったら、どの社員でも申請することができま

    ピクシブの全員が共通で使ってるSaaSの紹介 - pixiv inside
  • Rubyコア最前線 pixiv inside出張版 - pixiv inside

    皆さんこんにちは。最近はGoでコードを書いてることが多いですが、実はRubyコミッターという肩書も持っているusaです。 Rubyといえば、毎年クリスマスの頃に新バージョンがリリースされる事が多いですね。 もちろん今年も、Ruby 2.6のリリースが予定されています。 新しいRubyではどんな変更が入るのか、ということに興味がある方も多いかとは思いますが、そういった記事は探せばたくさん見つかると思います。 稿ではそういう話ではなくて、Rubyにどんな変更が入るのかがどうやって決められているのか、ということを紹介します。 Ruby開発者会議 普段から皆さんの目に触れるWebサービスなどで広く使われているRuby。もちろん、ピクシブ社内でも様々なサービスがRubyで作成され、ユーザーの皆さんに向けて提供されています。 コミッター さて、当然のことながら、Ruby自身もプログラムですから、誰か

    Rubyコア最前線 pixiv inside出張版 - pixiv inside
  • 毎秒1万リクエストの負荷試験をした話 - pixiv inside

    はじめまして。ピクシブで広告関連のプロダクトを開発しているeastです。今回は、社内で運用している広告配信サーバーの負荷テストを実施したので、その話をしたいと思います。 経緯 ピクシブの広告配信サーバーは、pixiv体を中心に複数のサービスに対して広告配信を行なっています。現在私はこの広告配信サーバーの大規模改修を行なっているのですが、先日ついに広告配信サーバーの改修がほぼ完了したので、試しに負荷試験を行なってみたいと思い立ちました。 目標は毎秒1万リクエスト ピクシブの広告配信サーバーへのリクエスト数はDailyで 4〜6億req もあり、これは毎秒平均に直すと約 5,000RPS(Request Per Second) になります。さらに、ピークタイムである休日の深夜帯には 12,000RPS にも達します。つまり新しい広告配信サーバーにも、毎秒12,000のリクエストを捌く性能が必

    毎秒1万リクエストの負荷試験をした話 - pixiv inside
  • Content Security Policy Level 3におけるXSS対策 - pixiv inside

    こんにちは、セキュリティエンジニアのkoboです。ピクシブには2018年4月に入社しており、セキュリティ観点でのアプリケーション開発や脆弱性報奨金制度の運用などを行っています。 記事では、現在ピクシブの一部のサービスで取り組んでいるContent Security Policyについて知見を共有します。 概要 Content Security Policy (CSP) は、XSSを主としたウェブアプリケーションセキュリティの問題を軽減するために考案されたブラウザのセキュリティ機構です。 ウェブアプリケーションは、 Content-Security-Policy ヘッダをHTTPレスポンスに含めることで、意図していないJavaScriptの実行やリソースの読み込みをブラウザ側で制限することができます。 CSPは2012年頃よりブラウザに実装されていますが、2016年のGoogleの調査によ

    Content Security Policy Level 3におけるXSS対策 - pixiv inside
  • 永久保存版Railsアップデートガイド - pixiv inside

    はじめまして、2018年7月入社の sue445です。自称「フルスタックキュアエンジニア」です。最近はpixiv PAYのチームでRailsを書いたり社内gemを作ったりしています。 好きなプリキュアはキュアピースです。 前置き 先日Rails 5.2.1がリリースされました https://weblog.rubyonrails.org/2018/8/7/Rails-5-2-1-has-been-released/ pixiv PAYでもその対応を行っていて、先日番環境にRails 5.2.1を投入しました 💪 ググると特定のバージョンでのアップデート方法はいろいろ見つかるのですが、どのバージョンでも使える汎用的な方法が意外になかったので紹介しようと思います。 Rails 4.1系以降はだいたいこの方法でアップデートしてきたのでそれなりに実績のある手法だと思います。 筆者スペック 初め

    永久保存版Railsアップデートガイド - pixiv inside
  • 今日から簡単!Webpacker 完全脱出ガイド - pixiv inside

    こんにちは、@f_subal です。普段はおもに pixivFACTORY のフロントエンドを見ています。 今回は pixivFACTORY において、フロントエンドのビルドに Webpacker を利用するのをやめた話をします。 Webpacker をやめよう rails/webpacker は Ruby on Railsプロジェクトwebpack を導入する際に用いられる gem です。必要な webpack の設定ファイルの生成や、Rails のテンプレートからビルド済みの JavaScript ファイルを読み出すために用いるヘルパー関数など、多数の機能を提供します。 結論から言うと、Webpacker を入れてもあまり良いことがありませんでした。単に必要が無いというより、あることによって面倒が増していると感じたので、剥がしました。以下 Webpacker が導入された Ra

    今日から簡単!Webpacker 完全脱出ガイド - pixiv inside
  • 3/28に公開されたRubyの脆弱性情報についてのポエム的解説 - pixiv inside

    こんにちは。Rubyコミッターのusaです。 なんかRuby の 最新 リリースと一緒に、脆弱性 情報 が いっぱい 公開 されましたね。うわー、なんかよくわかんないけど、やばそうですね!正味のところ、こいつら結局どれくらい危なそうなのか、それらの脆弱性の記事を書いた人がたまたまピクシブにいましたので、率直に音を語っていこうと思います。 CVE-2017-17742: WEBrick における HTTP レスポンス偽装の脆弱性について うまく利用するのは難しいとは思いますが、使いようによっては利用者(WEBrickで作って公開したサイトを訪問した人)をひどいめにあわせることができるかもしれない脆弱性です。 でも、WEBrickで作ったサイトをプロダクションで公開してる人なんているわけないよねははは。 CVE-2018-8777: WEBrick における巨大リクエストにともなう DoS

    3/28に公開されたRubyの脆弱性情報についてのポエム的解説 - pixiv inside
  • Swagger+JSON SchemaでAPIの型をテストして開発サイクルをスピードアップさせた話 - pixiv inside

    CTO兼福岡オフィス立ち上げ担当として新アプリを作っている@edvakfです。 JSON APIを開発しているとこういう問題がありがちですよね。 仕様どおりにAPIの形式を作ったはずだけどなんか自信が持てない テストでいくつかのキーが存在するかの簡単なチェックはしてるつもりだけど、全部チェックするのは大変すぎる APIのControllerやViewをリファクタリングしたらレスポンスの形が変わってアプリがめっちゃクラッシュし始めた というのが怖くて誰もリファクタリングできなくなった APIドキュメントがメンテされない 知らない間にレスポンスのフィールドが増えてたけどドキュメントに書いてない これらを解決したい!と思って試行錯誤したら、スマートに解決することができました。この記事ではRailsのことについて書きますが、考え方は他の言語・フレームワークでも同じです。 なお、今回使ったgemのバ

    Swagger+JSON SchemaでAPIの型をテストして開発サイクルをスピードアップさせた話 - pixiv inside
  • pixivを常時HTTPS化するまでの道のり(前編) - pixiv inside

    ピクシブ株式会社で開発基盤チームとして働いている @catatsuy です。主にpixiv技術的な改善をしていますが、広告チームも兼任しているので広告周りの開発もしています。 今回pixivの常時HTTPS化を担当したのでやったことを紹介します。 pixivをHTTPS化した理由 現在のインターネット全体の流れとして常時HTTPS化が進んでいます。エドワード・スノーデン - Wikipediaが暴露したNSAの事件発覚や 公衆無線LANの利用拡大により、通信経路上でユーザーの個人情報を保護することがインターネット全体として非常に重要になってきました。Googleが行っている調査によると、HTTPSページの閲覧時間はウェブ全体の利用時間の3分の2にも及びます。 それだけではありません。ブラウザに新しく追加されるAPIや機能(HTTP2/WebRTC/ServiceWorkerなど)はHTT

    pixivを常時HTTPS化するまでの道のり(前編) - pixiv inside
  • 実際に運用してみてわかった、大規模Mastodonインスタンスを運用するコツ - pixiv inside

    おはようございます、ImageFlux開発責任者のharukasanです。3日前の4月14日、ピクシブではPawooが急にリリースされることになりまして、ここ数日はずっとPawooサーバにログインしていました。このPawooサーバ、既にピクシブの監視体制に入っており、アラート受信後インフラエンジニアが障害対応できる仕組みを整えています。案の定、リリース直後の15、16日は週末にもかかわらずアラートを受け取ることになり、サーバにはりつくことになったわけです。どんなシステムであろうとアラートを受け取ったら対応する、それが我らインフラエンジニアです。 pawoo.netの構成 さて、それではまずPawooの構成を見ていきましょう。digすればわかりますがpawoo.netAWS上に構成されています。数百台以上の物理サーバを常時運用しているピクシブであっても、さすがにこんなにはやく物理サーバは用

    実際に運用してみてわかった、大規模Mastodonインスタンスを運用するコツ - pixiv inside
  • 1