- 新卒ブログとは?
- 2024年4月に新卒入社したLIGメンバーが、日々の学びや気づきを綴るブログです。彼らがふだんどんなことを学んでいるのか、気軽にのぞいてみてください。
こんにちは、テクノロジー部の山﨑です。
「Webサーバーの構築をしてみたいけど、難しそう」「Web用語がぜんぜんわからない」と感じた経験はありませんか?
本記事はそんな方に向けて、実際にサーバーを構築しながら、よく使われる用語や構築の仕方をわかりやすく解説するシリーズです。サーバーをろくに触ったことのない新卒の自分が、サーバー移管作業を任されたときの経験をもとに作成しましたので、ご安心ください! 一緒に学んでいきましょう!
以下三回にわたってお送りしていく予定です。
- 基本的な用語の説明
- インスタンス作成〜SSH接続
- SSL証明書の発行やDNS設定
第一回目の今回は、用語説明編として「基本的な用語の説明」をメインに進めていきます。第二回は「インスタンス作成〜SSH接続まで」、第三回は「SSL証明書の発行やDNS設定」を解説していく予定です。
いきなり構築に挑戦しても問題ありませんが、自分にとってはハードルが高かったので、まず予備知識をインプットするところからスタートします。すでに知っているものは飛ばしても大丈夫です。覚える必要はないので、わからなくなったら何度も見返してくださいね。
目次
サーバーとは?
サーバーを簡単に説明すると、「入れ物」のようなものです。
しかし、ただの入れ物ではありません。サーバーの語源はserve(奉仕する、提供する)であり、蓄えたものを提供する役割を持ちます。
身近なものを例に挙げると、ビールサーバーは飲みたい人にビールを提供できる入れ物ですし、メールサーバーはメールを送りたい人にメール機能を提供するメールの入れ物です。
Webサーバーの役割
Webサーバーとは、ホームページやWebサービスを提供するサーバーのことを指します。とは言ってもわかりづらいと思うので、もう少し具体的に説明します。
たとえば、株式会社LIGのブログが見たいと思ったときに、Webブラウザ(Google ChromeやSafariなど)で「株式会社LIG ブログ」のように検索して、赤枠の箇所のような適当なリンクをクリックしますよね。
クリックしたその瞬間、このHPのファイルが置かれているサーバーに「このHPのファイルを送ってください」とリクエスト(要求)が送られます。
するとリクエストされたサーバーが、「はい、どうぞ」とリクエストされたファイルをレスポンス(応答)してくれて、ようやくHPを閲覧することができるのです。
このファイルを送ってくれたサーバーこそがWebサーバーなのです。この際、リクエストを送った人またはコンピュータをクライアントと呼びます。
IPアドレス
では、世界中に数多あるサーバーの中からどうしてLIGのHPのファイルが置かれているサーバーにリクエストを送ることができたのでしょうか?
そこで重要になるのがIPアドレス(Internet Protocol Address)です。IPアドレスとは、そのサーバーがインターネットのどこにあるのかの所在地を表す、いわば住所のようなものです。
12.34.123.45のように数字で区切られ、インターネットに接続したすべてのデバイス(スマホやパソコン等も含む)に割り当てられています。
クリックしたリンクと紐付けされたIPアドレス宛に「このHPのファイルを送ってください」とリクエストが送られる仕組みです。
ドメイン
「IPアドレスが12.34.123.45のサーバー」と言われても、どんなサーバーかぜんぜんわからないですよね。IPアドレスはコンピュータ間での通信で使われる住所なので、私たち人間にとっては非常にわかりにくいです。
この、わかりにくいIPアドレスを人間にとってわかりやすいようにしたものがドメインであり、役割としてはIPアドレスと同じです。
たとえば、さきほどの「12.34.123.45」というIPアドレスが「yamazaki-lig.co.jp」というドメインと紐づいているとします。役割としては12.34.123.45もyamazaki-lig.co.jpも同じですが、ドメインのほうがどんなサーバーなのか少しわかりやすくなりましたね。
重複や独占を防ぐために、ドメインを取得するには申請手続きが必要になります。ドメインは必ずしも必要というわけではありませんが、URLでどんなサイトか一目でわかるようになったり、サイトの管理が容易化、SEOも期待できるため、取得することをおすすめします。
おまけ:URLとドメインの違い
URL(Uniform Resource Locator)とドメインは、双方ともWebサイトにアクセスするための情報であることに変わりありません。
しかし、URLはインターネット上のファイルや画像、プログラムを指定するもので、サーバーの住所を表すドメインとは少し異なります。
例として、LIGブログのサイトを開いてみましょう。赤枠内に「https://liginc.co.jp/blog」と表示されていますが、これはURLです。
URLは基本的に「プロトコル://ドメイン名/ディレクトリ名/ファイル名」の構成になっています。
例に挙げた「https://liginc.co.jp/blog」の場合は、「HTTPSによる通信方式で、liginc.co.jpというドメイン名と紐付けされてるIPアドレスのサーバーにアクセスし、blogという名のディレクトリ(フォルダ)を開いていますよ」という意味になります。
この知識を念頭に置いてURLを見てみると、面白い発見があるかもしれません!
Webサーバー構築に必要なものとは?
Webサーバーは、単にサーバーを構築するだけでは何も提供してくれません。Webサーバーとして機能させるために必要なものをインストールさせて初めて構築完了となるわけです。
ここではWebサーバーを構築する際に必要なOS、Webサーバーソフト、データベースソフト、SSL証明書、SSHについてまとめます。
OS
OSとはOperating Systemの略で、サーバーを動作させるための基本的なソフトウェアです。
OSはコンピュータに指示を出してくれる人を想像するとわかりやすいです。スマートフォンなどのデバイスにもインストールされており、これがないと電源をつけても何も表示されないので何もできません。
サーバー | Windows Server, Linux系, Unix系 |
---|---|
パソコン | Windows, macOS, Linux |
スマートフォン | Android, iOS |
OSにはさまざまな種類があります。サーバーOSは、Windows系、Unix系、Linux系、PCではWindows、macOS、Linux、スマートフォンではAndroidやiOSが主流です。それぞれのOSで使い方など特徴があるので、用途や好みに合わせて利用することが可能です。
Webサーバーソフト
Webサーバーソフトウェアとは、サーバーをWebサーバーとしての機能(クライアントからのリクエストを受け取り、レスポンスする)を持たせるためのソフトウェアです。
Apache(アパッチ)、Nginx(エンジンエックス)、LiteSpeed(ライトスピード)などの種類があり、これらをサーバーにインストールすることでWebサーバーの役割を果たします。
データベースソフト
データベースとは、さまざまなデータが効率的に管理されたデータの集合体のことです。顧客、製品、売上などの情報を、決まった規則でデータとして保存することができ、ログインやデータ分析をする際によく用いられます。
そんなデータベースを扱うためにインストールするものがデータベースソフトと呼ばれるもので、MySQL(マイエスキューエル)やPostgreSQL(ポストグレスキューエル)、MariaDB(マリアディービー)などがあります。
OSやWebサーバーソフトとは異なり、必ずしもWebサーバーを構築する際に必要ではありませんが、データベースソフトを使うことでデータの活用やセキュリティ強化を図ることができます。
SSL証明書
SSL(Secure Sockets Layer)とはWebサーバーとブラウザ間の通信を暗号化するための仕組みです。
たとえば、個人情報やクレジットカード情報をWebページ上に登録することがありますよね。しかし、そのページがなりすましのサイトだったり、勝手に個人情報を改ざんされてしまったりしたらどうでしょうか……? 第三者への情報漏洩や誤情報のやり取りが発生してしまいますよね。
SSL証明書は、「サイトの運営者・通信相手が偽物ではなく、通信が暗号化された安全なサイトである証明」ができる証明書になります。
厳密にいえば、現在はSSLではなくTLS(Transport Layer Security)というSSLの次世代規格が利用されていますが、過去にSSLが使われていたことから現在でもSSL証明書と呼ばれることが多いです。
SSL証明書は自分でも発行することができますが、一般的に認証局(CA)によって発行されます。自分で発行する証明書は自己署名証明書と呼ばれ、信頼性が担保されないため、テスト環境などの使用に向いています。
SSL証明書は必ずしも必要なものではありませんが、ユーザーに安心して利用してもらうためにも発行しておきましょう。
SSH
SSH(Secure Shell)とは、コンピュータ同士を安全に通信するためのプロトコルです。簡単に言うと、ネットワークを経由して他のコンピュータ(主にサーバー)に安全に接続するための仕組みです。
ネットワークを経由すると、通信内容が盗み見られたり、入力したパスワードがバレてしまうリスクがつきものですが、SSHは「鍵」を用いて通信内容を暗号化することで、安全性を担保しています。
鍵を用いた暗号化には、共通鍵暗号方式と公開鍵暗号方式があります。
- 共通鍵:同じ鍵で暗号化と復号化をする
- 公開鍵:暗号化と復号化に別々の鍵を使う
SSHはパスワードなどではなく、特別な「鍵」を使ってログインするということを理解しましょう。
AWSとは?
AWSとはAmazon Web Serviceの略で、その名の通りAmazonが提供するクラウドサービスです。
システム開発やアプリ開発等に必要な機能を、サービスとして200以上提供しています。具体的には、データベースを提供するAmazon DynamoDBやストレージを提供するAmazon S3などがあり、近年では業種を問わずAWSを導入する会社が増えています。
今回のシリーズでは、このAWSのEC2というサービスを使ってサーバーを構築していきます。
EC2
EC2とはElastic Compute Cloudの略称で、AWSが提供する、クラウド上でサーバーを構築することができるサービスを指します。クラウド上にあるため、手軽にサーバーを構築することが可能です。AWS上で稼働するサーバーを一般にインスタンスと呼びます。
EC2インスタンスやインスタンスタイプなどさまざまな使われ方をしますが、サーバーに関する何かを示していると考えることで理解しやすいです。
オンプレミスとクラウド
サーバーの設置方法は大きくオンプレミスとクラウドの2種類があり、サーバーが自社内にあるかインターネット上にあるかで呼び方が変わります。
オンプレミスは物理サーバーを自社内に設置する従来の方法で、カスタマイズ性とセキュリティに優れています。
一方でクラウド※は、サーバーがインターネット上にあるため、物理サーバーの用意も空調設備の用意も必要ありません。そのため、低コストの実現や導入のしやすさに優れています。クラウド上にあるサーバーのことを一般に仮想サーバーと呼びます。
※「インターネット上にある」という意味で、いつでもどこからでもインターネットを使うことでアクセスできるようにする仕組みのこと。
WordPressとは?
サーバー構築とはあまり関係ありませんが、今回はWordPressもインストールする必要があります。
WordPressとは、世界でもっとも広く使用されているCMS(Contents Management System)のひとつです。
CMSとは、データベースに保存されている画像やテキストなどのデータを必要に応じて取り出して、Webページを自動で生成してくれる仕組みです。プログラミング等の専門知識なしでWebページの更新が可能になります。
なかでもこのWordPressは、オープンソースのため無料であり、拡張機能やテンプレートが豊富であるなどの特徴から、他のCMSに比べて広く使用されています。
まとめ
今回はサーバーの構築に最低限必要な知識をまとめました。詳細な説明はしていませんが、ここに書いてあることがなんとなく理解できていたら問題ありません!
実際に自分でサーバーを作ったり、動かしていたりするとわかってくることもあるので、単語を聞いて「なんとなく知っている」くらいで進みましょう。
次回以降、サーバーの構築からSSH接続ができるようになるところまでを、実際に作りながら深掘りしますので、参考にしていただけると幸いです。
- 日本・フィリピン・ベトナムでの活躍チャンス
- 最先端技術と多言語環境での成長
- 有識者による月1回の勉強会
現在、海外拠点(フィリピン、ベトナム)に関われるエンジニアを募集しています。日本だけじゃなく世界で活躍することに興味のある方は、以下よりぜひご応募ください!