SlideShare a Scribd company logo
1 of 30
Download to read offline
2014/12/6 Kazunori Inaba 
2014.12.6 
TechmixHokkaido 2014 
サーバー設定のお話 
稲葉一紀@札幌 
1
2014/12/6 Kazunori Inaba 
稲葉一紀(KazunoriInaba) 
サーバーインフラ専門のフリーランスエンジニア@札幌 
屋号:稲葉サーバーデザイン 
http://inaba-serverdesign.jp/ 
おもにアプリ開発企業・エンジニア向けに 
セキュリティ・可用性・性能・拡張性を考慮した 
ちょっと気の利いた 
サーバーインフラ構成設計・設定・や既存システムの性能改善調査・支援 
を行います。 
2 
自己紹介(1)
自己紹介(2) 
2014/12/6 Kazunori Inaba 
IaaSクラウドの比較調査など 
•IaaSクラウド比較'14 
http://www.slideshare.net/kazunoriinaba/20140411-iaascloud 
•NAVERまとめ【クラウドサーバーサービス(IaaS)比較まとめ】 
http://matome.naver.jp/odai/2141128309524837601 
3
2014/12/6 Kazunori Inaba 
•札幌ライブ情報公開中 
http://seesaawiki.jp/w/sapporo_rock_live/ 
今夜のライブの一部 
4 
自己紹介(3)
はじめに 
2014/12/6 Kazunori Inaba 
Linuxサーバーについて、セキュリティやチューニングの基本的な考え方と、 
ふつうにやっておくべき設定についてお話します。 
※攻撃から完璧に防御する方法、サーバー性能を限界まで引き出す、といった話では 
ありません。 
※LAMPで1台から数台のWebサーバーを対象としますが、基本的な考え方はこれ 
以外でも同じだと思います。 
スライドはのちほどアップします。 
http://www.slideshare.net/kazunoriinaba/ 
5
セキュリティ–基本的なポリシー 
2014/12/6 Kazunori Inaba 
•基本的な設定を確実に行い、不正アクセスされる確率をできるだけ減らす。 
•運用中 
•ログを確認する。 
•脆弱性の情報収集と迅速な対処を行う。 
6
セキュリティ–参考文献 
2014/12/6 Kazunori Inaba 
(いきなりですが時間がないので)以下などを参照してください。 
•1時間でざっくり教えるサーバ運営超入門(インフィニットループさん) 
http://www.slideshare.net/infinite_loop/1-10128499 
→基本的な考え方などがすごくわかりやすい。 
•Qiitaそこそこセキュアなlinuxサーバーを作る 
http://qiita.com/cocu/items/e7c305ccffb6841d109c 
→具体的な設定手順。 
7
セキュリティ– クラウドとVPSの違い(一般的には) 
2014/12/6 Kazunori Inaba 
• VPS 
• 基本的にサーバーIPアドレス向けのパケットがすべてサーバーに届く。 
• 不正なアクセスはiptablesでブロックできるが、処理負荷が大きくなる可能性がある。 
• クラウド 
• サーバーの上位でファイアウォールポリシーを設定でき、許可していないパケットはサーバー 
に届く前にブロックされる。 
※サービスによっては上位にIPSがあり、悪質すぎるアクセスを自動的にブロックする。 
8 
× 
×
セキュリティ–ログ管理・監視 
2014/12/6 Kazunori Inaba 
•何かあったときの調査のため、システムログ、アプリケーションログ、アクセスロ グは、一定期間保存を(期間の長さは組織/個人でポリシーを決める)。 
•ディスクあふれに注意。 
•サーバー上での保存期間を短くする工夫。 
•fluentdでAmazonS3等に転送。 
•Papertrailなどのログ集約サービスに転送。 
•ログのチェック。 
•目視は大変。 
•特定の文字列が出現したら自動アラート通知するよう設定。 
•ログ監視ツールSwatchの導入。 
•ログ集約サービスPapertrailの機能。 
9
セキュリティ–その他ピックアップ 
2014/12/6 Kazunori Inaba 
•iptables 
•上位にファイアウォールがあっても、併用して使ったほうがよいと思う。多段階防御。 
•FTP 
•SCP/SFTPか、せめてFTPSに。関係者のみであれば、証明書はオレオレでもよい。 
•コントロールポートをTCP/21から変更すると少し安全性が増す。 
•データ通信ポートの範囲を限定すると、ファイアウォールで許可するポートを絞れる。 
•phpMyAdmin 
•アクセス元IPアドレスやBASIC/Digest認証などで可能な限りのアクセス制限を。 
•HTTPS必須で。お問い合わせフォームだけHTTPSにしてもphpMyAdminがHTTPだと、(暗号 化して保存していない限り)データが平文で流れて意味がないのでは。 
10
チューニング–基本的な考え方 
2014/12/6 Kazunori Inaba 
•極力ディスクアクセスを減らす。 
•メモリ使用量合計でサーバーの搭載メモリを超えないようにする。 
•スワップを使うと圧倒的に遅い! 
→ここではおもにメモリまわりのチューニングについてお話します。 
11
チューニング–メモリ使用状況の確認 
2014/12/6 Kazunori Inaba 
・freeコマンドがわかりやすい 
$free-m 
totalusedfreesharedbufferscached 
Mem:996902930184572 
-/+buffers/cache:145850 
Swap:204752042 
(参考) 
Linuxのメモリー管理(メモリ-が足りない?,メモリーリークの検出/防止) 
http://www.math.kobe-u.ac.jp/~kodama/tips-free-memory.html 
「Linux(っていうかUNIXかな?)では,各プロセスにメモリを割り振った残りを 
バッファ(buffer)とキャッシュ(cache)に利用して,ディスク入出力の負荷を減らしている。」 
プロセスの実質的な 
メモリ使用量合計 145MB 
実質的な 
メモリの空き 850MB 
12
チューニング–ソフトウェアへのメモリ配分(1) 
2014/12/6 Kazunori Inaba 
サーバーの各ソフトウェアへの最大使用メモリ配分を検討する。 
•Web+DBサーバー1台の場合の配分例 
Apache (+ mod_php) 
40% 
MySQL 
40% 
その他 
20% 
Apache/ 
Nginx 
Proxy 
5% 
MySQL 
40% 
その他 
20% 
Tomcat/ 
Passenger/ 
PHP-FPM, etc. 
35% 
13 
Apache (+ mod_php) 
30% 
MySQL 
30% 
その他 
20% 
Batch 
20%
チューニング–ソフトウェアへのメモリ配分(2) 
2014/12/6 Kazunori Inaba 
•Webサーバー1台+DBサーバー1台の場合の配分例 
Webサーバー 
DBサーバー 
Apache (+ mod_php) 
80% 
その他 
20% 
MySQL 
80% 
その他 
20% 
Apache/ 
Nginx 
Proxy 
10% 
その他 
20% 
Tomcat/ 
Passenger/ 
PHP-FPM, etc. 
70% 
14
チューニング–Apache(1) 
2014/12/6 Kazunori Inaba 
•Apacheの最大メモリ使用量 
=1プロセスあたりのメモリ使用量x最大接続数(MaxClients) 
→最大接続数を大きくし過ぎないよう注意! 
•「1プロセスあたりのメモリ使用量」のおおよその値は、psコマンドの「RSS」、 topコマンドの「RES」で確認できる。(KB単位) 
$psaux 
USERPID%CPU%MEMVSZRSSTTYSTATSTARTTIMECOMMAND 
… 
apache116670.01.944939637536?SNov300:52/usr/sbin/httpd 
apache116680.01.944935236624?SNov300:52/usr/sbin/httpd 
apache116690.01.443572028020?SNov300:53/usr/sbin/httpd 
apache116700.01.343364826744?SNov300:51/usr/sbin/httpd 
15
チューニング–Apache(2) 
2014/12/6 Kazunori Inaba 
ただし、、、 
psコマンドの「RSS」の値は、親プロセスと共有しているメモリ領域分も含んでいる。 
→プロセスが実際使用しているメモリは「RSS」の値より小さい。 
WordPressを使用した場合で70-80%など。 
(参考) 
LinuxのプロセスがCopyonWriteで共有しているメモリのサイズを調べる 
http://d.hatena.ne.jp/naoya/20080212/1202830671 
↑共有しているメモリ領域分を調べるPerlスクリプトがある。 
16
チューニング–Apache(3) 
2014/12/6 Kazunori Inaba 
•同時接続数(ざっくり計算) 
=1時間あたりの可能アクセス数 
x(ページの表示にかかる秒数+KeepAliveTimeoutの秒数)/3600 
1時間あたりのPVを3000,ページ表示に5秒,KeepAliveTimeoutを3秒とすると、 
同時接続数=3000x(5+3)/3600=6.66 
※でも、ブラウザは1アクセスで複数セッションを使うので、 
最大接続数(MaxClients)はその5倍とか。 
17
チューニング–Apache(4) 
2014/12/6 Kazunori Inaba 
WordPressを使用したWebサイトの場合、、、 
•Apache1プロセスのメモリ使用量が大きい 
→preforkMPMの場合、同時接続が増えるとメモリ使用量が激増する。 
Apache+mod_php 
30MB 
… 
30MB x 30プロセス= 900MB 
Apache+mod_php30MB 
Apache+mod_php30MB 
18
チューニング–Apache(5) 
2014/12/6 Kazunori Inaba 
WordPressを使用したWebサイトの場合、、、 
•Nginx+PHP-FPM(FastCGI)にすると、軽量化できる(極端な例)。 
NginxMaster+Worker 
2MB 
2MB + 50MB x 5 = 252MB 
PHP-FPM 
50MB 
PHP-FPM 
50MB 
PHP-FPM 
50MB 
… 
Reverse Proxy 
※静的ファイルへのリクエストはNginxが処理するよう設定する。 
※.htaccessが使えないことに注意。 
※Apache + mod_fcgi+ PHP-FPMも可。 
19
チューニング–MySQL(1) 
2014/12/6 Kazunori Inaba 
•MySQLの最大メモリ使用量 
=max_connections* 
(sort_buffer_size 
+join_buffer_size 
+read_buffer_size 
+read_rnd_buffer_size 
+net_buffer_length) 
+key_buffer_size 
+query_cache_size 
+innodb_buffer_pool_size 
+innodb_additional_mem_pool_size 
+innodb_log_buffer_size 
thread buffers 
global buffers 
20
チューニング–MySQL(2) 
2014/12/6 Kazunori Inaba 
一番大事なパラメーターは、、、 
•InnoDBの場合、innodb_buffer_pool_size(デフォルト8MB) 
InnoDBのデータやインデックスをキャッシュするバッファサイズ。 
これを増やしたら、innodb_log_file_sizeも大きくすること。 
•MyISAMの場合、key_buffer_size(デフォルト8MB) 
MyISAMのインデックスをキャッシュするバッファサイズ。 
↑これらにドカンと割り当てよう! 
できれば、インデックスの合計サイズ以上を。 
デフォルト値のままでは、サーバーに16GBとか32GBとかどんなにメモリを搭載しても、 ディスクアクセスが頻繁に発生してパフォーマンスが出ません! 
※MySQLTunerで診断して推奨設定を確認するという方法もある。 
※AWSRDSなど、クラウドのRDBサービスは、あらかじめパラメーターがチューニングされている。 
21
チューニング–キャッシュ、インデックス 
2014/12/6 Kazunori Inaba 
•キャッシュ 
•memcached,RedisでDBへのリクエスト結果をキャッシュ。 
•DBインデックスを適切に設定する。 
22
チューニング–CPU数 
2014/12/6 Kazunori Inaba 
•通常のWebサイトであれば、そんなにCPUは使わないはず。 
•メモリ4GB→CPU1つ 
•メモリ8GB→CPU2つ(Apache+アプリケーションで1つ、MySQLで1つ、など。) 
•特殊な演算処理や、ログ解析処理などを頻繁に行う場合は、その分CPU数を増やす。クラウド であれば、クロックの高いCPUを選ぶ。 
•MySQLの同時接続数が多い場合は、CPU数を増やすと性能がよくなる。 
23
チューニング-サイジング(1) 
2014/12/6 Kazunori Inaba 
サーバーの要求スペックを考える場合。 
•Webの同時接続数からApache(+アプリケーションサーバー、FastCGIなど)の 最大メモリ使用量を計算。 
•DBのインデックスサイズやデータサイズ、同時接続数から最大メモリ使用量を計算。 
•これらを合計して、サーバーに必要なメモリ使用量を計算。 
↑事前の想定は難しい。。。 
→柔軟にサーバースペックを変更できるクラウドサーバーを利用すると便利。 
Apache (+ mod_php) 
1.5GB 
MySQL 
1.5GB 
その他 
1GB 
24
チューニング-サイジング(2) 
2014/12/6 Kazunori Inaba 
•クラウドサーバーを利用する場合 
○スモールスタート 
CPUx1、メモリ2GBなど低いスペックで運用開始。 
→リソース不足となったときスペックを上げる。 
予期せぬアクセス急増でアクセス不能が生じる可能性がある。 
◎ラージスタート 
CPUx4コア、メモリ8GBなど高いスペックで運用開始。 
→リソースが余っているようであればスペックを下げる。 
25
チューニング–リソース使用状況の見える化(1) 
2014/12/6 Kazunori Inaba 
•監視ツールで、CPU、メモリ、ディスク使用状況を見える化。 
•Zabbix,MRTG,Munin,Cactiなどの監視ツールを導入。 
•NewRelic,Mackerelなどのクラウド監視サービス(SaaS)を利用という手も。 
•監視サーバー不要。アカウントを作って、サーバーにエージェントをyuminstall(apt-getinstall)す るだけなので簡単。 
•サーバーダウン、メモリ・ディスクの空き不足などにアラート通知できる。 
•無料利用の場合はデータ保存期間が1日、1週間、1ヶ月など少ないことに注意。 
26
チューニング–リソース使用状況の見える化(2) 
2014/12/6 Kazunori Inaba 
New Relic 
Overview 
27
チューニング–リソース使用状況の見える化(3) 
2014/12/6 Kazunori Inaba 
•Webアクセス解析ツールでネットワーク転送量、クローラーによるアクセスなどを 見える化。 
•AWStats,Webalizerなどを導入。 
•GoogleAnalyticsのようなマーケティングツールとは別の、インフラ的視点でWebアクセス状 況を把握できる。 
•ネットワーク転送量課金のあるAWS等クラウド移行時の見積もりの目安となる。 
28
(個人的な意見)OS、ソフトウェアの選択 
2014/12/6 Kazunori Inaba 
•「その選択で、Webサイト/システムの運用を自分(たち)がずっと続けられるか どうか。」という視点でも考えるとよいのでは。 
→責任をもってずっと続けられる 
お好きなものを。 
→ずっと続けられない(かも) 
できるだけ、ユーザーが多く情報収集しやすい、スタンダードなものを。 
ex.CentOS/Ubuntu,Apache/Nginx,MySQL/PostgreSQLなど。 
29
おわりに-サーバーの設定、運用について 
2014/12/6 Kazunori Inaba 
•セキュリティ、チューニングの基本的な考え方は(あまり)変わらない。 
•好きでやれればいいけど、覚えることも多く、設定はけっこう大変。運用はもっと 大変。 
•「このサーバー、機密情報保存しないから」と適当な設定のままでは、攻撃元として加担して しまうことも。 
•最低限のチューニングもしないと、サーバースペックを無駄に大きくして余計なお金がかかる ことも。 
•面倒な人は、レンタルサーバー、マネージドVPS/クラウド、PaaS(Herokuなど) の利用を。もしくは信頼のおける専門家に依頼を。 
•やるからには責任をもって監視、対応を。 
•なぜそう設定したのか、ドキュメントに残す。 
30

More Related Content

What's hot

Docker ホスティングサービス 'Arukas' での Mesos + Marathon の活用について(Mesos勉強会)
Docker ホスティングサービス 'Arukas' での Mesos + Marathon の活用について(Mesos勉強会)Docker ホスティングサービス 'Arukas' での Mesos + Marathon の活用について(Mesos勉強会)
Docker ホスティングサービス 'Arukas' での Mesos + Marathon の活用について(Mesos勉強会)さくらインターネット株式会社
 
アメーバブログを支えるデータセンターとインフラ技術
アメーバブログを支えるデータセンターとインフラ技術 アメーバブログを支えるデータセンターとインフラ技術
アメーバブログを支えるデータセンターとインフラ技術 Hiroki NAKASHIMA
 
Web Framework Benchmarksと Perl の現状報告会 YAPC::Asia Tokyo 2014 LT
Web Framework Benchmarksと Perl の現状報告会 YAPC::Asia Tokyo 2014 LTWeb Framework Benchmarksと Perl の現状報告会 YAPC::Asia Tokyo 2014 LT
Web Framework Benchmarksと Perl の現状報告会 YAPC::Asia Tokyo 2014 LTMasahiro Nagano
 
KUSANAGIユーザグループ東京 第1回勉強会 資料
KUSANAGIユーザグループ東京 第1回勉強会 資料KUSANAGIユーザグループ東京 第1回勉強会 資料
KUSANAGIユーザグループ東京 第1回勉強会 資料Sumito Tsukada
 
Performance and Scalability of Web Service
Performance and Scalability of Web ServicePerformance and Scalability of Web Service
Performance and Scalability of Web ServiceShinji Tanaka
 
サーバ構築を自動化する 〜Ansible〜
サーバ構築を自動化する 〜Ansible〜サーバ構築を自動化する 〜Ansible〜
サーバ構築を自動化する 〜Ansible〜Yui Ito
 
My sql security (暗号化)
My sql security (暗号化) My sql security (暗号化)
My sql security (暗号化) Shinya Sugiyama
 
AnsibleによるInfrastructure as code入門
AnsibleによるInfrastructure as code入門AnsibleによるInfrastructure as code入門
AnsibleによるInfrastructure as code入門kk_Ataka
 
ヤフー発のメッセージキュー 「Pulsar」のご紹介@jjug ccc 20171118
ヤフー発のメッセージキュー 「Pulsar」のご紹介@jjug ccc 20171118ヤフー発のメッセージキュー 「Pulsar」のご紹介@jjug ccc 20171118
ヤフー発のメッセージキュー 「Pulsar」のご紹介@jjug ccc 20171118Nozomi Kurihara
 
ついに解禁!Amazon Aurora徹底検証!
ついに解禁!Amazon Aurora徹底検証!ついに解禁!Amazon Aurora徹底検証!
ついに解禁!Amazon Aurora徹底検証!Terui Masashi
 
実プロジェクトの経験から学ぶazureサービス適用パターン
実プロジェクトの経験から学ぶazureサービス適用パターン実プロジェクトの経験から学ぶazureサービス適用パターン
実プロジェクトの経験から学ぶazureサービス適用パターンKuniteru Asami
 
Mackerelによる
簡単サーバー管理入門と発展形
Mackerelによる
簡単サーバー管理入門と発展形Mackerelによる
簡単サーバー管理入門と発展形
Mackerelによる
簡単サーバー管理入門と発展形Shinji Tanaka
 
Amazon RDS (MySQL) 入門
Amazon RDS (MySQL) 入門Amazon RDS (MySQL) 入門
Amazon RDS (MySQL) 入門Manabu Shinsaka
 
とある AWS サービスの運用移管〜データストア編〜 #jawsmeguro
とある AWS サービスの運用移管〜データストア編〜 #jawsmeguroとある AWS サービスの運用移管〜データストア編〜 #jawsmeguro
とある AWS サービスの運用移管〜データストア編〜 #jawsmeguroIKEDA Kiyoshi
 
INF-018_OS の中で SDN 抗争勃発!? ~主役を争う VXLAN vs NVGRE~
INF-018_OS の中で SDN 抗争勃発!? ~主役を争う VXLAN vs NVGRE~INF-018_OS の中で SDN 抗争勃発!? ~主役を争う VXLAN vs NVGRE~
INF-018_OS の中で SDN 抗争勃発!? ~主役を争う VXLAN vs NVGRE~decode2016
 
Infrastructure as Codeの取り組みと改善
Infrastructure as Codeの取り組みと改善Infrastructure as Codeの取り組みと改善
Infrastructure as Codeの取り組みと改善Takashi Honda
 
[Aurora事例祭り]Amazon Aurora を使いこなすためのベストプラクティス
[Aurora事例祭り]Amazon Aurora を使いこなすためのベストプラクティス[Aurora事例祭り]Amazon Aurora を使いこなすためのベストプラクティス
[Aurora事例祭り]Amazon Aurora を使いこなすためのベストプラクティスAmazon Web Services Japan
 

What's hot (20)

Docker ホスティングサービス 'Arukas' での Mesos + Marathon の活用について(Mesos勉強会)
Docker ホスティングサービス 'Arukas' での Mesos + Marathon の活用について(Mesos勉強会)Docker ホスティングサービス 'Arukas' での Mesos + Marathon の活用について(Mesos勉強会)
Docker ホスティングサービス 'Arukas' での Mesos + Marathon の活用について(Mesos勉強会)
 
アメーバブログを支えるデータセンターとインフラ技術
アメーバブログを支えるデータセンターとインフラ技術 アメーバブログを支えるデータセンターとインフラ技術
アメーバブログを支えるデータセンターとインフラ技術
 
Web Framework Benchmarksと Perl の現状報告会 YAPC::Asia Tokyo 2014 LT
Web Framework Benchmarksと Perl の現状報告会 YAPC::Asia Tokyo 2014 LTWeb Framework Benchmarksと Perl の現状報告会 YAPC::Asia Tokyo 2014 LT
Web Framework Benchmarksと Perl の現状報告会 YAPC::Asia Tokyo 2014 LT
 
KUSANAGIユーザグループ東京 第1回勉強会 資料
KUSANAGIユーザグループ東京 第1回勉強会 資料KUSANAGIユーザグループ東京 第1回勉強会 資料
KUSANAGIユーザグループ東京 第1回勉強会 資料
 
Performance and Scalability of Web Service
Performance and Scalability of Web ServicePerformance and Scalability of Web Service
Performance and Scalability of Web Service
 
サーバ構築を自動化する 〜Ansible〜
サーバ構築を自動化する 〜Ansible〜サーバ構築を自動化する 〜Ansible〜
サーバ構築を自動化する 〜Ansible〜
 
Vagrant on SoftLayer
Vagrant on SoftLayerVagrant on SoftLayer
Vagrant on SoftLayer
 
My sql security (暗号化)
My sql security (暗号化) My sql security (暗号化)
My sql security (暗号化)
 
AnsibleによるInfrastructure as code入門
AnsibleによるInfrastructure as code入門AnsibleによるInfrastructure as code入門
AnsibleによるInfrastructure as code入門
 
ヤフー発のメッセージキュー 「Pulsar」のご紹介@jjug ccc 20171118
ヤフー発のメッセージキュー 「Pulsar」のご紹介@jjug ccc 20171118ヤフー発のメッセージキュー 「Pulsar」のご紹介@jjug ccc 20171118
ヤフー発のメッセージキュー 「Pulsar」のご紹介@jjug ccc 20171118
 
ついに解禁!Amazon Aurora徹底検証!
ついに解禁!Amazon Aurora徹底検証!ついに解禁!Amazon Aurora徹底検証!
ついに解禁!Amazon Aurora徹底検証!
 
実プロジェクトの経験から学ぶazureサービス適用パターン
実プロジェクトの経験から学ぶazureサービス適用パターン実プロジェクトの経験から学ぶazureサービス適用パターン
実プロジェクトの経験から学ぶazureサービス適用パターン
 
Devlove mackerel
Devlove mackerelDevlove mackerel
Devlove mackerel
 
Mackerelによる
簡単サーバー管理入門と発展形
Mackerelによる
簡単サーバー管理入門と発展形Mackerelによる
簡単サーバー管理入門と発展形
Mackerelによる
簡単サーバー管理入門と発展形
 
Amazon RDS (MySQL) 入門
Amazon RDS (MySQL) 入門Amazon RDS (MySQL) 入門
Amazon RDS (MySQL) 入門
 
とある AWS サービスの運用移管〜データストア編〜 #jawsmeguro
とある AWS サービスの運用移管〜データストア編〜 #jawsmeguroとある AWS サービスの運用移管〜データストア編〜 #jawsmeguro
とある AWS サービスの運用移管〜データストア編〜 #jawsmeguro
 
INF-018_OS の中で SDN 抗争勃発!? ~主役を争う VXLAN vs NVGRE~
INF-018_OS の中で SDN 抗争勃発!? ~主役を争う VXLAN vs NVGRE~INF-018_OS の中で SDN 抗争勃発!? ~主役を争う VXLAN vs NVGRE~
INF-018_OS の中で SDN 抗争勃発!? ~主役を争う VXLAN vs NVGRE~
 
Infrastructure as Codeの取り組みと改善
Infrastructure as Codeの取り組みと改善Infrastructure as Codeの取り組みと改善
Infrastructure as Codeの取り組みと改善
 
Aurora
AuroraAurora
Aurora
 
[Aurora事例祭り]Amazon Aurora を使いこなすためのベストプラクティス
[Aurora事例祭り]Amazon Aurora を使いこなすためのベストプラクティス[Aurora事例祭り]Amazon Aurora を使いこなすためのベストプラクティス
[Aurora事例祭り]Amazon Aurora を使いこなすためのベストプラクティス
 

Viewers also liked

仮想化専門コンサルタントが教える「成功する仮想化導入のポイント」
仮想化専門コンサルタントが教える「成功する仮想化導入のポイント」仮想化専門コンサルタントが教える「成功する仮想化導入のポイント」
仮想化専門コンサルタントが教える「成功する仮想化導入のポイント」VirtualTech Japan Inc.
 
PostgreSQL9.1でつくる高可用性にまつわるエトセトラ
PostgreSQL9.1でつくる高可用性にまつわるエトセトラPostgreSQL9.1でつくる高可用性にまつわるエトセトラ
PostgreSQL9.1でつくる高可用性にまつわるエトセトラNTT DATA OSS Professional Services
 
ベンチマーク勉強会#01
ベンチマーク勉強会#01ベンチマーク勉強会#01
ベンチマーク勉強会#01milk hanakara
 
mod_php vs FastCGI vs FPM vs CLI
mod_php vs FastCGI vs FPM vs CLImod_php vs FastCGI vs FPM vs CLI
mod_php vs FastCGI vs FPM vs CLIJacques Woodcock
 
Sparc SuperCluster
Sparc SuperClusterSparc SuperCluster
Sparc SuperClusterFran Navarro
 
Linux/DB Tuning (DevSumi2010, Japanese)
Linux/DB Tuning (DevSumi2010, Japanese)Linux/DB Tuning (DevSumi2010, Japanese)
Linux/DB Tuning (DevSumi2010, Japanese)Yoshinori Matsunobu
 
PostgreSQL 9.5 CPU Read Scalability
PostgreSQL 9.5 CPU Read ScalabilityPostgreSQL 9.5 CPU Read Scalability
PostgreSQL 9.5 CPU Read ScalabilityOhyama Masanori
 
Hyper-V エンタープライズ設計の現実解:2015 年版
Hyper-V エンタープライズ設計の現実解:2015 年版Hyper-V エンタープライズ設計の現実解:2015 年版
Hyper-V エンタープライズ設計の現実解:2015 年版Daichi Ogawa
 
[db tech showcase Tokyo 2015] B15:最新PostgreSQLはパフォーマンスが飛躍的に向上する!? - PostgreSQ...
[db tech showcase Tokyo 2015] B15:最新PostgreSQLはパフォーマンスが飛躍的に向上する!? - PostgreSQ...[db tech showcase Tokyo 2015] B15:最新PostgreSQLはパフォーマンスが飛躍的に向上する!? - PostgreSQ...
[db tech showcase Tokyo 2015] B15:最新PostgreSQLはパフォーマンスが飛躍的に向上する!? - PostgreSQ...Insight Technology, Inc.
 
[D31] PostgreSQLでスケールアウト構成を構築しよう by Yugo Nagata
[D31] PostgreSQLでスケールアウト構成を構築しよう by Yugo Nagata[D31] PostgreSQLでスケールアウト構成を構築しよう by Yugo Nagata
[D31] PostgreSQLでスケールアウト構成を構築しよう by Yugo NagataInsight Technology, Inc.
 
私は如何にして詳解 MySQL 5.7を執筆するに至ったか
私は如何にして詳解 MySQL 5.7を執筆するに至ったか私は如何にして詳解 MySQL 5.7を執筆するに至ったか
私は如何にして詳解 MySQL 5.7を執筆するに至ったかMikiya Okuno
 
性能測定道 事始め編
性能測定道 事始め編性能測定道 事始め編
性能測定道 事始め編Yuto Hayamizu
 
データモデルについて知っておくべき7つのこと 〜NoSQLに手を出す前に〜
データモデルについて知っておくべき7つのこと 〜NoSQLに手を出す前に〜データモデルについて知っておくべき7つのこと 〜NoSQLに手を出す前に〜
データモデルについて知っておくべき7つのこと 〜NoSQLに手を出す前に〜Mikiya Okuno
 
PostgreSQLによるデータ分析ことはじめ
PostgreSQLによるデータ分析ことはじめPostgreSQLによるデータ分析ことはじめ
PostgreSQLによるデータ分析ことはじめOhyama Masanori
 
Memory management in Linux
Memory management in LinuxMemory management in Linux
Memory management in LinuxRaghu Udiyar
 

Viewers also liked (15)

仮想化専門コンサルタントが教える「成功する仮想化導入のポイント」
仮想化専門コンサルタントが教える「成功する仮想化導入のポイント」仮想化専門コンサルタントが教える「成功する仮想化導入のポイント」
仮想化専門コンサルタントが教える「成功する仮想化導入のポイント」
 
PostgreSQL9.1でつくる高可用性にまつわるエトセトラ
PostgreSQL9.1でつくる高可用性にまつわるエトセトラPostgreSQL9.1でつくる高可用性にまつわるエトセトラ
PostgreSQL9.1でつくる高可用性にまつわるエトセトラ
 
ベンチマーク勉強会#01
ベンチマーク勉強会#01ベンチマーク勉強会#01
ベンチマーク勉強会#01
 
mod_php vs FastCGI vs FPM vs CLI
mod_php vs FastCGI vs FPM vs CLImod_php vs FastCGI vs FPM vs CLI
mod_php vs FastCGI vs FPM vs CLI
 
Sparc SuperCluster
Sparc SuperClusterSparc SuperCluster
Sparc SuperCluster
 
Linux/DB Tuning (DevSumi2010, Japanese)
Linux/DB Tuning (DevSumi2010, Japanese)Linux/DB Tuning (DevSumi2010, Japanese)
Linux/DB Tuning (DevSumi2010, Japanese)
 
PostgreSQL 9.5 CPU Read Scalability
PostgreSQL 9.5 CPU Read ScalabilityPostgreSQL 9.5 CPU Read Scalability
PostgreSQL 9.5 CPU Read Scalability
 
Hyper-V エンタープライズ設計の現実解:2015 年版
Hyper-V エンタープライズ設計の現実解:2015 年版Hyper-V エンタープライズ設計の現実解:2015 年版
Hyper-V エンタープライズ設計の現実解:2015 年版
 
[db tech showcase Tokyo 2015] B15:最新PostgreSQLはパフォーマンスが飛躍的に向上する!? - PostgreSQ...
[db tech showcase Tokyo 2015] B15:最新PostgreSQLはパフォーマンスが飛躍的に向上する!? - PostgreSQ...[db tech showcase Tokyo 2015] B15:最新PostgreSQLはパフォーマンスが飛躍的に向上する!? - PostgreSQ...
[db tech showcase Tokyo 2015] B15:最新PostgreSQLはパフォーマンスが飛躍的に向上する!? - PostgreSQ...
 
[D31] PostgreSQLでスケールアウト構成を構築しよう by Yugo Nagata
[D31] PostgreSQLでスケールアウト構成を構築しよう by Yugo Nagata[D31] PostgreSQLでスケールアウト構成を構築しよう by Yugo Nagata
[D31] PostgreSQLでスケールアウト構成を構築しよう by Yugo Nagata
 
私は如何にして詳解 MySQL 5.7を執筆するに至ったか
私は如何にして詳解 MySQL 5.7を執筆するに至ったか私は如何にして詳解 MySQL 5.7を執筆するに至ったか
私は如何にして詳解 MySQL 5.7を執筆するに至ったか
 
性能測定道 事始め編
性能測定道 事始め編性能測定道 事始め編
性能測定道 事始め編
 
データモデルについて知っておくべき7つのこと 〜NoSQLに手を出す前に〜
データモデルについて知っておくべき7つのこと 〜NoSQLに手を出す前に〜データモデルについて知っておくべき7つのこと 〜NoSQLに手を出す前に〜
データモデルについて知っておくべき7つのこと 〜NoSQLに手を出す前に〜
 
PostgreSQLによるデータ分析ことはじめ
PostgreSQLによるデータ分析ことはじめPostgreSQLによるデータ分析ことはじめ
PostgreSQLによるデータ分析ことはじめ
 
Memory management in Linux
Memory management in LinuxMemory management in Linux
Memory management in Linux
 

Similar to サーバー設定のお話

20121115 オープンソースでハイアベイラビリティ! ~クラスタ管理の設計構築ハウツー&エンジニア思考力~
20121115 オープンソースでハイアベイラビリティ! ~クラスタ管理の設計構築ハウツー&エンジニア思考力~20121115 オープンソースでハイアベイラビリティ! ~クラスタ管理の設計構築ハウツー&エンジニア思考力~
20121115 オープンソースでハイアベイラビリティ! ~クラスタ管理の設計構築ハウツー&エンジニア思考力~Iwasaki Noboru
 
【ヒカラボ】RDS for MySQL → Aurora
【ヒカラボ】RDS for MySQL → Aurora【ヒカラボ】RDS for MySQL → Aurora
【ヒカラボ】RDS for MySQL → AuroraYuki Kanazawa
 
Web App for Containers + MySQLでコンテナ対応したPHPアプリを作ろう!
Web App for Containers + MySQLでコンテナ対応したPHPアプリを作ろう! Web App for Containers + MySQLでコンテナ対応したPHPアプリを作ろう!
Web App for Containers + MySQLでコンテナ対応したPHPアプリを作ろう! Yoichi Kawasaki
 
fukinfra Vol3 LT 20120629
fukinfra Vol3 LT 20120629fukinfra Vol3 LT 20120629
fukinfra Vol3 LT 20120629学 松崎
 
泥臭い運用から、プログラマブルインフラ構築(に行きたい)
泥臭い運用から、プログラマブルインフラ構築(に行きたい) 泥臭い運用から、プログラマブルインフラ構築(に行きたい)
泥臭い運用から、プログラマブルインフラ構築(に行きたい) Akihiro Kuwano
 
分散KVSをサービス化してみた ~Okuyama(KVS)もFusion-IO(ioDrive)もあるんだよ~
分散KVSをサービス化してみた ~Okuyama(KVS)もFusion-IO(ioDrive)もあるんだよ~分散KVSをサービス化してみた ~Okuyama(KVS)もFusion-IO(ioDrive)もあるんだよ~
分散KVSをサービス化してみた ~Okuyama(KVS)もFusion-IO(ioDrive)もあるんだよ~Masahito Zembutsu
 
オンプレのDbaがazureのデータベースを使ってみた
オンプレのDbaがazureのデータベースを使ってみたオンプレのDbaがazureのデータベースを使ってみた
オンプレのDbaがazureのデータベースを使ってみたMasayuki Ozawa
 
インフラエンジニアのためのcassandra入門
インフラエンジニアのためのcassandra入門インフラエンジニアのためのcassandra入門
インフラエンジニアのためのcassandra入門Akihiro Kuwano
 
qpstudy 2014.04 ミドルウェア設計の勘所
qpstudy 2014.04 ミドルウェア設計の勘所qpstudy 2014.04 ミドルウェア設計の勘所
qpstudy 2014.04 ミドルウェア設計の勘所Masahiro NAKAYAMA
 
AWS re:Invent 2013 参加報告(新サービスとセッション)
AWS re:Invent 2013 参加報告(新サービスとセッション)AWS re:Invent 2013 参加報告(新サービスとセッション)
AWS re:Invent 2013 参加報告(新サービスとセッション)Akio Katayama
 
ChefユーザのためのAnsible入門
ChefユーザのためのAnsible入門ChefユーザのためのAnsible入門
ChefユーザのためのAnsible入門Mahito Ogura
 
Mvp road show_0830_rev1
Mvp road show_0830_rev1Mvp road show_0830_rev1
Mvp road show_0830_rev1Takano Masaru
 
ついに上陸!PaaS 最新兵器のご紹介
ついに上陸!PaaS 最新兵器のご紹介ついに上陸!PaaS 最新兵器のご紹介
ついに上陸!PaaS 最新兵器のご紹介Miho Yamamoto
 
【JAWS UG 山形】ランサーズでのAWS活用事例
【JAWS UG 山形】ランサーズでのAWS活用事例【JAWS UG 山形】ランサーズでのAWS活用事例
【JAWS UG 山形】ランサーズでのAWS活用事例Yuki Kanazawa
 
はじめてのAmazon Aurora
はじめてのAmazon AuroraはじめてのAmazon Aurora
はじめてのAmazon AuroraJun Okubo
 
Sparkパフォーマンス検証
Sparkパフォーマンス検証Sparkパフォーマンス検証
Sparkパフォーマンス検証BrainPad Inc.
 
【JAWS DAYS 2016】ランサーズを支えるAurora
【JAWS DAYS 2016】ランサーズを支えるAurora【JAWS DAYS 2016】ランサーズを支えるAurora
【JAWS DAYS 2016】ランサーズを支えるAuroraYuki Kanazawa
 

Similar to サーバー設定のお話 (20)

20121115 オープンソースでハイアベイラビリティ! ~クラスタ管理の設計構築ハウツー&エンジニア思考力~
20121115 オープンソースでハイアベイラビリティ! ~クラスタ管理の設計構築ハウツー&エンジニア思考力~20121115 オープンソースでハイアベイラビリティ! ~クラスタ管理の設計構築ハウツー&エンジニア思考力~
20121115 オープンソースでハイアベイラビリティ! ~クラスタ管理の設計構築ハウツー&エンジニア思考力~
 
【ヒカラボ】RDS for MySQL → Aurora
【ヒカラボ】RDS for MySQL → Aurora【ヒカラボ】RDS for MySQL → Aurora
【ヒカラボ】RDS for MySQL → Aurora
 
Web App for Containers + MySQLでコンテナ対応したPHPアプリを作ろう!
Web App for Containers + MySQLでコンテナ対応したPHPアプリを作ろう! Web App for Containers + MySQLでコンテナ対応したPHPアプリを作ろう!
Web App for Containers + MySQLでコンテナ対応したPHPアプリを作ろう!
 
No SSH (@nojima; KMC関東例会)
No SSH (@nojima; KMC関東例会)No SSH (@nojima; KMC関東例会)
No SSH (@nojima; KMC関東例会)
 
fukinfra Vol3 LT 20120629
fukinfra Vol3 LT 20120629fukinfra Vol3 LT 20120629
fukinfra Vol3 LT 20120629
 
泥臭い運用から、プログラマブルインフラ構築(に行きたい)
泥臭い運用から、プログラマブルインフラ構築(に行きたい) 泥臭い運用から、プログラマブルインフラ構築(に行きたい)
泥臭い運用から、プログラマブルインフラ構築(に行きたい)
 
分散KVSをサービス化してみた ~Okuyama(KVS)もFusion-IO(ioDrive)もあるんだよ~
分散KVSをサービス化してみた ~Okuyama(KVS)もFusion-IO(ioDrive)もあるんだよ~分散KVSをサービス化してみた ~Okuyama(KVS)もFusion-IO(ioDrive)もあるんだよ~
分散KVSをサービス化してみた ~Okuyama(KVS)もFusion-IO(ioDrive)もあるんだよ~
 
Ansible入門
Ansible入門Ansible入門
Ansible入門
 
オンプレのDbaがazureのデータベースを使ってみた
オンプレのDbaがazureのデータベースを使ってみたオンプレのDbaがazureのデータベースを使ってみた
オンプレのDbaがazureのデータベースを使ってみた
 
インフラエンジニアのためのcassandra入門
インフラエンジニアのためのcassandra入門インフラエンジニアのためのcassandra入門
インフラエンジニアのためのcassandra入門
 
qpstudy 2014.04 ミドルウェア設計の勘所
qpstudy 2014.04 ミドルウェア設計の勘所qpstudy 2014.04 ミドルウェア設計の勘所
qpstudy 2014.04 ミドルウェア設計の勘所
 
Couchbaseの紹介 2015/03/05
Couchbaseの紹介 2015/03/05Couchbaseの紹介 2015/03/05
Couchbaseの紹介 2015/03/05
 
AWS re:Invent 2013 参加報告(新サービスとセッション)
AWS re:Invent 2013 参加報告(新サービスとセッション)AWS re:Invent 2013 参加報告(新サービスとセッション)
AWS re:Invent 2013 参加報告(新サービスとセッション)
 
ChefユーザのためのAnsible入門
ChefユーザのためのAnsible入門ChefユーザのためのAnsible入門
ChefユーザのためのAnsible入門
 
Mvp road show_0830_rev1
Mvp road show_0830_rev1Mvp road show_0830_rev1
Mvp road show_0830_rev1
 
ついに上陸!PaaS 最新兵器のご紹介
ついに上陸!PaaS 最新兵器のご紹介ついに上陸!PaaS 最新兵器のご紹介
ついに上陸!PaaS 最新兵器のご紹介
 
【JAWS UG 山形】ランサーズでのAWS活用事例
【JAWS UG 山形】ランサーズでのAWS活用事例【JAWS UG 山形】ランサーズでのAWS活用事例
【JAWS UG 山形】ランサーズでのAWS活用事例
 
はじめてのAmazon Aurora
はじめてのAmazon AuroraはじめてのAmazon Aurora
はじめてのAmazon Aurora
 
Sparkパフォーマンス検証
Sparkパフォーマンス検証Sparkパフォーマンス検証
Sparkパフォーマンス検証
 
【JAWS DAYS 2016】ランサーズを支えるAurora
【JAWS DAYS 2016】ランサーズを支えるAurora【JAWS DAYS 2016】ランサーズを支えるAurora
【JAWS DAYS 2016】ランサーズを支えるAurora
 

Recently uploaded

[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略Ryo Sasaki
 
UPWARD_share_company_information_20240415.pdf
UPWARD_share_company_information_20240415.pdfUPWARD_share_company_information_20240415.pdf
UPWARD_share_company_information_20240415.pdffurutsuka
 
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムsugiuralab
 
IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptxIoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptxAtomu Hidaka
 
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By DanielPostman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Danieldanielhu54
 
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。iPride Co., Ltd.
 
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。
新人研修のまとめ       2024/04/12の勉強会で発表されたものです。新人研修のまとめ       2024/04/12の勉強会で発表されたものです。
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。iPride Co., Ltd.
 
PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000Shota Ito
 
20240412_HCCJP での Windows Server 2025 Active Directory
20240412_HCCJP での Windows Server 2025 Active Directory20240412_HCCJP での Windows Server 2025 Active Directory
20240412_HCCJP での Windows Server 2025 Active Directoryosamut
 

Recently uploaded (9)

[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
 
UPWARD_share_company_information_20240415.pdf
UPWARD_share_company_information_20240415.pdfUPWARD_share_company_information_20240415.pdf
UPWARD_share_company_information_20240415.pdf
 
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システム
 
IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptxIoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
 
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By DanielPostman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Daniel
 
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
 
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。
新人研修のまとめ       2024/04/12の勉強会で発表されたものです。新人研修のまとめ       2024/04/12の勉強会で発表されたものです。
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。
 
PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000
 
20240412_HCCJP での Windows Server 2025 Active Directory
20240412_HCCJP での Windows Server 2025 Active Directory20240412_HCCJP での Windows Server 2025 Active Directory
20240412_HCCJP での Windows Server 2025 Active Directory
 

サーバー設定のお話

  • 1. 2014/12/6 Kazunori Inaba 2014.12.6 TechmixHokkaido 2014 サーバー設定のお話 稲葉一紀@札幌 1
  • 2. 2014/12/6 Kazunori Inaba 稲葉一紀(KazunoriInaba) サーバーインフラ専門のフリーランスエンジニア@札幌 屋号:稲葉サーバーデザイン http://inaba-serverdesign.jp/ おもにアプリ開発企業・エンジニア向けに セキュリティ・可用性・性能・拡張性を考慮した ちょっと気の利いた サーバーインフラ構成設計・設定・や既存システムの性能改善調査・支援 を行います。 2 自己紹介(1)
  • 3. 自己紹介(2) 2014/12/6 Kazunori Inaba IaaSクラウドの比較調査など •IaaSクラウド比較'14 http://www.slideshare.net/kazunoriinaba/20140411-iaascloud •NAVERまとめ【クラウドサーバーサービス(IaaS)比較まとめ】 http://matome.naver.jp/odai/2141128309524837601 3
  • 4. 2014/12/6 Kazunori Inaba •札幌ライブ情報公開中 http://seesaawiki.jp/w/sapporo_rock_live/ 今夜のライブの一部 4 自己紹介(3)
  • 5. はじめに 2014/12/6 Kazunori Inaba Linuxサーバーについて、セキュリティやチューニングの基本的な考え方と、 ふつうにやっておくべき設定についてお話します。 ※攻撃から完璧に防御する方法、サーバー性能を限界まで引き出す、といった話では ありません。 ※LAMPで1台から数台のWebサーバーを対象としますが、基本的な考え方はこれ 以外でも同じだと思います。 スライドはのちほどアップします。 http://www.slideshare.net/kazunoriinaba/ 5
  • 6. セキュリティ–基本的なポリシー 2014/12/6 Kazunori Inaba •基本的な設定を確実に行い、不正アクセスされる確率をできるだけ減らす。 •運用中 •ログを確認する。 •脆弱性の情報収集と迅速な対処を行う。 6
  • 7. セキュリティ–参考文献 2014/12/6 Kazunori Inaba (いきなりですが時間がないので)以下などを参照してください。 •1時間でざっくり教えるサーバ運営超入門(インフィニットループさん) http://www.slideshare.net/infinite_loop/1-10128499 →基本的な考え方などがすごくわかりやすい。 •Qiitaそこそこセキュアなlinuxサーバーを作る http://qiita.com/cocu/items/e7c305ccffb6841d109c →具体的な設定手順。 7
  • 8. セキュリティ– クラウドとVPSの違い(一般的には) 2014/12/6 Kazunori Inaba • VPS • 基本的にサーバーIPアドレス向けのパケットがすべてサーバーに届く。 • 不正なアクセスはiptablesでブロックできるが、処理負荷が大きくなる可能性がある。 • クラウド • サーバーの上位でファイアウォールポリシーを設定でき、許可していないパケットはサーバー に届く前にブロックされる。 ※サービスによっては上位にIPSがあり、悪質すぎるアクセスを自動的にブロックする。 8 × ×
  • 9. セキュリティ–ログ管理・監視 2014/12/6 Kazunori Inaba •何かあったときの調査のため、システムログ、アプリケーションログ、アクセスロ グは、一定期間保存を(期間の長さは組織/個人でポリシーを決める)。 •ディスクあふれに注意。 •サーバー上での保存期間を短くする工夫。 •fluentdでAmazonS3等に転送。 •Papertrailなどのログ集約サービスに転送。 •ログのチェック。 •目視は大変。 •特定の文字列が出現したら自動アラート通知するよう設定。 •ログ監視ツールSwatchの導入。 •ログ集約サービスPapertrailの機能。 9
  • 10. セキュリティ–その他ピックアップ 2014/12/6 Kazunori Inaba •iptables •上位にファイアウォールがあっても、併用して使ったほうがよいと思う。多段階防御。 •FTP •SCP/SFTPか、せめてFTPSに。関係者のみであれば、証明書はオレオレでもよい。 •コントロールポートをTCP/21から変更すると少し安全性が増す。 •データ通信ポートの範囲を限定すると、ファイアウォールで許可するポートを絞れる。 •phpMyAdmin •アクセス元IPアドレスやBASIC/Digest認証などで可能な限りのアクセス制限を。 •HTTPS必須で。お問い合わせフォームだけHTTPSにしてもphpMyAdminがHTTPだと、(暗号 化して保存していない限り)データが平文で流れて意味がないのでは。 10
  • 11. チューニング–基本的な考え方 2014/12/6 Kazunori Inaba •極力ディスクアクセスを減らす。 •メモリ使用量合計でサーバーの搭載メモリを超えないようにする。 •スワップを使うと圧倒的に遅い! →ここではおもにメモリまわりのチューニングについてお話します。 11
  • 12. チューニング–メモリ使用状況の確認 2014/12/6 Kazunori Inaba ・freeコマンドがわかりやすい $free-m totalusedfreesharedbufferscached Mem:996902930184572 -/+buffers/cache:145850 Swap:204752042 (参考) Linuxのメモリー管理(メモリ-が足りない?,メモリーリークの検出/防止) http://www.math.kobe-u.ac.jp/~kodama/tips-free-memory.html 「Linux(っていうかUNIXかな?)では,各プロセスにメモリを割り振った残りを バッファ(buffer)とキャッシュ(cache)に利用して,ディスク入出力の負荷を減らしている。」 プロセスの実質的な メモリ使用量合計 145MB 実質的な メモリの空き 850MB 12
  • 13. チューニング–ソフトウェアへのメモリ配分(1) 2014/12/6 Kazunori Inaba サーバーの各ソフトウェアへの最大使用メモリ配分を検討する。 •Web+DBサーバー1台の場合の配分例 Apache (+ mod_php) 40% MySQL 40% その他 20% Apache/ Nginx Proxy 5% MySQL 40% その他 20% Tomcat/ Passenger/ PHP-FPM, etc. 35% 13 Apache (+ mod_php) 30% MySQL 30% その他 20% Batch 20%
  • 14. チューニング–ソフトウェアへのメモリ配分(2) 2014/12/6 Kazunori Inaba •Webサーバー1台+DBサーバー1台の場合の配分例 Webサーバー DBサーバー Apache (+ mod_php) 80% その他 20% MySQL 80% その他 20% Apache/ Nginx Proxy 10% その他 20% Tomcat/ Passenger/ PHP-FPM, etc. 70% 14
  • 15. チューニング–Apache(1) 2014/12/6 Kazunori Inaba •Apacheの最大メモリ使用量 =1プロセスあたりのメモリ使用量x最大接続数(MaxClients) →最大接続数を大きくし過ぎないよう注意! •「1プロセスあたりのメモリ使用量」のおおよその値は、psコマンドの「RSS」、 topコマンドの「RES」で確認できる。(KB単位) $psaux USERPID%CPU%MEMVSZRSSTTYSTATSTARTTIMECOMMAND … apache116670.01.944939637536?SNov300:52/usr/sbin/httpd apache116680.01.944935236624?SNov300:52/usr/sbin/httpd apache116690.01.443572028020?SNov300:53/usr/sbin/httpd apache116700.01.343364826744?SNov300:51/usr/sbin/httpd 15
  • 16. チューニング–Apache(2) 2014/12/6 Kazunori Inaba ただし、、、 psコマンドの「RSS」の値は、親プロセスと共有しているメモリ領域分も含んでいる。 →プロセスが実際使用しているメモリは「RSS」の値より小さい。 WordPressを使用した場合で70-80%など。 (参考) LinuxのプロセスがCopyonWriteで共有しているメモリのサイズを調べる http://d.hatena.ne.jp/naoya/20080212/1202830671 ↑共有しているメモリ領域分を調べるPerlスクリプトがある。 16
  • 17. チューニング–Apache(3) 2014/12/6 Kazunori Inaba •同時接続数(ざっくり計算) =1時間あたりの可能アクセス数 x(ページの表示にかかる秒数+KeepAliveTimeoutの秒数)/3600 1時間あたりのPVを3000,ページ表示に5秒,KeepAliveTimeoutを3秒とすると、 同時接続数=3000x(5+3)/3600=6.66 ※でも、ブラウザは1アクセスで複数セッションを使うので、 最大接続数(MaxClients)はその5倍とか。 17
  • 18. チューニング–Apache(4) 2014/12/6 Kazunori Inaba WordPressを使用したWebサイトの場合、、、 •Apache1プロセスのメモリ使用量が大きい →preforkMPMの場合、同時接続が増えるとメモリ使用量が激増する。 Apache+mod_php 30MB … 30MB x 30プロセス= 900MB Apache+mod_php30MB Apache+mod_php30MB 18
  • 19. チューニング–Apache(5) 2014/12/6 Kazunori Inaba WordPressを使用したWebサイトの場合、、、 •Nginx+PHP-FPM(FastCGI)にすると、軽量化できる(極端な例)。 NginxMaster+Worker 2MB 2MB + 50MB x 5 = 252MB PHP-FPM 50MB PHP-FPM 50MB PHP-FPM 50MB … Reverse Proxy ※静的ファイルへのリクエストはNginxが処理するよう設定する。 ※.htaccessが使えないことに注意。 ※Apache + mod_fcgi+ PHP-FPMも可。 19
  • 20. チューニング–MySQL(1) 2014/12/6 Kazunori Inaba •MySQLの最大メモリ使用量 =max_connections* (sort_buffer_size +join_buffer_size +read_buffer_size +read_rnd_buffer_size +net_buffer_length) +key_buffer_size +query_cache_size +innodb_buffer_pool_size +innodb_additional_mem_pool_size +innodb_log_buffer_size thread buffers global buffers 20
  • 21. チューニング–MySQL(2) 2014/12/6 Kazunori Inaba 一番大事なパラメーターは、、、 •InnoDBの場合、innodb_buffer_pool_size(デフォルト8MB) InnoDBのデータやインデックスをキャッシュするバッファサイズ。 これを増やしたら、innodb_log_file_sizeも大きくすること。 •MyISAMの場合、key_buffer_size(デフォルト8MB) MyISAMのインデックスをキャッシュするバッファサイズ。 ↑これらにドカンと割り当てよう! できれば、インデックスの合計サイズ以上を。 デフォルト値のままでは、サーバーに16GBとか32GBとかどんなにメモリを搭載しても、 ディスクアクセスが頻繁に発生してパフォーマンスが出ません! ※MySQLTunerで診断して推奨設定を確認するという方法もある。 ※AWSRDSなど、クラウドのRDBサービスは、あらかじめパラメーターがチューニングされている。 21
  • 22. チューニング–キャッシュ、インデックス 2014/12/6 Kazunori Inaba •キャッシュ •memcached,RedisでDBへのリクエスト結果をキャッシュ。 •DBインデックスを適切に設定する。 22
  • 23. チューニング–CPU数 2014/12/6 Kazunori Inaba •通常のWebサイトであれば、そんなにCPUは使わないはず。 •メモリ4GB→CPU1つ •メモリ8GB→CPU2つ(Apache+アプリケーションで1つ、MySQLで1つ、など。) •特殊な演算処理や、ログ解析処理などを頻繁に行う場合は、その分CPU数を増やす。クラウド であれば、クロックの高いCPUを選ぶ。 •MySQLの同時接続数が多い場合は、CPU数を増やすと性能がよくなる。 23
  • 24. チューニング-サイジング(1) 2014/12/6 Kazunori Inaba サーバーの要求スペックを考える場合。 •Webの同時接続数からApache(+アプリケーションサーバー、FastCGIなど)の 最大メモリ使用量を計算。 •DBのインデックスサイズやデータサイズ、同時接続数から最大メモリ使用量を計算。 •これらを合計して、サーバーに必要なメモリ使用量を計算。 ↑事前の想定は難しい。。。 →柔軟にサーバースペックを変更できるクラウドサーバーを利用すると便利。 Apache (+ mod_php) 1.5GB MySQL 1.5GB その他 1GB 24
  • 25. チューニング-サイジング(2) 2014/12/6 Kazunori Inaba •クラウドサーバーを利用する場合 ○スモールスタート CPUx1、メモリ2GBなど低いスペックで運用開始。 →リソース不足となったときスペックを上げる。 予期せぬアクセス急増でアクセス不能が生じる可能性がある。 ◎ラージスタート CPUx4コア、メモリ8GBなど高いスペックで運用開始。 →リソースが余っているようであればスペックを下げる。 25
  • 26. チューニング–リソース使用状況の見える化(1) 2014/12/6 Kazunori Inaba •監視ツールで、CPU、メモリ、ディスク使用状況を見える化。 •Zabbix,MRTG,Munin,Cactiなどの監視ツールを導入。 •NewRelic,Mackerelなどのクラウド監視サービス(SaaS)を利用という手も。 •監視サーバー不要。アカウントを作って、サーバーにエージェントをyuminstall(apt-getinstall)す るだけなので簡単。 •サーバーダウン、メモリ・ディスクの空き不足などにアラート通知できる。 •無料利用の場合はデータ保存期間が1日、1週間、1ヶ月など少ないことに注意。 26
  • 28. チューニング–リソース使用状況の見える化(3) 2014/12/6 Kazunori Inaba •Webアクセス解析ツールでネットワーク転送量、クローラーによるアクセスなどを 見える化。 •AWStats,Webalizerなどを導入。 •GoogleAnalyticsのようなマーケティングツールとは別の、インフラ的視点でWebアクセス状 況を把握できる。 •ネットワーク転送量課金のあるAWS等クラウド移行時の見積もりの目安となる。 28
  • 29. (個人的な意見)OS、ソフトウェアの選択 2014/12/6 Kazunori Inaba •「その選択で、Webサイト/システムの運用を自分(たち)がずっと続けられるか どうか。」という視点でも考えるとよいのでは。 →責任をもってずっと続けられる お好きなものを。 →ずっと続けられない(かも) できるだけ、ユーザーが多く情報収集しやすい、スタンダードなものを。 ex.CentOS/Ubuntu,Apache/Nginx,MySQL/PostgreSQLなど。 29
  • 30. おわりに-サーバーの設定、運用について 2014/12/6 Kazunori Inaba •セキュリティ、チューニングの基本的な考え方は(あまり)変わらない。 •好きでやれればいいけど、覚えることも多く、設定はけっこう大変。運用はもっと 大変。 •「このサーバー、機密情報保存しないから」と適当な設定のままでは、攻撃元として加担して しまうことも。 •最低限のチューニングもしないと、サーバースペックを無駄に大きくして余計なお金がかかる ことも。 •面倒な人は、レンタルサーバー、マネージドVPS/クラウド、PaaS(Herokuなど) の利用を。もしくは信頼のおける専門家に依頼を。 •やるからには責任をもって監視、対応を。 •なぜそう設定したのか、ドキュメントに残す。 30