Upgrade to Pro — share decks privately, control downloads, hide ads and more …

MSOL勉強会資料(インフラ編)

Sponsored · Your Podcast. Everywhere. Effortlessly. Share. Educate. Inspire. Entertain. You do you. We'll handle the rest. →
Avatar for Tsutomu Kitamura Tsutomu Kitamura
February 20, 2019
96

 MSOL勉強会資料(インフラ編)

サーバー構築に必要な知識の習得を目的とする。

Avatar for Tsutomu Kitamura

Tsutomu Kitamura

February 20, 2019

Transcript

  1. 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)
  2. 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
  3. 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
  4. 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"
  5. 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コマンド
  6. 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