Post

インフラ

2019-01-16 10:06:19

コンテナ技術概要

概要コンテナ技術についてのまとめ。Dockerを使わずにコンテナをつくって触ってみる。 コンテナとは ホストOSからアプリケーションとランタイムをまとめて、分離した一連のプロセス。 コンテナの歴史1979年 UNIX OSにchrootが登場。 2000年 FreeBSD jailsがFreeBSD 4.0に登場。chrootの発展系。 2001年 VServer Projectを通じてLinuxにもLinuxコンテナのベースとなる技術が登場。 2004年、LXC1.0がリリース。Linux Containers 2008年、Dockerが登場 コンテナ技術は上記以外にもVirtuozzo、...

インフラ

Docker libcontainer lxc lxd コンテナ

2018-10-22 20:10:07

DockerでElasticsearchとKibanaの環境構築

概要ElasticSearchについての説明とDockerでの環境構築についてざっくりとまとめる。 ElasticSearchとは 分散型RESTful検索/分析エンジン 全文検索だけでなく、分析もできる ほぼリアルタイムの検索プラットフォーム クラスタ データ全体をまとめて保持する1つ以上のノード(サーバー)のコレクションのこと 全てのノードに渡って統合されたインデキシング機能と検索機能が提供される ノード データを保存するクラスタに含まれる1台のサーバー Dockerで環境構築ElasticsearchとKibanaが使える環境を構築する。 docker-compose.ym...

インフラ

elasticsearch kibana

2018-09-18 19:21:11

ssh接続セットアップメモ

概要ssh接続のセットアップ方法についてメモ。 準備 サーバーに接続してwheelグループに所属するユーザーを作成しておく 手順ホスト側~/.ssh/にてssh-keygenで公開鍵・秘密鍵を作成。ここでは公開鍵をid_rsa.pub、秘密鍵をid_rsaとして作成する。 公開鍵の中身をコピーしておく。 ~/.ssh/にてconfigファイルを作成しておく。 Ex. Host bmf HostName 123.45.679.012 User bmf Port 22 IdentityFile ~/.ssh/id_rsa サーバー側~/.ssh/が存在しない場合はディレクトリを作成する。パ...

インフラ

ssh sshd

2018-09-15 23:53:28

PrometheusとGrafanaでリソース監視環境を整える

概要PrometheusとGrafanaでリソース監視の環境を構築したのでメモ。 環境 さくらVPS CentOS7系 PrometheusをインストールPrometheus - Getting Startedに従ってprometheusをダウンロードする。 ダウンロードしたらprometheusを起動、ダッシュボードにアクセスできることを確認しておく。 ポートが開放されていない場合は開放しておく。 node_exporterをインストールPrometheus - node_exporter からnode_exporterをダウンロード。 こちらも起動しておく。 ポートの確認も同様。 Pro...

インフラ

prometheus grafana

2018-08-19 20:01:33

Docker for Macのマウントが遅い問題についてメモ

概要Docker for Macのマウントが遅い。npmとかスロー過ぎて辛い。メモ書き。 原因Dockerのスタッフの方のコメントを参照。(リンク先中段) Docker - File access in mounted volumes extremely slow, CPU bound MacOSのファイルシステムのAPIが関連しているらしい。 解決策 WindowsやLinuxを使う docker-sync MacOSとは異なるOSで構築した仮想環境を用意する(Vagrantとか) cached、delegated、consistentといったオプションを活用する(Docker - Perf...

インフラ

Docker

2018-09-16 22:10:57

Road to ISUcon

概要ISUcon出場に向けて準備したことを記す。 目標・目的を定めた 目標 ISUconの予選の時間を目一杯使い切ってチューニングをする 勝つことが目標ではあるが、初参戦なので現実的なラインの目標を立てた 目的 インフラ周りの知見を高める パフォーマンスを考慮したアプリケーション構築のための知見を高める 社内のパフォーマンス・チューニングの業務に携われるようにする(頑張る) メンバーを募集した会社の同僚を誘い、2人チームで参戦。 パフォーマンス・チューニングの手順までを確認した準備 レギュレーション確認  環境構築 sshの設定 バックアップ取得 自動デプロイ構築 簡易的なスクリ...

インフラ

パフォーマンスチューニング ISUcon ISUcon8

2018-06-09 16:32:32

さくらVPSでDocker環境を構築する

概要さくらVPS上にDocker環境を構築する。サーバーの初期設定等は割愛。 構築手順操作はすべてsudo権限を持った一般ユーザーで行うものとする。 Dockerには無償のCE版と商用版のEE版があるが、今回はCE版を使用する。 リポジトリをセットアップインストールsudo yum install -y yum-utils \ device-mapper-persistent-data \ lvm2 stableリポジトリのセットアップsudo yum-config-manager \ --add-repo \ https://download.docker.com/linux/cent...

インフラ

Docker sakuravps

2018-04-01 11:00:31

Dockerとは

Dockerとは Docker社が開発している、コンテナ型の仮想環境を作成、配布、実行するためのプラットフォーム Linuxのコンテナ技術を使用 コンテナは、ホストマシンのカーネルを利用し、プロセスやユーザーなどを隔離する 軽量・高速 ミドルウェアや各種環境設定をコード化して管理できる(=Infrastructure as Code) ローカル・本番環境問わず 誰でも同じ環境が作れる 環境の再配布・再利用が容易 Dockerの正体 Linux Container(LXC) LXCにおけるコンテナのカスタマイズ(設定ファイル作成やシェルスクリプトによるファイルインストー...

インフラ

Docker 仮想環境

2017-10-12 16:34:53

さくらVPS+CentOS7.3+Ansible

概要AnsibleでさくらVPSの初期セットアップを自動化します。 環境 さくらVPS CentOS7.3 Ansible2.2.1.0 前提知識 さくらVPSをの初期設定の流れを理解していること。 さくらVPSの初期設定 さくらVPSにCentOS7をインストールさくらVPSのコンソール画面からOSインストール>カスタムOSインストールを選択してCentOS7をインストールしておきます。インストールが開始されると、CentOS7のインストール用コンソール画面(VNCコンソールのHTML5版かJava Applet版)を開くことができるので、環境に合わせて好きな方を選びます。 C...

インフラ

ansible centos sakuravps Iaas

2017-10-01 16:34:12

Vagrant上のMySQLで"MySQL Daemon failed to start

LaravelでマイグレーションやSQLファイルのインポートを繰り返したり、中断したりと無茶をやっていたらMySQLがおかしくなりました。 対応MySQLの設定ファイルにログサイズを設定したら直りました。 innodb_log_file_size=5M 所感無茶はやめよう! 参考 "Plugin 'InnoDB' registration as a STORAGE ENGINE failed" というエラーで MySQL サービスを起動できません症状 innodb_log_file_sizeを気軽に変えると死ぬよ

インフラ

mysql vagrant

2017-03-29 16:29:26

VagrantでCentOS6.7の開発環境を構築する

概要最近、Boxを再構築した際に、「Vagrant開発環境のワークフローをちゃんとまとめておきたい」と思ったのでまとめてみました。レポジトリにほぼ同じワークフローメモがあります。 github - bmf-san/vagrant-development-workflow 前提以下のアプリケーションがホストマシン(Mac)にインストールされていること Vagrant VirtualBox 環境ホストマシン(Mac) macOS Sierra v10.12.2 仮想環境 CentOS6.7 構築手順 開発環境ディレクトリにて、Vagrantfileを作成する vagrant init...

インフラ

apache centos vagrant

2017-03-08 16:28:26

Vagrant+CentOS7.3+Ansible

概要AnsibleでVagrantの環境構築をする最初の一歩です。プロビジョニングができる環境を整えます。 環境 Vagrant1.9.1 CentOS7.3 Ansible2.2.1.0 CentOS7.3のVagrnat Boxを用意する任意のディレクトリ(例として今回はcentos7.3)にてVagrant環境を構築します。 vagrant box add https://atlas.hashicorp.com/centos/boxes/7vagrant init ここまでのディレクトリ構成 centos7.3/ ├── .vagrant.d ├── Vagrantfile ※デフォル...

インフラ

ansible centos vagrant

2016-10-03 16:27:12

Slack+hubot+cron(node-cron)+shell+logwatchでサーバーロ...

以前、slackとhubotでShellScriptをSlackから実行しようという記事を書きました。さくらvps+hubot+Slackでslack botをつくる 今回は対話形式のコマンド実行ではなく、cronで定期的にShellScriptを実行、Slackに出力結果を報告しようという試みです。 意外とこの類いのコピペでパクれるリスペクトできる参考ソースが調べても出てこなかったので、途中で挫折仕掛けましたw API叩いてcrontabで回すという無難な方法もありましたが、せっかくつくったhubotを活躍させたかったので頑張りました。 注意: この記事を執筆している時は確かに動いていたので...

インフラ

cron centos slack sakuravps coffeescript hubot logwatch shell

2017-10-03 16:11:47

php7をインストールした時にmysqlドライバーがなかった

php7をインストールした時にmysqlドライバーがなかった()php7のインストールについてはこちらを参照にしました。 CentOS6/CentOS7にPHP5.6/PHP7をyumでインストール ちなみに私の環境は・・・ さくらVPS CentOS6.7 ドライバーがないならインストールすればいいじゃないyum install yum install --enablerepo=remi,remi-php70 php-mysqlnd これで解決できたっぽいです(:3」∠) 補足:php7のインストールに関してもしかしたら足りないパッケージもあるかもしれませんが、laravelをphp...

インフラ

centos mysql php php7 sakuravps yum

2016-10-03 16:10:44

Nginxをリバースプロキシとして設定する

Apacheで運用していたさくらVPSにNginxをリバースプロキシとして設定したのでメモします。 随分前に設定したのでうろ覚えのところもあるかもしれませんがご了承ください。 環境 さくらVPS CentOS6系 Apache2.2.15 Nginx1.8.1 あると良い(いやあったほうが良い)前提知識 Apacheのバーチャルホストの仕組み及び設定方法 おおまかに仕組みをいうと、Nginxでリクエストを受け付けてApcheの指定ポートにリクエストを流すという感じです()バーチャルホストの設定はApache側で設定しておきます。Nginxが右から左へムーディ勝山するだけです。 Nginxを...

インフラ

centos nginx apache sakuravps

2017-06-24 16:08:40

macにanyenvをインストールする

Macにanyenvをインストールする手順です。若干ハマったところがあったのでメモ。 インストール私の環境では、/usr/local/bin/に色々置いてあるので、そこにanyenvをインストールすることにします。 cd /usr/local/bingit clone https://github.com/riywo/anyenv Pathを通すexport PATH="/usr/local/bin/anyenv/bin:$PATH" export ANYENV_ROOT=/usr/local/bin/anyenv eval "$(anyenv init -)&q...

インフラ

shellscript anyenv

2017-07-01 16:07:30

Letsencryptの証明書自動更新スクリプト

概要letsencryptの証明書を自動更新するスクリプトの紹介です。以前から作ってはいたのですが、色々と問題があったり、サーバー環境が変わったりで完全版を残せていなかったので改めてまとめました。 環境 nginx v1.12.0 ※letsencryptのインストールやshell scriptの実行方法等には触れません。 スクリプト月に一回証明書の有効期限を問わず更新し(--force-renew)、更新結果(成功または失敗)をslack通知するスクリプトです。 slackの設定値は外部ファイルで管理しています。 #!/bin/sh # Import config . /home/bmf...

インフラ

cron letsencrypt shellscript slack

2016-10-03 16:06:40

letsencryptの証明書自動更新(cron)とちょっとだけSlack連携

letsencryptの証明書自動更新(cron)とちょっとだけSlack連携 やることletsencryptの証明書を自動更新させるのを長らく忘れていたのでshellとcronで設定します。 やらないこと letsencryptのインストール・・・pythonエラーがちょっと面倒だった記憶が。。。 letsencryptのオブションの説明・・・色々あるので。。。 環境 さくらvps CentOS6系 letsencrypt ShellScriptshellをかきます。shellの保存場所は適宜設けてください。 #!/bin/sh service nginx stop /root/lets...

インフラ

cron letsencrypt shellscript slack

2016-12-03 16:06:04

Let'sEncryptの証明書自動更新に失敗し続けていたけど何とかした話

letsencryptの証明書自動更新(cron)とちょっとだけSlack連携 でかいたスクリプトは、手動で実行する場合は更新成功するのですが、cronで実行すると何故か毎回失敗するという問題作でした。 そこでスクリプトを見直し、何とか正しく動作するように改良してみました。 筆者はnginx+apacheのサーバー構成です。基本的には--webrootオプションを使って証明書発行や更新を行っています。 注:letsencryptのオプションについては各自の環境に読み替えて下さい。 スクリプト#!/bin/sh # WebHookUrl WEBHOOKURL="****************...

インフラ

cron letsencrypt slack shellscript

2016-11-19 16:03:12

Laravelのデプロイツール Laravel Envoy を使ってみる

Capistrano, Fabric, Rocketeer, Deployer... など様々なデプロイツールがありますが、使いこなすのが結構大変。。。 もしあなたがLaravelユーザーならシンプルでカンタンに使えるデプロイツールがあります。 Laravel Envoy 一般的なデプロイツールと比較して、細々としたことはできなさそうですが、必要最低限のデプロイタスクは行えるかと思います。 導入ドキュメントにもありますが・・composer global require "laravel/envoy=~1.0" デプロイタスクを記述envoy.blade.phpというファイ...

インフラ

laravel deploy