🍑あわもり教室🫧 クラウドの「手前」を、ちゃんとやる。 はじめる
SET 0015分

クラウドでWebサイトを動かすために学ぶこと

クラウドエンジニアが、サービスを動かすために見ている範囲を整理します。

このレッスンのメニュー

クラウドでは、サーバー、ネットワーク、ストレージなどの資源を、管理画面やAPIから用意できます。 必要なときに作り、不要になれば片づけられることが、手元の物理サーバーを購入する場合との大きな違いです。

この教室では、クラウド固有のサービス名より先に、どのクラウドでも変わりにくい仕組みを学びます。

仮想マシンでWebサイトを動かす

クラウド上で仮想マシンを一台作った時点では、中身がほぼ空のコンピューターを用意しただけです。 利用者へWebサイトを届けるには、HTMLやWebアプリを仮想マシンへ置き、リクエストを受け取るWebサーバーをプロセスとして起動します。

このように、作ったソフトウェアをサーバーへ置き、利用できる状態にする作業をデプロイと呼びます。 デプロイしたあとも、Webサイトの名前から接続先を見つけられること、通信がサーバーまで届くこと、Webサーバーが正しいポートで待っていることが必要です。

この教室では、小さなWebサイトを一つ公開する場面を共通の題材にします。 まず、利用者がページを開くときに何が起きるかを見ます。

ブラウザからWebサイトへ届く

利用者がURLを入力すると、ブラウザはOSへ名前解決を依頼して接続先のIPアドレスを調べ、サーバーへ接続します。 サーバーでは、指定されたポートで待っているWebサーバーがリクエストを受け取ります。

URLの入力からDNSによる名前解決、ネットワーク経路、Linux上の待ち受けポートとWebサーバーのプロセスまでの流れ
ブラウザは接続先を調べ、ネットワークを通って、サーバーで動くWebサーバーへリクエストを届けます。

Webサーバーはリクエストを処理し、HTMLなどの結果を返します。 ブラウザは受け取った結果を画面に表示します。

ここまでが、利用者がWebサイトを見るときの流れです。 名前を調べるDNS、通信先を示すIPアドレス、通信の通り道、Webサーバーの待ち受けポートのどこかに問題があると、ページを開けません。

Webサイトの内容を直したら、変更したソフトウェアをもう一度デプロイします。 運営する側には、変更を記録し、確認し、サーバーへ届けるための流れがあります。

変更をサービスへ届ける

変更はGitという履歴管理ソフトウェアへ記録し、自動テストで問題がないか確認します。 そのあと、アプリと動作に必要なファイルを一つのコンテナイメージへまとめ、サーバーでプロセスとして起動します。

作業中の変更をGitへ記録し、CIで検証してコンテナイメージを作り、実行中のWebサービスへ届ける流れ
変更を記録し、自動テストを通し、実行用のイメージを作ってからデプロイします。

利用者がWebサイトを見る流れと、運営者が変更を届ける流れは、同じWebサイトの表と裏です。 この教室では、ネットワーク、Linux、Git、CI/CD、Dockerを、この二つの流れに沿って学びます。

確認した結果から、問題が起きた場所を絞る

障害対応では、「名前解決までは成功している」「TCP接続ができない」「プロセスは動いているが別のポートを待ち受けている」のように、確認した事実から範囲を狭めます。

ツールの名前をたくさん覚えるより、次の順番を習慣にします。

  1. 期待している状態を言葉にする
  2. いまの状態をコマンドで確かめる
  3. 差分を一つだけ変える
  4. 同じ方法でもう一度確かめる

参考にするロードマップ

roadmap.sh の DevOps Roadmapは、Linux、ネットワーク、Git、コンテナ、CI/CD、監視など、職業全体の学習範囲を示しています。 あわもり教室では、その中から一つのWebサイトを動かすために必要な仕組みを順に学びます。

このレッスンは完了

このページで扱った流れを確認したら、次の内容へ進みます。