タグ

ブックマーク / heartbeats.jp (18)

  • hbstudy#74 SRE大全:序章 活動報告

    はじめまして、入社5年目、新卒2年目アイドル部部長兼運用エンジニアの阿部( @abnoumaru )です。 2017年07月25日に開催された「hbstudy#74 SRE大全:序章」の活動報告です。 なぜ SRE の勉強会を開催したか Googleが"Site Reliability Engineering"(SRE)を提唱した後、 その手法は世界中で瞬く間に広まり、日でも"SRE"の名前が付くチームを持つ会社が増えています。Web サービスを中心としたインフラを担当するハートビーツにとってもSREを専門職としてはいないものの、現在行なっている業務に近しい分野です。 そこで、hbstudyではSRE大全と題して、様々なSREの話を聞くべくシリーズで勉強会を開始します。今回は、 2017年8月12日に発売される『SRE サイトリライアビリティエンジニアリング --Googleの信頼性を

    hbstudy#74 SRE大全:序章 活動報告
    tknzk
    tknzk 2017/08/12
  • 外形監視におけるフルリゾルバーのキャッシュ保持期間

    こんにちは、滝澤です。 みなさん、提供しているサービスの外形監視を行っていますか。 DNSレコードの変更ミスやドメイン名の失効などを起因とする障害に早く気づけるようになっていますか。 ということで、今回は外形監視におけるフルリゾルバー(キャッシュDNSサーバー)のキャッシュ保持期間について考えてみます。 外形監視とフルリゾルバーについて 外形監視とは何かを一言でまとめると、「システムの外部から、システムが提供していサービスが正常に動作しているかを監視する」ことです。 このとき、「ユーザーと同じような方法でアクセスする」ことが重要となります。 アプリケーションのサービスへのアクセス方法 ウェブブラウザーのようなユーザー側のアプリケーションがサービスに接続するときには、次の図のようにサービスのドメイン名の名前解決を行い、取得したIPアドレスに対して接続を行います。 このとき、名前の解決は次のよ

    外形監視におけるフルリゾルバーのキャッシュ保持期間
  • Dockerドキュメント日本語化に参加しよう!

    このエントリは Docker Advent Calendar 2016 - Qiita の2日目です。 こんにちは。CTOの馬場です。 みなさんお世話になった(と思われる)Docker語ドキュメントは @zembutsuさんが個人で翻訳されています。 GitHubで作業されていて、Pull Requestを受け付けてくれているので、 ぜひ参加しましょう! 環境構築 いまはSphinxがあればビルドできるので、 インストールしておきましょう。 pip install Sphinx 2016/12/1時点で Sphinx 1.4.8 でHTML生成できることを確認しています。 生成は1行ぽんと実行するだけ。 make html これで build/html 配下にHTMLが生成されます。 別の方法として、もし手元の環境に手を加えたくないなーという場合はDockerを活用しましょう。 リポジ

    Dockerドキュメント日本語化に参加しよう!
    tknzk
    tknzk 2016/12/02
  • nginx-1.9.11で動的モジュールをサポート

    nginxの記事を書くのは久しぶりの滝澤です。 nginxにApache HTTP Serverの動的共有モジュール(Dynamic Shared Object)(DSO)のような機能が欲しいと思っていた人も多いでしょう。筆者もそうです。秘伝のタレのようなビルド用のスクリプト(実際はRPMパッケージのSPECファイル)を保守し続けるのは辛いなと思っていました。 そのような方々に朗報です。2016年2月9日にリリースされたnginx-1.9.11において動的モジュール(Dynamic Modules)がサポートされました。 しかし、Apache HTTP ServerのDSOと比べると、現時点ではまだ制約があります。 記事ではnginx-1.9.11における動的モジュールの説明と制約について説明します。 注: 2017年2月22日にフォローアップ記事「nginxの動的モジュールの最新状況(

    nginx-1.9.11で動的モジュールをサポート
    tknzk
    tknzk 2016/02/12
  • Golangで作ったhttpdの接続数を制限してみよう

    こんにちは。斎藤です。 ここ1〜2年、私は仕事Golangを書くことが増えています。きっかけは、ITインフラをお預かりする中で、お客様のサーバにツールを置く場合でも1つのバイナリさえ置けば良いという手軽さからだったのですが、最近はScalaと並び手軽に並列処理が書けるプログラミング言語として重宝しています。 さて、今回はGolangで作ったhttpdの接続数をLimitListenerを利用して接続数の制限をしてみようというお話です。以下に紹介するお話は、Githubのリポジトリ "github.com/koemu/go-http-max-connections-demo" にデモプログラムを保存しています。Golangのビルド環境がある方は、実際にビルドしながらお試しいただければと思います。 ※Golang 1.5.1でビルドする前提で説明しています モティベーション 仕事でとあるAP

    Golangで作ったhttpdの接続数を制限してみよう
  • Googleクラウド(GCE)でクリックデプロイを使ってWordPressをインストールしてみた #gcpja

    こんにちは。CTOの馬場です。 このエントリはGoogle Cloud Platform Advent Calendar 2014の18日目です。 濃いエントリばかりのなかで恐縮ですが、 カンタン方向に寄せて「クリックデプロイ」を使ってWordPressをインストールしてみます。 クリックデプロイでLEMPスタック(Linux, Nginx, MySQL, PHP)とphpMyAdminをインストールし、さらにWordPressをインストールします。 まずはブラウザでGoogle Cloud Consoleにアクセスします。 やりかたがわからないかたは Google Cloud Platformをはじめようチュートリアル #gcpja - インフラエンジニアway - Powered by HEARTBEATS を参考にしてください。 コンソールにアクセスしたらプロジェクトを選択(なければ

    Googleクラウド(GCE)でクリックデプロイを使ってWordPressをインストールしてみた #gcpja
    tknzk
    tknzk 2014/12/18
  • Google Cloud DNSをはじめよう #gcpja

    こんにちは。CTOの馬場です。 今回はIaaSの中でも数少ないDNSサービス Cloud DNSを使ってみましょう。 いまはまだWebコンソールのメニューが見当たらないので、 gcutil の gcloud コマンドを使います。 gcloud auth login 、 gcloud config set project してある状態で操作します。 設定がまだの場合は Google Cloud Platformをはじめようチュートリアル を見て設定しておいてください。 手元のPCにインストールしたくない人は Google Cloud PlatformのCLIツールgcutilをDockerで使う をご覧ください。 Cloud DNSとは AWSでいうところのRoute53のようなDNSサービスです。 レコードは A, AAAA, CNAME, MX, NS, PTR, SOA, SPF, S

    Google Cloud DNSをはじめよう #gcpja
  • SSL証明書検証エラーの警告を無視しないほうがいいたった1つの理由

    こんにちは。CTOの馬場です。 昨日のエントリ RHEL5/CentOS5でGlobalSignのルート証明書が有効期限切れで大騒ぎ で暫定回避策として「接続先のSSL証明書を検証しないようにする」と書いたのですが、そのリスクについてもっと伝えたほうがよさそうなので追加のエントリです。 ( @nekoruri さんご指摘ありがとうございます!) いきなり結論から書きますが、 SSL証明書の警告無視はSSLの目的の1つである「通信相手の認証」を無効にするのでヤバい のです。 つまり証明書検証エラーを無視すると、通信は暗号化しているけど通信相手は誰かわからない、というトンチンカンな状況になります。 なので、トンチンカンな状況が許せる時だけにしましょう。 実はHTTPでいいんだけどなんとなく通信は暗号化しておきたいときとか、リスク覚悟で通信したいときとか... なお、技術的な説明は以下のページが

  • RHEL5/CentOS5でGlobalSignのルート証明書が有効期限切れで大騒ぎ

    こんにちは。CTOの馬場です。 昨晩1/28 21:00JSTにRHEL5/CentOS5にインストールされているルート証明書のうち、GlobalSignの有効期限が切れました。 伴ってREHL5/CentOS5からのHTTPS(SSL)接続にてGlobalSignの証明書を使っているサイトへの接続がエラーになるようになりました。 私の確認している範囲では、 curlコマンドやPHPcurlライブラリなどでの接続時に接続エラーとなることに起因して以下のような影響が出ています。 ※接続される側ではなくて、接続する側での問題です※ oauthなどの外部認証が不可 決済などの外部連携が不可 対策 RHEL5の場合、errataが公開されているのでupdateしましょう。 Red Hat Customer Portal https://rhn.redhat.com/errata/RHEA-201

    RHEL5/CentOS5でGlobalSignのルート証明書が有効期限切れで大騒ぎ
  • ITインフラで起きる「もしも」のための12個のコマンド

    こんにちは。斎藤です。 ITインフラの障害は、多くの場合「予期せぬ」タイミングで発生します。特に、CPUリソースを多量に消費したり、Disk I/Oが輻輳している場合、その切り分けは困難な状況に陥りやすいものです。 そこで、日はITインフラ、特にOS・ミドルウェアを支えるにあたって、問題解決を助けてくれるであろう12個のコマンドを取り上げてみます。「必ず押さえておきたい」5つのものと「更に覚えると便利なコマンド」7つの2節に分けてお話しします。 ※CentOS 6.4 (64bit)を前提に取り上げます 必ず押さえておきたいコマンド もしITインフラ管理者になりたてな方はぜひ サーバサイドのプログラマをやっていたのだけれど、ある日突然「君、サーバ管理担当ね!」と、バトンを渡される方っていらっしゃると思います。私も以前はそのクチでした...。そうなってしまったとき、まずは覚えておきたい5つ

    ITインフラで起きる「もしも」のための12個のコマンド
  • serverspec のリソースタイプにPHPの設定テストを加えてみました

    斎藤です。こんにちは。 今日は、serverspecのリソースタイプにPHPの設定テストを書き加えた時の事をお話しします。「きっかけ」「ファイル構成」そして「記述時の注意点」の3点を中心に記述します。その後、テストコードがどのように書き変わるかを示します。 きっかけ PHPは、様々なLightweight Language(以下、LL)の中でも、実行するアプリケーションに応じた設定が必要な言語の一つです。設定値の代表として "mb_string", "upload_max_filesize" そして "memory_limit" で頭を悩ませた方もいらっしゃるかと思います。そこで、serverspecで設定値を評価できる仕組みを整備し、正しく設定されているかを確認できるようにしたいと考えました。 これまで、serverspecでPHPの設定の評価を行うには、commandリソースを用いて"

  • デーモンの起動・終了にはserviceコマンドを利用しよう

    斎藤です。こんにちは。 今日は、デーモンの起動・終了に際してはserviceコマンドを使った方がいいよ、というお話です。 ※CentOS 6.4 (x86_64) でテストしています。尚、特記がある所を除きます。 デーモンの起動・終了には大きく2手 Linux、特にRedHat, CentOS, Fedora, Ubuntu[1]などでは、デーモンの起動・終了の制御の際に、大きく分けて次の2つの方法を用いる事ができます。 "/etc/init.d/"配下のスクリプト(以下、スクリプト)を直接実行する "service"コマンドを実行する 一見、同じ事をやっているように思えるのですが、実は違う部分があります。それは、起動スクリプトが扱う環境変数が違うのです。次の節で、検証してみます。 扱う環境変数が違う スクリプトを直接実行する場合は、実行時の際の環境変数をそのまま利用します。一方、serv

    tknzk
    tknzk 2013/06/25
  • MySQL を MHA + HAProxy で冗長化してみよう

    斎藤です。こんにちは。 今日は、MySQLにてレプリケーション構成において、マスタサーバのフェイルオーバーを司るmysql-master-ha(以下、MHA)を用いる際、マスタサーバ接続先の切り替えにHAProxyを使ってみようというお話です。 ※MHAは0.53.0(公式パッケージ)、MySQLは5.5.25a(Oracle公式パッケージ)、HAProxyは1.4.22(CentOS6標準パッケージ)、OSはCentOS 6.3 x86_64を用いました。 ※MHAによる冗長化およびHAProxyによるMySQLの負荷分散の設定を経験された事がある前提で記述します。 記事では、次の流れで話題を展開します。 フェイルオーバー時の接続先切り替え方法 構成(参考) なぜHAProxyなのか 切り替え方 2台構成の問題点 その他 コツ 設定(参考) 主にMHA+HAProxyによるフェイルオー

    MySQL を MHA + HAProxy で冗長化してみよう
  • 今後の負荷を RRDTool を使って予測してみよう

    斎藤です。 今日は、RRDToolを使って、今後かかる負荷を手軽に予測する方法をご紹介します。あわせて、プログラムと連携して性能限界を越えそうなサーバがあるかを判定してみます。人手ではまかないきれない数のサーバに対して、一台ずつ問題の予兆を調べるときなどにお試しください。 ※CentOS 6.3 (64bit) + RRDTool の2013/2/20頃の最新ソースを用いて試しています 「限界」を早く知りたい! ITインフラを運用している方の多くは、Cacti, Munin等で負荷を日々モニタリングされているかと思います。モニタリングしたデータを用いて今後を予測する際、どのようにされていらっしゃいますでしょうか?描かれたチャートの動きをもとに、経験と勘を駆使して「ヨイショ!」っとされている方も、いらっしゃるのではないでしょうか。 特に、ディスク容量やネットワークトラフィック等、根的な対策

  • Upstart を使ってお手軽 daemon 化

    こんにちは。斎藤です。 手元でちょちょいと作ったプログラムや、 init スクリプトの無いOSSを daemon として動作させ続けたい事、ありませんか?そんなときに便利なのが Upstart です。daemontoolsの代わりとしても使えます。 今回は設定方法を中心に、解説していきます。 ※CentOS 6.3 (x86_64) で検証しています はじめに Upstart とは何か UpstartのWikiによると、"/sbin/init"デーモン(例えばSysVinit)を置き換えるものであり、イベントベースでタスクやサービスを起動・停止できるようにしたものである、と述べられています。また、特徴として、SysVinitと比べ「設定が簡単」「起動が早くなる」などが挙げられています。 Upstart のメリット 3つのメリットがあると、私は考えています。 起動・終了制御が容易 仮にABE

    Upstart を使ってお手軽 daemon 化
  • 入社して3ヶ月 - インフラエンジニアの道は始まったばかり

    斎藤です。こんにちは。 2012年6月中旬にハートビーツに来て、3ヶ月半が経ちました。最近、雇用契約の契約書にサインをして、「よし、がんばろう!」と気持ちを新たにしたところです。 これまで、プログラマからインフラエンジニアに転向して様々な思いが去来していました。今日は、そのお話を書いてみたいと思います。 これまでの私について 私は、これまでプログラマをしながらインフラを守る仕事を同時にこなしていました。というのも、以前勤めていた会社では、自社プロダクトとして、Webサービスやソーシャルゲームの開発を行っていたからです。 従って、開発が終わることが仕事の終わりではありません。いい事も、悪い事も、全て因果応報であることを、常に、そして直に体感しながら仕事に携わっていました。運用に入り、しっかり作り込んで安定している部分がある一方、どこかで詰めが甘くトラブルを起こしてしまう部分もあります。 そ

  • nginx連載1回目: nginxの紹介

    皆様、初めまして。滝澤と申します。今月からここで記事を書いていきますのでよろしくお願いします。 ここ1,2年で注目を集めているWebサーバnginxについて今回から数回にわたってを紹介していきます。 nginxについて初めて知った、あるいは、名前は聞いたことがあるんだけど使ったことはない、といった方のために、1回目のこの記事ではnginxの概要を、2回目の記事ではインストールと設定について紹介します。 nginxとは nginxロシアのIgor Sysoev氏によって開発されているWebサーバ兼リバースプロキシのソフトウェアです。「エンジン エックス」(engine x)と呼びます。 2002年に開発が始まり、2004年に公開され、今では約10%のシェアを持つまでに成長しています。facebookやWordPress.ORGなどの大規模サイトでの導入実績もあり、導入するWebサーバの選択

    tknzk
    tknzk 2012/01/31
  • Proxy越しのDigest認証

    こんにちは。CTOの馬場です。 今回もインフラエンジニア向けにちょっとした情報を紹介します。 今回は一部で話題になっていた「Proxy越しのDigest認証」について、 ちょっとしたコツがあるのでノウハウを公開します。 前提として、 Digest認証は、認証情報の中にURIを保持しています Digest認証では、 mod_auth で 「リクエストされたURI」 と 「認証情報の中のURI」 の整合を確認しています と、いうことです。 なので、backendサーバで mod_auth が認証処理をする時に、 「リクエストされたURI」 と 「認証情報の中のURI」 が一致している必要があります。 大抵の場合、次の図の構成になっていると思いますが、 これを、次の図のように変えることで両立させることができるようになります。 ポイントは、RewriteするときにPT(PassThrough)を指

    Proxy越しのDigest認証
  • 1