Post

インフラストラクチャ

2020-11-14 14:20:07

docker-compose.ymlで指定した環境変数がコンテナビルド中に参照できない

概要docker-compose.ymlのserviceの1つにenv_fileを指定し、環境変数を設定したが、サービスがbuildするコンテナ内(Dockerfile側)では参照できなかった。vueのアプリケーションをコンテナ内でnpmを使ってビルドしており、アプリケーション側でprocess.env.VUE_APP_API_ENDPOINTという形でアプリケーションのビルド時に環境変数を参照させたかった。 解決策docker-compose.ymlで指定するenv_fileやenvironmentといったキーはコンテナのビルド後に参照できるようになるため、それらのキーを利用するだけではコン...

インフラストラクチャ

Docker Docker Compose

2020-10-30 02:49:52

ISUCON環境で学ぶシステムメトリクス入門

概要 ISUCON環境を利用してシステムメトリクスをちゃんと見れるようなろうという勉強会を定期的に行っているので、そのまとめを残す。 Webエンジニアが知っておきたいインフラの基本 インフラの設計から構成、監視、チューニングまでを参考図書とし、第5章以降の内容を実際に手を動かして確認するような形で行っている。 環境はConohaでISUCON8のイメージを利用してサーバーを立てている。 プラン:メモリ 512MB/CPU 1Core [root@160-251-16-96 ~]# cat /etc/redhat-release CentOS Linux release 7.5.1804 (C...

インフラストラクチャ

ISUCON

2020-10-20 01:20:34

Kubernetesドキュメントのリーディングーコンセプトのまとめ

概要Kubernetesを本格的にキャッチアップしていくためにドキュメントを読んだので、オレオレメモを残す。全部は長いのでメモ書きはコンセプトの章だけにする。 kubernetes.io Kubernetesとは何か?cf. Kubernetesとは何か? Kubernetesとは何か? 宣言的な構成管理 自動化の促進 コンテナ化されたワークロードやサービスの管理のためのプラットフォーム 過去を振り返ってみると 仮想化ができる前の時代におけるデプロイ (Traditional deployment) 物理サーバー上でのアプリケーションのリソース制限がない リソース割当問題がある スケール...

インフラストラクチャ

Docker コンテナ Kubernetes

2019-09-27 09:21:33

DockerのOperation not permittedというエラーに対応する

概要Docker Composeを使ってgolangのtest実行していたら、Operation not permittedというエラーに遭遇した。 対応Docker Documentation - runtaime-privilege-and-linux-capabilities Dockerコンテナの特権設定をいじると解決する。 gobel_test_db: container_name: "gobel_test_db" build: ./docker/mysql ports: - "3305:3306" volumes: - m...

インフラストラクチャ

Docker Docker Compose Linux linux capabilities seccomp

2019-09-17 23:39:28

Mackerelで監視対象から外れたホストを再度復帰させる方法

概要Mackerelの監視対象から誤ったホストを退役させてしまったり、意図せず監視対象から外してしまったときなどに復帰させる方法についてメモっておく。 手順mackerel-agentを再起動しても自動で復帰しないのでホストに割り振られたhostIdを更新させる必要がある。 service mackerel-agent stop cd /var/lib/mackerel-agent mv id /tmp/ service mackerel-agent start 所感たまに焦るので気をつけたい...

インフラストラクチャ

Mackerel

2019-09-17 23:33:59

Dockerizeを使ってDocker Composeのコンテナの起動順を制御する

概要Dockerizeを使ってDocker Composeで起動するコンテナの順番を制御する方法についての覚え書き。 github.com - jwilder/dockerize なぜDockerizeを使うのかDockerizeではなく、wait-for-it というピュアなbash scriptを使った方法も採用することもできる。 cf. Docker-docs-ja - Compose の起動順番を制御 Dockerizeを使う目的は複数コンテナを起動する際、コンテナの起動順を意図的に制御したいようなときである。 例えば、アプリケーション用のコンテナとテスト用のデータベースコンテナがあっ...

インフラストラクチャ

Docker Docker Compose Dockerize

2019-04-28 14:59:08

dockerでイメージとコンテナを削除してもボリュームが消えていなかったときのメモ

概要dockerでコンテナとイメージを削除してもvolumeが削除されていなくてちょいちょい忘れてハマるのでメモっておく。 普段は、docker-composeを使っている。 docker-compose builddocker-compose up -d して、 docker rm **docker rmi ** という感じにお片付けしているのだが、どうやらマウントしているvolumeを削除するオプションがあったらしい。 対応ボリュームが残っているか確認。docker volume ls docker volume rm ** 余談docker-composeでdocker-compose....

インフラストラクチャ

Docker Docker Compose

2019-04-20 23:07:42

ubuntu初期設定メモ

概要ちょいちょい忘れてるのでメモ。不足があれば随時追加。 環境 ConoHa ubuntu 18.04.2 LTS (Bionic Beaver) 準備ubuntuインストール&rootログイン確認conohaでubuntuサーバーを用意し、rootログインできることを確認しておく。 ssh用の鍵をクライアント側で用意する秘密鍵と公開鍵を作成。 ssh-keygen -t rsassh root@<ip address> セットアップサーバーアップデートアップデートしておく。 sudo apt update && sudo apt upgrade -y ユ...

インフラストラクチャ

Ubuntu

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 さくらのVPS

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 さくらのVPS 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