タグ

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

  • サーバ作業を安全に行うための工夫

    こんにちは。 2021年7月にハートビーツに入社後、エンジニアリンググループに所属している北岡です。 以前は同じMSP企業で10年以上勤務しておりましたが、自身のスキル向上などを目的としてハートビーツへ入社しました。 私の転職の経緯やハートビーツへ入社して感じたことなどは今後お話するとして、今回はお客様のLinuxサーバ上で作業する際、私がオペレーション中に意識していることやミスを防ぐために行っていることについて紹介します。 コピー、ペーストのショートカットキーを変更する コピー「Ctrl + c」とペースト「Ctrl + v」はキーが隣り合っており、タイピングミスによってコピーしようとしたつもりがペーストしてしまったということが起こりえます。 メモ帳などで起きた場合は特に問題にはなりませんが、サーバ上で起きると不要なコマンド実行に繋がります。小さなことではありますが防止策をとるべきです。

    サーバ作業を安全に行うための工夫
    yogasa
    yogasa 2022/10/03
  • aws-cliはs3転送の帯域制御をどのように実現しているのか

    こんにちは。CTOの馬場です。 できるようになった、というのは見たものの、 具体的にどのように実現しているのか気になったので調べてみました。 こういうの、気になりません?わたしは気になります。 最近はコードの追い方の紹介をあまり見ないので、探し方を含めて紹介します。 なお30代後半以降の方にはお馴染みの、 find ... | xargs grep を使っていますが、 GitHubの検索機能でも代替可能です。 5秒でわかる結論 LeakyBucketです aws-cliではなくbotoで実装されています コードの追い方 ここからは地道に追ってみます。 読むだけだと何がなんだか...だと思うので、 操作したりリンクに飛んだりしながら試してみてください。 ※jediやVSCodeで定義にジャンプできる環境がある場合はインストールしてジャンプしていけばもっと楽に追えると思います 下準備 まずはa

  • nginxの動的モジュールの最新状況(2017年2月版)

    StreamモジュールとMailモジュールについては、nginxバイナリに静的にビルドされて組み込まれています。 なお、nginxバイナリと動的モジュールの両方とも、後述するconfigure時のオプション「--with-compat」付きでビルドされています。 nginxバイナリとモジュールのsignatureが異なると動作しない 動的モジュールが実装された当初から「nginxバイナリとモジュールのsignatureが異なると動作しない」という制約があります。 このことについては昨年の記事「nginx-1.9.11で動的モジュールをサポート」において次のように説明しました。 nginxバイナリと異なる環境でビルドされた動的モジュールを組み合わせて動かすことはできません。 これにより困ることの例としては、公式サイトやディストリビューションからnginxのRPMパッケージをインストールした環

    nginxの動的モジュールの最新状況(2017年2月版)
    yogasa
    yogasa 2017/02/23
  • Docker と infrataster で nginx の振る舞いをテストする

    こんにちは。吉川 ( @rrreeeyyy ) です。今期オススメのアニメはリゼロです。 Nginx は設定ファイルの記述力も高い、大変便利な Web サーバです。 便利な反面、設定ファイルの複雑化や、設定に依っては意図しない挙動を引き起こしてしまうこともあります。 そこで稿では docker 並びに infrataster を使用し、 Nginx の挙動をテストすることによって、安全に Nginx の設定を記述する方法について紹介します。 テスト対象の Nginx の仕様 今回は例として、次のような仕様の Nginx のテストについて考えます。 ネットワーク帯は 10.0.0.0/16 を使用している Nginx の前段として L7 ロードバランサが存在している L7 ロードバランサが https を終端している Nginx 自体は 80 番ポートと 8080 番ポートにて待ち受けてい

    Docker と infrataster で nginx の振る舞いをテストする
  • 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の接続数を制限してみよう
  • Microsoft の DevOps ハッカソンに行ってきました #DEVOPSJP

    こんにちは。斎藤です。 みなさん、ハッカソンは大好きですか?!ハッカソンというとソフトウェアを開発すると考える方が多いと思いますが、今回はDevOpsです。 内容は、プログラマとITインフラエンジニアが共同で Continuous Integration (CI), Continuous Delivery (CD)を実践し、技術的な点ではもちろん、仕組みを開発するにあたりチームビルディングをどうしていくかという学びを得るイベントでした。 9/5, 9/6の2日にわたって催されたMicrosoft DevOps ハッカソン(会)、今日はその模様についてお話しします。 公式ブログにも模様が掲載されています: 「DevOps ハッカソン開催報告 (9/5~6) & 次回予告 - MSDN オンライン チームブログ」 概要 会は、次のプログラムで構成されていました。 1日目 9:00〜11:3

    Microsoft の DevOps ハッカソンに行ってきました #DEVOPSJP
  • Python+SSHな自動化・デプロイメントツールFabricを活用するTips

    こんにちは。CTOの馬場です。 みんな大好きFabricのTipsです。 Welcome to Fabric! -- Fabric documentation よくデプロイツールとして紹介されますが、 自動化のためのPython+SSH+コマンド実行フレームワークとして柔軟に使えて超便利です。 基的には 手元でのコマンド実行 SSHごしのリモートサーバでのコマンド実行 SSHごしのリモートサーバでsudoしてコマンド実行 ができるツールなのですが、使い方の例を紹介します。 間違いなどあればお近くのハートビーツ社員か @netmarkjp に教えていただけると嬉しいです。 Python 2.7.10 + Fabric 1.10.2 + Paramiko 1.15.2で動作確認しました。 複数のサーバに対して同じユーザ・パスワードでログインする ユーザ名やパスワードを一括指定できます。 鍵認

    Python+SSHな自動化・デプロイメントツールFabricを活用するTips
  • Rundeck - cronから移行しやすいジョブスケジューラを使ってみよう

    こんにちは。斎藤です。 最近、Dockerなどのコンテナ型仮想化技術、Chef, Ansible, Itamae などによるITインフラ構築・運用自動化技術の利用が進んでいます。一方で、何年も動いて「歴史」を積み重ねているシステムも数多くあります。そして、私を含めてそれらの運用に関わる事もあるでしょう。そんな「歴史」のあるシステムも、何とか運用を効率化したいと思う事があるかもしれません。 今日は、バッチジョブや複数サーバに対する運用を効率化するRundeckを取り上げます。「何ができるの?」「はじめかた」そして「利用時の留意点」の3点についてお話しします。 ※OSはCentOS 6系、Rundeck はバージョン 2.4.0、Java VM は Oracle JDK 1.7.0_72 を利用しています。 cronLinux系OSに標準搭載されているジョブスケジューラです。標準で使えるため

    Rundeck - cronから移行しやすいジョブスケジューラを使ってみよう
    yogasa
    yogasa 2015/02/01
  • NSDとDNSラウンドロビン

    権威ネームサーバのNSDがDNSラウンドロビンに対応したので、NSDとDNSラウンドロビンについて紹介します。 なお、この記事は『UnboundとDNSラウンドロビン』の姉妹編的な位置づけです。ほぼ同じようなDNSラウンドロビンについての説明があります。 NSDとは DNSサーバのソフトウェアとしてはBINDがデファクトスタンダードのような位置づけになっていますが、BIND以外にも様々なDNSサーバのソフトウェアがあります。その中の一つとしてNSDがあります。 NSDはオランダのNLnet LabsのW.C.A. Wijngaards氏が中心となって開発が行われています。NSDは元々はルートサーバ用として開発されましたが、現在のバージョンでは普通の権威ネームサーバとしての機能はほぼ実装されており、代表的な権威ネームサーバのソフトウェアの一つとなっています ちなみに、ルートサーバのHとKとL

    yogasa
    yogasa 2014/10/06
  • 「サーバ/インフラエンジニア養成読本 ログ収集〜可視化編」を献本いただきました

    こんにちは。斎藤です。 先週、「サーバ/インフラエンジニア養成読 ログ収集〜可視化編」(以下、書)を、筆者のお一人である吉田さん(@yoshi_ken)より献いただきました。どうもありがとうございます。 せっかくですので、私自身の視点で、書の紹介、刺さった所、及び感想を残しておこうかと思います。 名前は知っているよ!でもどこまで使ってる? Fluentd, Elasticsearch, Kibana...。今をときめくログ収集、KVS、そしてデータ可視化ミドルウェア・ツールの名前です。アンテナが高い人なら名前は知っている、ヤル気がある人は既に検証はした、そして環境が整っている人は番へ投入し活用されていると思います。 しかし、検証や、番投入へ一歩進めるにはパワーが要ります。事例がBlog等に上がっているものならまだしも、出始めの頃はドキュメントを読み解きながらじっくり設定を進める

    yogasa
    yogasa 2014/08/11
  • Nginx ユーザ会 #0 に行ってきました!

    こんにちは。三浦です。 先日6/18(水)にサイオステクノロジーさんのオフィス内にあるオープンスペースで開催された、「Nginx ユーザ会 #0」に行ってきました。 ハートビーツもユーザ会運営に関わらせていただいています。 会場には100人以上の人が集まり、おいしいビールとごはんをいただきながら初来日されたNginx開発者Igor Sysoev(イゴール・シソエフ)さんが、ひとりで開発していたときから会社設立を決意するまでの経緯や今後の開発の方向性などについてお話を伺いました。 The 1st NGINX Japan User Group meetup! #ngxug pic.twitter.com/J3cc3J4T8E — nginx web server (@nginxorg) 2014, 6月 18 Nginx開発のモチベーション 学生時代は科学、物理学、歴史などいろいろなことに興味

    Nginx ユーザ会 #0 に行ってきました!
    yogasa
    yogasa 2014/06/26
  • Google Cloud Platformをはじめようチュートリアル #gcpja

    IaaS的なみかたをすると上記のようなAWSとの比較になりますが、 じつは GAE (Google App Engine)もGCPファミリーのプロジェクトです。 Webコンソールからアカウントをセットアップしてプロジェクト作成 GCEはGoogleのアカウントを使ってログインします。 ログインしたあとにプロジェクトを作成し、 プロジェクトごとに支払情報などを登録します。 ブラウザで利用できるGCPのWebコンソールは https://console.developers.google.com/ にあるのでまずはアクセスします。 お手持ちのgoogleアカウントでログインしましょう。 そうするとプロジェクト一覧の画面になります。 この画面になったら Create Project ボタンを押すとプロジェクト作成ダイアログが表示されます。 PROJECT NAME は自分の好きな名前(今回はSa

    Google Cloud Platformをはじめようチュートリアル #gcpja
  • Upstart を使ってお手軽 daemon 化

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

    Upstart を使ってお手軽 daemon 化
  • どうしてメモリはスワップするのか!?

    こんにちは。斎藤です。 最近、新しいスキー板が欲しいなと思っています。現在使っているOGASAKAの板は5年目に入り、メーカーからこれ以上はチューンナップ(メンテナンス)はできないよ、と言われてしまいました。もし、次に買うなら、スノーボーダーの人と一緒にパウダーに飛び込みやすいセミファットタイプが良いのかなと考えています。皆さんのオススメ、ぜひ教えてください。 さて、今日はLinux Kernel上でのメモリ管理、特にページ回収(Page Reclaim)とスワップに絞り、「スワップの理由」「ページを回収する仕組み」そして「スワップの様子を観察する」の3点に分けてお話しします。「スワップするのが気持ち悪い」と考えている方は少なくないと思いますし、私もそう考えていた時期がありました。しかし、それは当に悪い事なのか、今回掘り下げて行きます。 ※主な対象Kernelは2.6.32(Red Ha

    どうしてメモリはスワップするのか!?
  • SSL証明書検証エラーの警告を無視しないほうがいいたった1つの理由

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

    yogasa
    yogasa 2014/01/31
  • 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のルート証明書が有効期限切れで大騒ぎ
  • 無料で始められる監視・モニタリングサービス 5選

    ※1: 2013/12/27追記 1台→Noneに書き換えております。これは、はてブで「制限が無いのでは」と指摘ありましたので再度調べました所、"None"と記述がありました。別項目で"Unlimited"の表記があり「無制限」とは違う意味で書かれていると認識しまして、上記の通りに変更しております。 なお、サービス内容は有償プランになると強化・増えている場合がほとんどです。 New Relic 監視・モニタリングがセットになったサービスです。 対象のサーバにエージェントをインストールすることで、監視・モニタリングを行う事ができます。監視項目毎に一つ一つ設定をしなくても良い点が、監視を始めたばかりの方にとっては便利かもしれません。 また、特徴的なのは、スマートフォンからデータの参照、及び障害通知をPush通知で受け取る事ができる点です。現代的ですね。 無償プランでは、サーバは1台、モニタリン

    無料で始められる監視・モニタリングサービス 5選
  • ITインフラで起きる「もしも」のための12個のコマンド

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

    ITインフラで起きる「もしも」のための12個のコマンド
  • systemd の情報を集め始めよう

    斎藤です。こんにちは。 RedHat Enterprise Linux 7(RHEL7)リリースの足音が聞こえる今日この頃ですが、皆様いかがでしょうか。予習として、Fedora 19を利用されている方もいらっしゃるかと思います。 その中で、大きな変化の1つとして、 systemd(※1) の採用があります。systemdは、SysVinitやUpstartに変わる、プロセス管理の仕組みです。そうです、起動スクリプトの書き方や、プロセスの確認方法が大きく変わる事になるのです!そうなれば、構築や運用に関わる知識や手順を覚え直す必要が出てきます。 しかし、systemdに関する資料は、それほど多くありません。そこで、簡単ですが記事執筆時点(2013-10-24)での情報源をまとめてみました。検証の際の情報収集時、お役に立てば幸いです。 ※私が社内Wikiにまとめた情報をBlog用に整理し、公開し

  • etckeeperで設定ファイルのバージョン管理を始めよう

    斎藤です。こんにちは。 今日は、etckeeperを用いて、設定ファイルをバージョン管理する方法を説明します。設定ファイルの書き換えで辛い目に遭う前に、どうぞお試しください。 ※CentOS 6.4, Ubuntu 12.04 LTS, etckeepr 1.7を基準に説明します etckeeperとは etckeeperは主に/etc配下をVCS(Version Control Systems)を用いてバージョン管理します。実態は、gitやmercurialのwrapperとなっています。 設定ファイルの書き換えの際に、ファイル名に日付をつけてバックアップしたりする手間を省いたり、誤って書き換えてしまったときのための 保険 として利用する事ができます。 インストール方法 はじめに 先程も述べました通り、etckeeperはVCSのwrapperとして動きます。そのため、インストール時には

    etckeeperで設定ファイルのバージョン管理を始めよう