インフラ

【MySQL】データベースのパーティショニングとはなんぞやという話

パーティショニングについての覚書。 一応 MySQL が前提。先に具体的な実体を書いたあと、それがパフォーマンス向上にどう寄与するのかを書きます。 パーティショニング is 何 簡単に言えば、データベースのテーブルを物理的に分割することです。テーブルの…

MySQLのIndex Condition Pushdown とはなんぞやという話

MySQL のバージョン5.6から追加された機能に、Index Condition Pushdown(ICP) というものがあります。ICP は「マルチカラムインデックスの順番を意識しなくてもよくなる仕組み」的な説明がされることがあり、それはそれで間違いではないのかもしれません。が…

DNS初心者が独自ドメインの設定する時に知っておきたいこと、ざっくりとした設定方法

ホスティングサービスで借りたサーバを独自ドメインで運用したいケースが結構あるのですが、設定するたびに DNS の仕組みを忘れてしまいます。仕組みを忘れるというよりは、自分が今何を設定しているのか、何を設定しなければいけないのかが分からなくなる感…

ブロックチェーンとは何なのか、ややこしいところを中心に概要をざっくりと

ここ数年でブロックチェーンという単語をよく耳にするようになりました。が、イマイチ理解できていなかったので、自分なりにまとめ。備忘メモ。 具体的な動作や理論については書きません、概要をざっくりと書きます。 ブロックチェーン is 何 思想などは後回…

【Rails】関連(アソシエーション)をもったモデルを構造化してElasticsearchに格納する

RailsでElasticsearchを使ってみたときのメモ. Articles <-> Authorships <-> Authors という関連を持ったモデル群があるときに,例えば記事(Article)を全文検索したら著者名も検索対象に入れたい. gem 'elasticsearch-rails' gem 'elasticsearch-model' …

RubyでHTTPクライアント→HTTPプロキシ→サーバの流れを実装してみる

● HTTPクライアント (httpclient) ● HTTPプロキシ (webrick) ● サーバ (CGI) を書いて、HTTP クライアントからプロキシ経由でリクエストを投げてサーバで受け取る、という一連の流れを実装してみようと思った時のメモ。 受け取り側のサーバだけ CGI を…

AWSのAutoScalingの設定をしてみる

AWS の AutoScaling 機能を使う機会があったので、忘れないうちに設定方法を書いておきます。 AutoScaling とは 負荷に応じて EC2 インスタンスの数を自動的に増減してくれる機能です。水平方向の負荷分散、所謂スケールアウトを動的に実現します。また、増…

【Elasticache】ELB配下の複数インスタンス間でのセッション管理【Laravel例】

AWS の ELB に複数のインスタンスをぶら下げて負荷分散をしようと思った際に、Laravel アプリのセッション管理について考えたメモです。 ユーザにログインさせる必要があるアプリは、ELB によって接続先インスタンスを振り分けられたとしても、そのセッショ…

Apache2.4 を event MPM + FastCGI に変更して省メモリする

ApacheのMPMとして、プロセスベースの並列実行をする prefork を使用していたのですが、省メモリのためにスレッドベースの並列実行をする event へ変更しました。構成としては、Apache2.4 + event + mod_proxy_fcgi + php-fpm です。 それぞれの MPM の特徴…

Apache MPMとはなんぞやという話

Apache のチューニングにあたって MPM について知ったときのメモ、なんとなくの概要。 Apache MPM is 何か、ざっくりと。 Webサーバの実装モデルの話 MPMの話に入る前に、Webサーバの基本的な並行処理のモデルをおさえておきます。 Webサーバに接続するクラ…

EC2インスタンスがCloundWatchにカスタムメトリクスの情報を送信してくれなかった

CloudWatchでEC2インスタンスのメモリ情報とかをモニタリングしたいと思った時にうまく行かなかった時のメモ。 流れとしてはこのような感じです。 必要な情報(メモリ使用率とか)をCloudWatchに送信する設定が完了したインスタンスを作成 作成したインスタ…

MySQL バイナリログとInnoDBログについて調べたメモ

MySQLのストレージエンジンであるInnoDBに備わっているバイナリログとInnoDBログについてよく分からなかったので軽く触れてみることにしましたが、ちょっと情報が古いかもしれません。 InnoDBには、InnoDBログとバイナリログが存在します。InnoDBログはInnoD…

VagrantとAnsibleでEC2インスタンスを起動してみる

試します。 前提 作業はEC2インスタンスにSSHでログインしてEC2インスタンス上で行う AMIには、作業するインスタンスと立ち上げるインスタンス共にAmazon Linuxを使用する VPC使用、上記2つのインスタンスは同じVPC内の同じサブネット内に作成 立ち上げたイ…

LaravelでS3に画像アップロードしようと思ったらエラー

league/flysystem-aws-s3-v3 を使って画像アップロードしようとしたら怒られました。 クライアント側ではなくサーバ側でアップロード処理を行うケースです。 リソース型でも文字列型でもないオブジェクトをアップロードメソッドに渡してアップロードしようと…

CloudFrontでコンテンツ配信 (署名付きCookie)

先日投稿した記事では署名付きURLでのアクセス制御について書きましたが、今回は署名付きCookieを使用してのアクセス制御についてです。 norikone.hatenablog.com 署名付きURLと署名付きCookieのどっちを使えばいいの? 署名付きURLを使用するケース 個別の…

CloudFrontでコンテンツ配信 (署名付きURL)

静的コンテンツ配布用にAWSのCloudFrontを試してみました。おさらいしていきます。 署名付きURLを使用します。署名付きCookieについては以下の記事に書いています。 norikone.hatenablog.com CloudFrontって? CloudFrontは、Amazonが提供しているCDNです。C…

ELBのヘルスチェックが失敗して通らなかった

ELBの設定で、インスタンスのステータスがOutOfServiceから動かないという状況に陥った際のメモです。 へルスチェックとは ロードバランサにぶら下がっているインスタンスの状態をチェックするためのものです。正常と異常を管理者側で定義して、インスタンス…