GajumaleRecruit Site

ニュース

イベントや勉強会の様子をお伝えしています。
ガジュマルの雰囲気を、是非感じてみてください。

勉強会
DB

勉強会「ミドルウェアの種類」

2021年07月29日(木曜日)
サーバーサイドのミドルウェアについての勉強会をオンラインで開催しました。

■概要
ミドルウェアの種類とLinuxサーバーへの導入方法を解説

■ミドルウェアの種類
(1)WEBサーバー
 ・Apacheとは
  世界的に最も普及しているWEBサーバー
  モジュールとしてPHPを使える
 ・nginxとは
  最近よく使われているWEBサーバー
  速度が速く、大規模なアクセスにも対応できる

(2)DB
 ・Oracle
  商用DBではスタンダード
  官公庁や銀行、情報システムなどで使用されている
 ・MySQL
  一番WEBで使われている    
  昔は機能があまり充実していなかったが、
  今では改良されてOracleなどと比べても遜色がない
 ・PostgreSQL
  phpと親和性がある
 ・MariaDB
  MySQLの5.5系から派生したDB
  8系までに増えた機能等はないが、
  通常の使い方をするならあまり変わらない
 ・SQL Server
  マイクロソフトのスタンダードなDB
 ・AWS RDS
  Aurora、PostgreSQL、MySQL、MariaDB、Oracle、SQLServerなどが使える
  WEBの開発だとこのサービスでMySQLやOracleを使うことが多い
 ・AWS Aurora
  MySQL(5系)とPostgreSQLに互換性のあるDBとしてのサービス
  性能や安全性など、よりクラウドに特化した作りになっている
 ・AuroraとRDSどちらを選ぶべきか
  RDBはAWS上にDBをインストールしたのと同じ動きをするが、
  Auroraはクラウドされていて実態が1つになっている
  (インスタンスは複数で動くが、ストレージが1つ)    

(3)NoSQL DB
 ・NoSQL DBとは(KVS)
  SQLを使わずにデータをキーだけで引っ張ってこれるDB
  セッションデータの保存に使うと、キーでひけるようになるのでよく使う
  リレーションしない分MySQLとかより速い
 ・memcached
  NoSQL DBのスタンダードで、オンメモリで動作するKVS
  データはメモリ上に展開しているので高速でデータを取得できる
  サーバーが落ちるとメモリ上のデータが飛んでしまう
 ・MongoDB
  最近よく聞くKVS
  データはJSON形式で取得できる
 ・Redis
  主流のKVSの1つ
  クラスタ構成が取れるため、同一クラスタの1台が落ちてもデータが保持される
 ・AWS Elastic cache
  memcachedとRedisが使える
 ・Amazon DynamoDB
  規模が大きいものにも対応できる
  ぐるなびの店舗のデータをKVで引っ張ったりするにはこちらが向いている

(4)DNS
 ・DNSとは
  ドメイン名を管理・運用するために開発されたシステム
 ・BIND
  最も広く普及しているDNSサーバーソフトウェア
  データはメモリ上に展開しているので高速でデータを取得できる
  サーバーが落ちるとメモリ上のデータが飛んでしまう
 ・AWS Route53

(5)検索エンジン
 ・Apache Solr
  Lucene系の検索エンジン
  Javaでできている
 ・Apache_Lucene
  今の検索エンジンの大元になっている
  SolrやElasticsearchなどのプラットフォームで利用される検索ライブラリ
 ・Groonga
  ぐるなびはこれを使ってる
 ・Elasticsearch
  中核にLuceneを採用している。
 ・AWS Amazon Elasticsearch Service   
  AWS上でElasticsearchが使えるサービス
  色んなことがやりたい場合はこれを使うのがいい
 ・Amazon CloudSearch
  シンプルに使うなら向いてるが、
  検索機能を充実させるのは少し難しい

(6)NFS
 ・NFSとは
  UNIX系OSで利用される分散ファイルシステム、およびそのための通信規約
  サーバーに別のサーバーのディレクトリをマウントする機能を提供
  WEBではCookieのデータを保存する形やデータ連携で使われることが多い
 ・AWS EFS
  AWS上でNFSの機能を使えるサービス  
  データはメモリ上に展開しているので高速でデータを取得できる
  サーバーが落ちるとメモリ上のデータが飛んでしまう

■Linuxサーバーへの導入
(1)パッケージ管理
 ・edHad系のパッケージ管理システム
  ソフトウェアの管理にあたって、各ソフトウェアの依存関係を考慮してくれる
  ※RedHad系:RedHad Linux、CentOS Linuxなど
 ・RPM
  RedHad系のパッケージ管理システム
  ソフトウェアの管理にあたって、各ソフトウェアの依存関係を考慮してくれない
 ・APT
  Debian系のパッケージ管理システム
  ※Debian系:Debian Linux、Ubuntuなど

(2)導入
 ミドルウェアの導入方法として、パッケージ管理を利用する方法と、
 コンパイルしてインストールする方法の2パターン
 ・使い分け
  指定したバージョンを使わなければならない場合など、
  柔軟な運用をするには、コンパイルしてインストールするという手段をとる
 ・インストール手順   
  configure: インストールオプションを作成  
  make:makeファイルを作成    
  make install:makeファイルに基づいてインストールを実行
 ・インストールでエラーが発生した場合
  エラーメッセージを確認、検索してみる
  依存性を解決できないパッケージの削除や、
  足りないパッケージの追加等をすれば上手くいくケースが多い

(3)起動
 ・CentOS7以前
  /etc/init.d配下に起動プロクラムがあり、
  それを実行することでサービスの起動・停止をする
 ・CentOS7以降
  systemdを使用してサービスの起動・停止をする
  /etc/init.d/httpd startなどは使えなくなった
一覧へ戻る