このガイドは、Azure で Discourse サイトをセルフホストしたい方向けのものであり、Linux VM を作成するために必要な初期の Azure ポータルの手順を解説します。その後、ホスティング環境に依存しない通常のクラウドインストールガイドに従って設定を完了できます。セルフホストには興味がないが、Discourse フォーラムのホスティングを当方に依頼したい場合は、こちらからサインアップしてください。
1) リソースグループの作成
VM を作成する前に、まずリソースグループを作成します。Discourse サイトに関連するすべてのもの(VM のストレージディスク、ネットワーク、セキュリティグループ、Blob ストレージなど)はここに配置されます。リソースグループを作成するには、緑色のプラス記号をクリックして「リソースグループ」を選択し、「リソースグループ名」フィールドを入力、「サブスクリプション」と「リソースグループの場所」を選択してから「作成」ボタンを押します。
2) Linux VM の作成
このガイドでは Ubuntu 16.04 LTS の VM を作成します。そのために再度緑色のプラス記号をクリックし、「Ubuntu Server 16.04 LTS」を検索してください。利用可能な VM の一覧に表示されるはずです。
それを選択し、デプロイモデルが「リソースマネージャー」になっていることを確認してから「作成」をクリックします。
3) 基本設定の構成
「仮想マシンの作成」の「基本」タブが表示されているはずです。VM のセットアップに必要なすべての項目を入力してください。先に作成した「discourse」リソースグループを選択し、VM には「discourse」などの名前を付け、使用するリージョンを選びます。
同じ「基本」タブで、VM のサイズを選択する必要があります。デフォルトでは「Standard D2s v3」(メモリ 8 GB、月額 71.42 ドル)が選択されていますが、「サイズを変更」をクリックして、ワークロードに適した VM サイズを選択してください。
最低限必要な構成として、メモリ 2GB の「B1ms」オプションを選択してください。「B1s」は 1GB と広告されていますが、OS レベルでは実際には約 800MB しか割り当てられず、Discourse を十分に動作させるにはメモリ不足になります。「B1ms」の料金は月額 17.11 ドルです。
次に、Linux ユーザー名を入力し、SSH 公開鍵をアップロードしてください。パスワードによるログインを設定することも可能ですが、SSH キーによるログインが推奨されます。
Web アクセスと SSH アクセスを許可するため、「選択したポートを許可」ラジオボタンを選択し、「受信ポートの選択」ドロップダウンから HTTP、HTTPS、SSH を選びます。セットアップ完了後は、SSH アクセスを自分の IP アドレスのみに制限することを強くお勧めします。
「確認 + 作成」を選択します。「概要」ページで内容に問題がないことを確認し、「作成」ボタンを押してください。VM の作成には数分かかります。
4) VM への SSH 接続
スワップの設定と Discourse のインストールには、コマンドラインへのアクセスが必要です。VM が作成されたら、Azure ポータルからそれを選択し、「概要」画面でパブリック IP アドレスを確認できます。ターミナルを開き、このガイドのステップ 3 で指定したユーザー名を使用して VM へ SSH 接続してください。
VM への SSH 接続方法がわからない場合は、Azure ポータル内の「シリアルコンソール」を使用することもできます。VM を選択し、左側のナビゲーションの一番下にある「シリアルコンソール」をクリックしてください。
これによりシェルが開き、VM 作成前に指定したユーザー名とパスワードを入力できます。パスワードがわからない場合は、「パスワードのリセット」オプションを使用してください。
これでコマンドを入力できるターミナル画面が表示されているはずです。
5) スワップの設定
各 Azure VM には、OS ディスクとは別に一時的なディスクが付属しており、通常は /dev/sdb1 にマウントされます。スワップは OS ディスクではなく、この一時的なディスクに設定してください。その理由は以下の通りです。
この一時的なストレージドライブは VM をホストしている物理マシン上に存在するため、データディスクなどの永続的ストレージと比較して、より高い IOPS と低いレイテンシを実現できます。 - Azure 仮想マシンにおける一時的なドライブの理解
/etc/waagent.conf ファイルを編集し、以下の行を更新してください。
ResourceDisk.Format=y
ResourceDisk.EnableSwap=y
ResourceDisk.SwapSizeMB=2048
注:すでに OS ドライブ上にスワップが設定されている場合(./discourse-setup によって設定された可能性があるなど)、/etc/fstab 内の /swapfile 行のコメントアウトを解除して無効にすることができます。
vim のようなコマンドラインエディタで /etc/waagent.conf を編集する方法がわからない場合は、以下のコマンドをターミナルにコピー&ペーストして Enter キーを押してください。
sudo sed -i '/ResourceDisk.Format=n/c\\ResourceDisk.Format=y' /etc/waagent.conf && sudo sed -i '/ResourceDisk.EnableSwap=n/c\\ResourceDisk.EnableSwap=y' /etc/waagent.conf && sudo sed -i '/ResourceDisk.SwapSizeMB=0/c\\ResourceDisk.SwapSizeMB=2048' /etc/waagent.conf
これが初めての sudo コマンド実行の場合、パスワードを求められることがあります。
その後、sudo shutdown -r now で VM を再起動してください。
スワップが正常に動作しているか確認するには、VM に再度ログインし、swapon --show と入力してください。以下のような表示が確認できるはずです。
root@azure:~# swapon --show
NAME TYPE SIZE USED PRIO
/mnt/swapfile file 2G 0B -2
スワップファイルが /mnt 内に配置されていることがわかります。これは一時的なドライブであるため、正しい設定です。
また、free -h と入力して以下のような表示を確認することもできます。
root@azure:~# free -h
total used free shared buff/cache available
Mem: 1.9G 174M 1.5G 3.0M 172M 1.5G
Swap: 2.0G 0B 2.0G
スワップの「total」列に値が表示されていれば、スワップが正常に設定されています。
6) Discourse のインストール
Azure 上で Linux VM が作成され、スワップパーティションも設定されたので、公式クラウドインストールガイドに従ってインストールを進めてください。
7) Azure Blob ストレージプラグインのインストール(オプション)
Discourse のインストールが完了したら、Azure Blob ストレージプラグインのトピックにあるインストール手順に従ってください。このプラグインをインストールして有効にすると、ユーザーがアップロードした画像が Linux VM 上ではなく Blob ストレージに保存されるようになります。これによりパフォーマンスが向上し、OS ディスクの容量不足を防ぐことができます。









