クラウドでWebサイトを動かすために学ぶこと
クラウドエンジニアが、サービスを動かすために見ている範囲を整理します。
このレッスンのメニュー
クラウドでは、サーバー、ネットワーク、ストレージなどの資源を、管理画面やAPIから用意できます。 必要なときに作り、不要になれば片づけられることが、手元の物理サーバーを購入する場合との大きな違いです。
この教室では、クラウド固有のサービス名より先に、どのクラウドでも変わりにくい仕組みを学びます。
仮想マシンでWebサイトを動かす
クラウド上で仮想マシンを一台作った時点では、中身がほぼ空のコンピューターを用意しただけです。 利用者へWebサイトを届けるには、HTMLやWebアプリを仮想マシンへ置き、リクエストを受け取るWebサーバーをプロセスとして起動します。
このように、作ったソフトウェアをサーバーへ置き、利用できる状態にする作業をデプロイと呼びます。 デプロイしたあとも、Webサイトの名前から接続先を見つけられること、通信がサーバーまで届くこと、Webサーバーが正しいポートで待っていることが必要です。
この教室では、小さなWebサイトを一つ公開する場面を共通の題材にします。 まず、利用者がページを開くときに何が起きるかを見ます。
ブラウザからWebサイトへ届く
利用者がURLを入力すると、ブラウザはOSへ名前解決を依頼して接続先のIPアドレスを調べ、サーバーへ接続します。 サーバーでは、指定されたポートで待っているWebサーバーがリクエストを受け取ります。
Webサーバーはリクエストを処理し、HTMLなどの結果を返します。 ブラウザは受け取った結果を画面に表示します。
ここまでが、利用者がWebサイトを見るときの流れです。 名前を調べるDNS、通信先を示すIPアドレス、通信の通り道、Webサーバーの待ち受けポートのどこかに問題があると、ページを開けません。
Webサイトの内容を直したら、変更したソフトウェアをもう一度デプロイします。 運営する側には、変更を記録し、確認し、サーバーへ届けるための流れがあります。
変更をサービスへ届ける
変更はGitという履歴管理ソフトウェアへ記録し、自動テストで問題がないか確認します。 そのあと、アプリと動作に必要なファイルを一つのコンテナイメージへまとめ、サーバーでプロセスとして起動します。
利用者がWebサイトを見る流れと、運営者が変更を届ける流れは、同じWebサイトの表と裏です。 この教室では、ネットワーク、Linux、Git、CI/CD、Dockerを、この二つの流れに沿って学びます。
確認した結果から、問題が起きた場所を絞る
障害対応では、「名前解決までは成功している」「TCP接続ができない」「プロセスは動いているが別のポートを待ち受けている」のように、確認した事実から範囲を狭めます。
ツールの名前をたくさん覚えるより、次の順番を習慣にします。
- 期待している状態を言葉にする
- いまの状態をコマンドで確かめる
- 差分を一つだけ変える
- 同じ方法でもう一度確かめる
参考にするロードマップ
roadmap.sh の DevOps Roadmapは、Linux、ネットワーク、Git、コンテナ、CI/CD、監視など、職業全体の学習範囲を示しています。 あわもり教室では、その中から一つのWebサイトを動かすために必要な仕組みを順に学びます。
このレッスンは完了
このページで扱った流れを確認したら、次の内容へ進みます。