Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
MSOL勉強会資料(インフラ編)
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
Tsutomu Kitamura
February 20, 2019
96
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
MSOL勉強会資料(インフラ編)
サーバー構築に必要な知識の習得を目的とする。
Tsutomu Kitamura
February 20, 2019
More Decks by Tsutomu Kitamura
See All by Tsutomu Kitamura
MSOL勉強会資料(インフラ編)補足資料
tukitamu
0
78
Featured
See All Featured
Everyday Curiosity
cassininazir
0
360
The Hidden Cost of Media on the Web [PixelPalooza 2025]
tammyeverts
2
530
Accessibility Awareness
sabderemane
1
250
Into the Great Unknown - MozCon
thekraken
41
2.8k
職位にかかわらず全員がリーダーシップを発揮するチーム作り / Building a team where everyone can demonstrate leadership regardless of position
madoxten
69
67k
Information Architects: The Missing Link in Design Systems
soysaucechin
1
1.2k
Navigating the moral maze — ethical principles for Al-driven product design
skipperchong
2
630
Building a Scalable Design System with Sketch
lauravandoore
464
34k
Ten Tips & Tricks for a 🌱 transition
stuffmc
1
270
XXLCSS - How to scale CSS and keep your sanity
sugarenia
250
1.3M
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
141
35k
Visualization
eitanlees
153
17k
Transcript
MSOL勉強会資料インフラ編.md 2/20/2019 1 / 6 MSOL勉強会資料 インフラ構築編 ゴール Linuxサーバーを⽴ち上げることができる。 サーバーのファイアウォールを設定できるようになる。
サーバーにSSHでログインできるようになる。 WEBサーバが構築できるようになる。 WEBサーバー上でPHPが実⾏できるようになる。 ブラウザでサーバーにアクセスして、"Hello, World!!" を表⽰できるようになる。 ⽐較検討 クラウド or オンプレ 違いは導⼊コストに尽きる。 オンプレの場合・・・ DC契約、サーバーHW購⼊、DC搬⼊、NW機器(ルーター、スイッチ)、キッティング、などなど 中⻑期(5年〜10年)だとオンプレがコストで有利な場合も。 ほとんどのケースで今はクラウドで⼤丈夫。(⽐較検討するのは時間の無駄) Amazon(AWS) or Google(GCP) or Microsoft(Azure) AWSがシェアNo1、デファクトに近い。構築事例や情報も多い。費⽤は⾼め。 ⽇本国内ではAzureのシェアも⾼い。オンプレのWindows系からのクラウド移⾏には適している。 IaaSとして使うなら3社以外も含め⼤きな差はないかと思う。 Linux or Windows ASP.NET(C#) なら Windows/IIS、PHP/Java/RubyならLinuxが適している。(.NET Coreもあるけ ど) サーバーのメンテナンスはWindowsの⽅が楽。基本GUIで設定が出来る。Microsoftのサポート。 コスト⾯ではOSライセンス費⽤も考慮。 LinuxならディストリビューションはRedhat系(RHEL/CentOS)がベター。(どれでも⼤差はないが) ステップ1 クラウドでLinuxサーバーのインスタンスを作成する。 スペックを決める (CPU/メモリ/HDD or SSD) 後でスペックは変えられるので暫定的なスペックでよい。 課⾦⽅式を決める。(従量課⾦、⽉額固定) OSを決める。(Windows or Linux)
MSOL勉強会資料インフラ編.md 2/20/2019 2 / 6 仮想OSのインスタンスを起動する。 SSH接続に必要なキーペアを作成する。 割り当てられたグローバルIPアドレスを確認する。 ファイアウォールを設定する。 HTTP(80)/HTTPS(443)のみ全て許可する。
SSH(22)は特定IPアドレスのみSSHアクセス許可する。 上記ポート以外はすべて拒否する。 ステップ2 以後サーバーのOSは"Linux/CentOS7"を前提に進める。 サーバーにログインする。 インスタンス起動時に作成したキーペアを使ってサーバーにSSHでログインする。 $ ssh -i ~/.ssh/aws-secret-key.pem
[email protected]
OS基本設定 ホスト名を設定する。 $ sudo hostname web01 $ sudo hostnamectl set-hostname web01 タイムゾーンを設定する。 $ sudo timedatectl set-timezone Asia/Tokyo OSに最新のパッチを当てる。(初回のみ、以後定期的に) $ sudo yum -y update // 再起動 $ sudo reboot 追加パッケージレポジトリの登録 EEPL $ sudo yum install epel-release
MSOL勉強会資料インフラ編.md 2/20/2019 3 / 6 Remi (PHP最新版を⼊れる場合) $ sudo yum
localinstall http://rpms.famillecollet.com/enterprise/remi- release-7.rpm Apacheをインストールする。 apache(httpd/2.4)をインストールする。 $ sudo yum -y install httpd SSLモジュールをインストールする。 $ sudo yum -y install mod_ssl apacheの起動、⾃動起動の設定をする。 $ sudo systemctl start httpd $ sudo systemctl enable httpd ウェブブラウザでサーバーIPアドレスを指定してWELCOME画⾯の表⽰を確認する。 PHPをインストールする。 最新版のPHPをインストールする場合にはRemiを指定すること。 PHP7をインストールする。 // PHP本体 $ sudo yum -y install --enablerepo=remi,remi-php73 php // PHPでよく使うモジュール $ sudo yum -y install --enablerepo=remi,remi-php73 php-mbstring php-pdo php- gd // バージョン確認 $ php -v PHP 7.3.2 (cli) (built: Feb 5 2019 13:10:03) ( NTS ) httpdを再起動する。 $ sudo systemctl restart httpd
MSOL勉強会資料インフラ編.md 2/20/2019 4 / 6 Apache + PHPの動作確認を⾏う。 phpinfo.phpを作成してphpinfo()を実⾏する。 ウェブブラウザでphpinfo.phpを指定してPHP環境情報の表⽰を確認する。
ステップ3 Apacheの設定 Apacheの設定ファイル /etc/httpd 以下のファイルで⾏う。 conf/httpd.conf : ログやドキュメントルートなどの設定 conf.d/ssl.conf : SSLに関する設定 conf.modules.d/15-php.conf : phpのモジュールのロードの設定 アクセスログ、エラーログ ログは /var/log/httpd に保存される。 access_log / ssl_access_log error_log / ssl_error_log 良く⾏う設定集 ドキュメントルート WEBサーバーのURLのルート(http://example.com/)で表⽰されるコンテンツが置かれるディ レクトリ DocumentRoot "/var/www/html" エイリアス 任意のフォルダとURLパスの対応付けを⾏う。 # /etc/httpd/conf.d/foo.conf Alias /foo /var/www/html/fooBar <Directory /var/www/html/fooBar> order deny,allow Allow from all </Directory> $ sudo sh -c "echo '<?php phpinfo(); ?>' > /var/www/html/phpinfo.php"
MSOL勉強会資料インフラ編.md 2/20/2019 5 / 6 バーチャルホスト 1台のサーバーで複数のドメインを稼働させることが可能。 ホスト名(ドメイン名)またはIPアドレスやポートで分けることが可能。 # /etc/httpd/conf.d/vhost.conf
<VirtualHost *:80> DocumentRoot /var/www/example.com ServerName www.example.com <Directory /var/www/example.com> Order allow,deny Allow from all </Directory> </VirtualHost> PHPの設定 PHPの環境設定は /etc/php.ini ファイルで⾏う。 良く⾏う設定集 # ファイルアップロード関連 post_max_size = 100M upload_max_filesize = 100M # 日本時間のタイムゾーン [Date] date.timezone = "Asia/Tokyo" # 文字コード関連 [mbstring] mbstring.language = Japanese mbstring.internal_encoding = UTF-8 mbstring.http_input = auto mbstring.http_output = UTF-8 設定を変更したらhttpd再起動を⾏う。 Linuxサーバーの構築を⾏うにあたって最低限必要なスキル シェルスクリプトの基本コマンド操作 cdコマンド lsコマンド cpコマンド
MSOL勉強会資料インフラ編.md 2/20/2019 6 / 6 rmコマンド Linuxシステム管理コマンド操作 systemctl yum /
rpm ping dig ファイル、ディレクトリ 相対パス(../bar)、絶対パス(/foo/bar) パーミッション(chmod) オーナー(chown) vimの操作 終了⽅法(:q) カーソル移動(hjkl) ⽂字挿⼊(i) ⽂字削除(x) 重要キーワード IaaS/PaaS TLS(https) サーバー証明書 ドメイン(DNS) IPアドレス(プライベート、グローバル) ポート(サービス) 参考資料 イラスト図解式-この⼀冊で全部わかるクラウドの基本 https://www.amazon.co.jp/dp/4797386657 イラスト図解式-この⼀冊で全部わかるサーバーの基本 https://www.amazon.co.jp/dp/4797386665 イラスト図解式-この⼀冊で全部わかるWeb技術の基本 https://www.amazon.co.jp/dp/4797388811