サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
今年の「#文学」
kazeburo.hatenablog.com
この記事はさくらインターネット Advent Calendar 2023の12月3日の記事になります。 先日行われました ISUCON13 の作問を担当しました。参加者の皆様、スタッフの皆様ありがとうございました。 このエントリではISUCON13のDNSに関わる要素とベンチマーカーから行われたDNS水責めについて紹介します。 ISUCON13の問題の講評と解説は以下のエントリーでも行っていますので読んでいただけると嬉しいです isucon.net こんいす〜 ISUCON13における名前解決 上記のエントリーにもある通り、今回のISUCONではDNSが問題の一部として出てきます。 これまでポータルから参加者は割り振られたサーバの中から負荷をかけるサーバ1台選択し、ポータルはそのサーバに対して負荷走行を行うことが多くありましたが、今回はサーバ1台を選択したら、ベンチマーカーはそのサーバの
resolv.confに記述したDNSサーバへの名前解決のタイムアウトとリトライ回数について改めて確認したので忘備録 CentOS7系およびRocky Linux 9系で確認しています。 /etc/resolv.conf でDNSサーバが次のように指定されている場合、 nameserver 198.51.100.3 nameserver 198.51.100.4 以下の順で利用されます。 198.51.100.3 が タイムアウト 5秒 198.51.100.4 が 5秒 ✖️ 2 ➗ サーバ台数 (小数点切り捨て)のタイムアウト=5 秒 これを2回繰り返し、両方接続不可能な場合、合計20秒間名前解決しようとします。 3台ある場合、 nameserver 198.51.100.3 nameserver 198.51.100.4 nameserver 198.51.100.5 198.51.
さくらインターネットから新しいサービス、「さくらのクラウドシェル」がリリースされました。 ブラウザからワンクリックで利用できるオンラインのシェル環境が起動できます。無料で使えます!! こちら無料で試すボタンを押すと、次のモーダルが現れます。 ここで「会員IDで利用する」を選んだ場合、アウトバウンド向けの各ポート(22/53/80/443/1024-65535)の通信が利用できます。会員IDでログインしない場合は通信ができない環境が起動します。 ボタンを押すとすぐにシェルが立ち上がります。 フォントや文字色、背景画像が選べたりします。 シェルとしてはZSHが起動し、Go、Python、Ruby、Node.js などの開発言語のほかに、Vim、Emacs、tmux、Git、Ansible、Terraform、さくらのクラウドをコマンドラインから操作できる usacloud があらかじめ導入され
YAPC::Kyoto 2023、JANOG51 MeetingではDNSへの水責めの攻撃とその対策について話をさせていただきました。その中で DNS攻撃をフィルタリングするために利用している dnsdist についてチューニングにより大きくパフォーマンス向上できることがわかってきたので紹介します。 YAPCの記事 kazeburo.hatenablog.com JANOG51 Meetingについての記事 knowledge.sakura.ad.jp Linuxのネットワークパラメータのチューニング Linuxのチューニングでよくある設定ですが、sysctl.conf で以下のカーネルパラメータをチューニングをします。 net.core.somaxconn = 65535 net.core.netdev_max_backlog = 16384 net.core.rmem_max = 13
YAPC::Kyoto 2023 に参加してきました! 数年ぶりに開かれたYAPCで、数年ぶりに会うエンジニアの同窓会みたいな雰囲気ありつつ、新しい参加者も多く最高でした。オフラインイベント楽しいです。スタッフの皆様ありがとうございました!! 京都まで行かせてくれた家族にも感謝 会場のKRPは2006年まで働いていた場所で、17年も経ってそこで発表する機会をいただいたのは個人的に感慨深いものがあります。はてなの大西さんの発表は自分にとってもとても懐かしく聞いておりました。 エモさしかない pic.twitter.com/6V8gpxx4bg— 達人が教えるつぶあん🇺🇦 (@kazeburo) 2023年3月19日 発表してきた 私の発表はこちら speakerdeck.com DNS水責め攻撃とその対策については1月に開催されたJANOG51 Meeting in 富士吉田でも紹介して
年末恒例 kazeburo.hatenablog.com テレビ前に置くスピーカーを買った www.sonos.com Sonos ソノス Beam ビーム Soundbar サウンドバー Dolby Atmos対応 Amazon Alexa搭載 BEAM2JP1BLK ブラック Sonos(ソノス)Amazon Apple AirPlay 2対応でBluetoothのような煩雑なことがなく、すぐに音楽を鳴らせるし、音にも満足。 Dolby Atmos対応になったので、2本(?)ほど4K ULTRA HD Blu-rayを買った。 機動戦士ガンダム 閃光のハサウェイ 【4K ULTRA HD Blu-ray】 バンダイナムコアーツAmazon (初回限定生産)ロード・オブ・ザ・リング トリロジー・フィルムコレクション(4K ULTRA HD&HDデジタル・リマスター ブルーレイセット)(1
さくらのアドベントカレンダー2022 13日目の記事です。 qiita.com サーバ運用を行なっていると、非同期で行われるサーバの設定反映や起動を待ったり、メンテナンス後に監視を再開する前にすこし待つなんてこともあるかと思います。 そんな時に、人力で3分待ったらコマンドを打つ、Webコンソールを操作するなんてやっていると人間「必ず」忘れます。監視のメンテナンスモードの解除などを忘れてしまうとそれこそ事故につながります。チェックリストを利用した対策もありますが、技術的に解決するのが望ましい姿です。 そこで、よくやってきたのがsleepコマンドと組み合わせて sleep 180 && mkr update --st working とする方法。(サンプルとしてMackerelでサーバのステータスを変更しています) このように実行しておけば、自動で3分後にmkrコマンドが実行され、サーバの監視
共著で執筆しました「達人が教えるWebパフォーマンスチューニング 〜ISUCONから学ぶ高速化の実践」が発売されます。紙版は6/4日発売、電子書籍版は本日5/30から発売されております。通称 #ISUCON本 です。 ISUCONを例にするWebアプリケーションの主にサーバサイドのチューニングを広く扱うユニークな書籍となっております。ISUCONに参加する方はもちろん、業務でWebアプリケーションの開発運用にあたるエンジニアまで役に立ちそうな内容が盛りだくさんになります。 見本誌が届きましたが、分厚い、そして盛りだくさんな内容となっています。 技術評論社のページ gihyo.jp Amazon 達人が教えるWebパフォーマンスチューニング 〜ISUCONから学ぶ高速化の実践 作者:藤原 俊一郎,馬場 俊彰,中西 建登,長野 雅広,金子 達哉,草野 翔技術評論社Amazon ISUCON本
hirose31さん作のAmazon S3にあるファイルリストの閲覧とファイルのダウンロードにとても便利なツール s3surfer にAPIのエンドポイントURLを切り替えるオプションをつけていただき、さくらのクラウドのオブジェクトストレージにもアクセスできるようになりました。 github.com さくらのクラウドのオブジェクトストレージについてははこちら cloud.sakura.ad.jp こちらのサービスではS3互換のAPIを提供させていただいています。 使い方 Mac/Linuxの場合はGitHubのリリースページからバイナリをダウンロードしてインストールできます。v1.0.3 以降で --endpoint-url オプションが使えます。 さくらのクラウドのオブジェクトストレージのAPI Endpointを指定して起動します。その他のS3互換ストレージでも利用できるかと思います。
この記事はMackerel Advent Calendar 2021の14日目の記事です。 最近、さくらのクラウドの一部のサービスの監視にmackerelを導入し始めました! そして今年もいくつかのmackerel pluginを作成しています。 ログをメトリクスにするプラグイン github.com インターフェイスごとのエラーや送受信したパケットを可視化するプラグイン github.com 100%上限のCPU使用率グラフ、ロードアベレージをコア数で割ったメトリックを作成するプラグイン github.com そのほか、mackerel-plugin-axslogにも新しい機能が増えています。 この記事は既存のサーバにこれらのmackerel pluginをansibleで導入していった際に出たエラーと回避策のお話です。 mkr plugin install時のrate limitエラー
さくらインターネット Advent Calendar 2021 10日目の記事です。 日頃、運用や新機能の開発を行っているさくらのクラウドの「エンハンスドロードバランサ」はL7のロードバランサのソフトウェアとしてHAProxyを使っています。 こちらの記事でシステム構成について紹介しております。 qiita.com また、本blogにてlibslzによるHTTPレスポンスのGZIP圧縮の紹介もしています。 kazeburo.hatenablog.com この記事はHAProxyの運用で問題を発見し解決した話と、HAProxyにissue報告した話になります。 発見から問題特定まで とある作業後、エンハンスドロードバランサのL7ロードバランサであるHAProxyのうちの一つのプロセスが異常にCPUを使っているのを発見しました。 このHAProxyのプロセスはCPU 1コアを使い切っている状態
この記事は Perl Advent Calendar 2021 の6日目の記事です。 業務では日頃はGo、Perl、PHPを使ってクラウドのバックエンドを作り、JavaScript/TypeScriptでフロントエンドを作っています この記事は昔からherokuで動かしていたサービスをコンテナ化してGraviton2なEC2インスタンス上でk3sでシングルサーバクラスタを作成して動かしているよという紹介です。 対象は以下の2つ tanzak.nomadscafe.jp corelist.nomadscafe.jp それぞれのGitHubのrepositoryはこちら GitHub - kazeburo/tanzak: たんざく GitHub - kazeburo/CoreListWeb: Module::CoreList Web このサービスで使うDockerコンテナはGitHub Act
ISUCON11の予選に参加し、なんとか本選出場を決めました!チームは去年と同じ「中目黒乗り過ごし」でメンバーも変わらず、hanabokuro氏、mtokioka氏と参加しました。 isucon.net チーム中目黒乗り過ごしとして、2年連続で9位で本選出場です。去年の予選記事はこちら。 kazeburo.hatenablog.com ちなみに、去年の本選はFailでした。 先日ISUCONのインタビュー記事に載りましたので、こちらもどうぞ type.jp 今回の問題 ISUのコンディションを収集し、可視化するサイトということで、IoTや大量のネットワーク機器の監視メトリクスの扱いが課題のネタとなっていたように思いました。 世界観が面白く、ISUが投擲の道具じゃなく、愛される存在になったのだと感慨深いものがありました。 構成とスコア 当初は1台でやっておりましたが、最終的に3台を次のように
昨日オープンベータが開始されたさくらインターネットの新しいPaaS、DockerイメージやGitHubとの連携することで、インフラにとらわれることなく、アプリケーションのデプロイができるようになっています。データベースや永続ボリュームがすでにサポートされ、今後、WebサービスやSaaSの基盤として、またチームでの開発に適した機能が拡充されていく予定です。 www.sakura.ad.jp さっそく試していただき、記事を書いていただいています。ありがとうございます。 qiita.com qiita.com この記事ではサンプルのアプリケーションとして、MySQLアドオンを使い phpMyAdminとWordPress を立ち上げてみます。 プロジェクトの作成 さくらのクラウドのホームからHacobuneのコンソールへ移動し、新しいプロジェクトを作ります。 ここでは名前は hacopress
さくらのクラウドでオートスケールを実現する sacloud/autoscaler が v0.1.0 で水平スケールに対応したので試してみます。 github.com yamamoto_febc さんのさくらのイベントでの発表資料はこちら speakerdeck.com sacloud/autoscalerの構成を知るためにはこの資料を最初に目を通すのをお勧めします。 またv0.1.0 以前からサポートしている垂直スケールにつてはこちらの記事もわかりやすいです! qiita.com qiita.com とりあえず、今回の水平スケールは、サーバの増減とエンハンスドLBにサーバを参加させるところまでを試しました。 準備 サーバを2台とエンハンスドLBを作っておきます。 まず、autoscalerを動かすサーバを作成します。 名前: autoscale1 プラン: 1Core-1GB #最小 NI
5/13 にさくらのクラウドのGSLBサービスにて、実サーバとしてIPv6のアドレスを登録できるようなリリースを行いました。 cloud-news.sakura.ad.jp この機能拡張により、これまでのIPv4に加え、IPv6でもシステムの可用性を向上させることができるようになりました。 GSLBを簡単にいってしまうと「高可用・分散環境に置かれたヘルスチェック付きのDNSサーバ」です。 今回、ヘルスチェックの部分においてIPv6の実サーバへのリーチャビリティを確保し、実サーバとしてIPv6のサーバを登録した際に、AAAAレコードを返すことができるようになりました。今のところIPv6でのDNSの問い合わせは対応しておらず、IPv4での問い合わせのみになります。 GSLBにて重み付け応答「無効」を設定し、実サーバとして、IPv4のアドレス「203.0.113.4」「203.0.113.5」、
少し前になりますが、4/8 にさくらのクラウドの高機能ロードバランサーサービスである エンハンスドロードバランサ にレスポンスボディのGZIP圧縮機能を追加しました。 cloud-news.sakura.ad.jp エンハンスドロードバランサのコントールパネルやAPIで、GZIP圧縮を有効にすることで、手軽にWebサイトの表示にかかる時間を短くすることができますので、お試しいただければと思います。 この記事にあるとおり、エンハンスドロードバランサはソフトウェアとしてHAProxyを使っています。 qiita.com 今回、レスポンスのGZIP圧縮対応にあたり、HAProxyにlibslzという圧縮ライブラリを組み込んでおります。GZIP圧縮といえばzlibがもっとも使われると思いますが、事前に比較検証を行った上でlibslzを選択しているので、その紹介です。 ライブラリとベンチマークの環境
あっという間に1週間経ってしまいましたが、2021年1月18日より、さくらインターネットにてお仕事をしております。 先月から長めの冬休みにさせていただいておりましたが、本日さくらインターネットに入社させて頂きました。公私ともに長くお世話になっているこの会社でいろんなサービス支えていきます。 1日目からリモートなので写真はイメージです pic.twitter.com/LqyOAoA5dA— スタンドの時間です�! (@kazeburo) 2021年1月18日 前職中は本当にたくさんの皆様にお世話になりました。ありがとうございます。挨拶もほとんど出ておらず申し訳ありません。 さくらインターネットは20年ほどユーザとして使っており、またmixiやメルカリでもサーバを利用しており、公私共に馴染みのある会社です。 2018年の北海道胆振東部地震の際には対応はもちろん、情報がまとまってない中で直接お話
少し前にISUCON10予選問題のスコアアップに取り組んでいたので、その成果を使い、EC2 Graviton2 インスタンスとIntel CPUのインスタンスでスコアを比較してみます。 ISUCON10予選問題チャレンジをしていた時のスレはこちら ISUCON10予選のベンチマーク、Macbook Pro上で、23000まででるようになった。Xeon Gold 6148 x2上だと37000。— kazeburo. (@kazeburo) 2020年10月28日 ここではISUCON10予選時のように複数台用意するのではなく、1台のサーバでGoのアプリケーションとMySQLを動作させ、同じサーバ上からベンチマークを実行しています。 準備 初期データを作る際のdockerコンテナでarm64対応していないものがあるため、Intel CPUのインスタンスで作成してscpする方法を取りました。
すみません、ISUCONのアレに火がついてしまったので..。 Advent Calendarとはとくに関係がありません。 qiita.com qiita.com こちらの記事をみて、気になってしまったので interpolateParams の追加とMySQLチューニングをしてベンチマークを回してみました。 ベンチマークの環境が公開されているのは素晴らしいですね。 github.com 8vCPU/16GB Memのc5a.2xlargeなEC2のインスタンスを起動して、以下の手順にしたがってdockerとdocker-composeをインストールしました。OSはUbuntu 20.04を使いました。 docs.docker.com docs.docker.com 上記のbenchmarkのrepositoryをgit cloneし、compose build && compose upし
Mackerel Advent Calendar 2020 15日目の参加記事です。 キャッシュの更新やなんらかの同期を行うコマンドなどをcronにて実行している場合、メンテナンスや一時的なネットワークの不調によりコマンドがエラーになっても問題ないが、一定時間以上エラーが続くと困る、みたいなことはあると思われます。 mackerelでは、cronのコマンドがエラーになった際に、通知する方法としては mkr wrap が利用できます。 mackerel.io crontabに * * * * * mkr wrap -- /path/to/your-batch ... とすることで、コマンドが失敗した際に、アラートをあげることができます。ただmkr wrapでは1度でもエラーとなるとアラートとなってしまうため、前述したような一定時間エラーになっても問題ないものでもアラートが上がってしまいます。
Mackerel Advent Calendar 2020 9日目の参加記事です。隙間で書きました。 最近 mackerel pluginをリリースするときは、ほぼ全てGitHub ActionsとGoReleaserを使ってビルドとリリースしています。 GoReleaserはこちら goreleaser.com GoReleaserはGoのprojectをクロスプラットフォームでビルドし、GitHub Releaseなどにアップロードしてくれるツールです。これのおかげでかなりリリース作業が楽になりました。 準備 mackerel pluginのrepositoryに .goreleaser.yml というファイルを作ります。 builds: - binary: mackerel-plugin-linux-process-status goos: - linux goarch: - amd
本エントリはMySQL Advent Calendar 2020 の9日目の記事になります。 これまでいくつものMySQLの監視コマンドをつくってきたのですが、毎回同じような処理を書いているので、それらをまとめるライブラリを作ってみました github.com 主な機能は go-flags形式でのコマンドオプションとデータベースへの接続 SHOW STATUS/VARIABLES/SLAVE(REPLICA) STATUSステートメントの構造体へのマッピング の2つです。 使い方 (コマンドラインオプション) まずコマンドオプションの処理 オプションを定義した構造体に mysqlflags.MyOpts を追加します type opts struct { mysqlflags.MyOpts Timeout time.Duration `long:"timeout" default:"10s
とあるAPIに対するアクセスが、 回数 時間 1833 time:27/Oct/2020:21:32:25 1657 time:27/Oct/2020:21:32:26 1616 time:27/Oct/2020:21:32:27 2584 time:27/Oct/2020:21:32:28 14958 time:27/Oct/2020:21:32:29 6619 time:27/Oct/2020:21:32:30 1725 time:27/Oct/2020:21:32:31 1796 time:27/Oct/2020:21:32:32 1713 time:27/Oct/2020:21:32:33 1932 time:27/Oct/2020:21:32:34 1797 time:27/Oct/2020:21:32:35 1841 time:27/Oct/2020:21:32:36 という感
感想戦優勝なんてものはない 感想戦優勝 #isucon— 紅葉坂乗り過ごして桜木町 (@kazeburo) 2020年10月12日 ISUCON10本選は悔しいところではありましたが、Fail(失格)で終わってしまいましたが、1週間もの長い間サーバとベンチマーカーが使えるようにして頂いていたので、感想戦にチャレンジし、24x7 ベンチマークを回し、最終的には100,000超え(本選時の弊チームベスト 32,312、優勝者スコア 49,545)のスコアを出すことに成功しましたので、その方法です。 レポジトリはこちらにあります。 github.com この記事を読み進める前に当日のマニュアルを確認するとよいでしょう github.com 最終スコア 101,249 がベストで最後のスコアです。 この際のTeamCapacityは100です 15:07:32.437656 ===> PREPAR
ISUCON10の予選に尊敬するエンジニアであるhanabokuro氏、mtokioka氏と参加して、9位で本戦出場できることになりました。うれしい! ISUCON8は予選落ち、去年は出題をやらせていただいたので、本選出場は3年ぶりになります 今年の問題も、よく練られた問題で開始から終了まで楽しむことができました。運営のみなさま朝早くから遅くまで本当にありがとうございます。 準備 GoはMackerelプラグインやミドルウェアでよく書いておりますが、、いわゆるWebアプリケーションはあまり書いてないので、手を動かすために去年のISUCON9予選の問題を手元で動かして取り組んでみてました。 ローカル環境で動かすのは以下の記事が役立ちます。 isucon.net また、Cloud TraceやProfilerを試すために、takonomura氏の記事やgithub repositoryをすごく
Nginxでproxyする際に、名前解決を動的に行ってからupstreamへ接続をするというのは、S3だったりConsulで管理されたサーバ群に対するproxyを行いたい場合に使いたくなる機能のひとつ。 ただ、upstreamコンテキスト内の resolve オプションは有償の Nginx Plusにしかない機能なので、set変数を使ってやるというのがこれまでの方式 resolver 127.0.0.1 valid=30s ipv6=off; server { set $backend_host "backend-apps.service.dc.consul:8080"; location / { proxy_pass http://$backend_host; } } この方式は問題なく動くのですが、 upstream keepaliveが有効にならない 名前解決した結果に複数のIPがあ
振り返り的なやつです。 去年の振り返りはこちらです。 kazeburo.hatenablog.com ISUCON9 予選出題した bokko, catatsuy, sota1235 とともにISUCON9の予選出題をやらせていただいた。7月から9月にかけて圧倒的に手を動かした。 解説と講評のほか、ローカル環境で予選問題を動かす方法についての記事を書かせてもらった。 isucon.net isucon.net 参加していただいた方、出題メンバー、各言語への移植をやっていただいた皆様、さくらインターネットの皆様、アリババクラウドの皆様、そして941さんをはじめLINEの皆様、改めて感謝です。 作った percentile github.com 説明はないが、簡単にpercentileを求められるようにするコマンドです。 $ grep status:499 access.log|lltsv -
なんらかの理由で MySQLにクソ重いクエリがたくさん流れてしまった場合、SHOW PROCESSLISTをみて、クエリをKILLするなんてことは、あったりなかったりします。 この時にクエリが数十個となると、手作業ではやりきれませんので、コマンドを駆使して対応することになります。 ちょっと前にやったのが以下のコマンド /usr/bin/mysql --defaults-extra-file=/path/to/.my-other.cnf -NB -e 'SELECT GROUP_CONCAT(ID) FROM \ information_schema.PROCESSLIST WHERE STATE = "Creating sort index" AND TIME > 1000 AND INFO \ LIKE "select%example%"' | grep -v NULL | /usr/b
次のページ
このページを最初にブックマークしてみませんか?
『Hateburo: kazeburo hatenablog』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く