船井総研デジタルのよもぎたです。
今回は、AzureにUbuntu仮想マシンをデプロイして、そこにWebサーバを構築してみたいと思います。WebサーバはApacheとNginxの2パターンを考えているので、共通の仮想マシンデプロイの記事(本記事)と、Apacheの構築記事とNginxの構築記事に分けたいと思います。
ネットワークを準備する
まずは、仮想マシンをデプロイするネットワークの準備をします。
仮想ネットワークを作成する
Azureのサービスの検索で@「仮想ネットワーク」と検索し、「仮想ネットワーク」を選びます。このとき、「仮想ネットワーク(クラッシック)」も検索にヒットしますが、こちらはワナです。
基本情報で、サブスクリプションとリソースグループを選び、名前を指定してリージョンを選択します。
今回は仮想ネットワークのアドレスは192.168.0.0/16
、サブネットのアドレスは192.168.1.0/24
としました。
セキュリティとタグは今回はデフォルトのままなので、ここで「確認及び作成」をクリックしてします。
ネットワークセキュリティグループの作成
サービスの検索で「セキュリティグループ」で検索し「ネットワークセキュリティグループ」を選びます。ここでも「~~(クラッシック)」は無視します。
ネットワークセキュリティグループの作成は、仮想ネットワークと同じサブスクリプション、リソースグループ、リージョンで作成します。名前は任意でつけてください。ここで「確認および作成」をクリックしてネットワークセキュリティグループを作成します。トラフィックの許可は作成後に設定します。
作成出来たら、リソースに移動します。
ネットワークセキュリティグループの設定
Webサーバ用のポートを開放する
Webサーバなので、HTTP(TCP80番ポート)とHTTPS(TCP443番ポート)をAnyから許可します。左のメニューから「受信セキュリティ規則」をクリックし、右のペインが切り替わったら「追加」をクリックします。
「受信セキュリティ規則の追加」で「サービス」のプルダウンメニューから「HTTP」を選び、追加をクリックします。「宛先ポート範囲」と「プロトコル」がグレーアウトして「80」と「TCP」に固定になります。同様の手順で「HTTPS」も追加します。
構築作業用のポートを開放する
構築作業用に、SSHのポートを開放します。手順はHTTP/HTTPSと同じですが、「ソース」(IPアドレス)を「My IP address」に、サービスを「SSH」にします。
ネットワークセキュリティグループの確認
作成して、HTTP、HTTPS、SSHの3件の許可が追加されていること、HTTPとHTTPSについてはソースは任意、SSHについてはソースが自分のグローバルIPアドレスになっていることを確認します。
ネットワークセキュリティグループの適用
ホームの最近使ったリソースから、先ほど作成した仮想ネットワークを選びます。仮想ネットワークの左のメニューで「サブネット」を選び、先ほど作成したサブネットを選びます。右側に追加のメニューが開きます。
追加のメニューのなかの「ネットワークセキュリティグループ」のプルダウンメニューから、先ほど作成したネットワークセキュリティグループを選び「保存」をクリックします。
パブリックIPアドレスの作成
Azureのサービスの検索から「パブリックIP」で検索し「パブリックIPアドレス」を選択します。
パブリックIPアドレスの作成メニューに入り、値を選択していきます。IPバージョンはIPv4,SKUはStandard、レベルは地域を選択します。名前は任意の名前を付けます。サブスクリプション、リソースグループ、場所は用意したネットワークと同じものを選択します。これで「作成」をクリックします。
これで、ネットワークの準備が整いました。
仮想マシンをデプロイする
Azureのサービスの検索から「virtual machines」を検索し、「Virtual Machines」を選択します。
Virtual Machinesのメニューから「作成」を選択「Azure仮想マシン」を選択します。
仮想マシンの作成メニューに入ります。
基本タブでは、サブスクリプション、リソースグループ、リージョンは準備したネットワークと同じものを選択します。
仮想マシン名は任意で設定します。イメージは「Ubuntu Server 22.04 LTS」を選択します。仮想マシンのサイズは任意で構いませんが、今回は「Standard_B1ls」を選択しました。
管理者アカウントは「SSH公開キー」を選択し、ユーザー名はせっかく任意のものが設定できるので、任意の名前に変更します。
ディスクタブはデフォルトのままでスキップします。
ネットワークタブでは、仮想ネットワーク、サブネット、パブリックIPをそれぞれ準備したものをプルダウンメニューから選択します。「NICネットワークセキュリティグループ」は「なし」になっていることを確認します。サブネットにネットワークセキュリティグループが適用されているので、これで問題ありません。
「確認および作成」をクリックし「作成」をクリックします。
「新しいキーの組の生成」というダイアログが表示されるので「秘密キーのダウンロードとリソースの作成」を選択します。
秘密鍵がダウンロードできるので、大切に保管します。
少し待つと、リソースのデプロイが完了します。
仮想マシンのグローバルIPアドレスは、仮想マシンの概要で確認できます。
OSをアップデートする
仮想マシンへのログイン
ここからはWSL2で操作します。
先程ダウンロードしたSSH秘密鍵を ~/.ssh にコピーてパーミッションを設定します。
$ cp WebSv_key.pem ~/.ssh
$ cd ~/.ssh
$ chmod 600 WebSv_key.pem
仮想マシンにログインします。-l <username>
は仮想マシンデプロイ時に設定したユーザー名を指定してください。
$ ssh -l t_ymgt -i WebSv_key.pem xx.xx.xx.xx
Welcome to Ubuntu 22.04.1 LTS (GNU/Linux 5.15.0-1029-azure x86_64)
---snip---
t_ymgt@WebSv:~$
ssh configを設定する場合は次のようにします。こうすると、hostで指定した名前(下記の場合はAzWebSV)でsshできるようになります。
$ grep -A3 AzWebSV ~/.ssh/config
host AzWebSV
hostname XX.XX.XX.XX
identityfile ~/.ssh/WebSv_key.pem
user t_ymgt
$ ssh AzWebSV
Welcome to Ubuntu 22.04.1 LTS (GNU/Linux 5.15.0-1029-azure x86_64)
---snip---
t_ymgt@WebSv:~$
OSのアップデートをします。
$ sudo apt update -y
$ sudo apt upgrade -y
Apache、Nginx共通の手順はここまでです。インストールしたいWebサーバに応じて以下の記事を参照してください。
最後までお読みいただきありがとうございました。