Azure Central Azure逆引きリファレンス[PR]
Azure VMでLinuxインスタンスを起動したら最初にやっておくべき初期設定[PR]
Azure仮想マシンでLinuxインスタンスを立ち上げたら、SSH接続のための設定や、スワップファイルの有効化、タイムゾーンの設定、Azure CLIのインストールは必ず行いたい。その設定方法を紹介する。
クラウドプラットフォーム「Azure」の仮想マシン(VM:Virtual Machines)はLinuxも利用可能である。本稿ではLinuxインスタンスを起動したら実施しておいた方がよい設定についてまとめる。
Azureの仮想マシンは「クラシック」もしくは「リソースマネージャー」のデプロイモデルを使用して作成することが可能だが、本稿では「リソースマネージャー」を利用して作成した仮想マシンを前提とする。また、LinuxのディストリビューションはUbuntu Server 14.04 LTSとする。図1は、Azureの管理ポータルで実際に仮想マシンを新規作成しているところだ。
リソースマネージャーを利用したUbuntu 14.04 LTSの仮想マシンを前提とする。
仮想マシンへの接続に関する設定
DNS名ラベルの設定
Azureで仮想マシンを作成するとパブリックIPが割り当てられるが、初期状態では固定IPではない。そのため、常に同一のアドレスでアクセスするためにDNS名ラベルの設定を行う。
具体的には、Azureのポータル画面から作成した仮想マシンを選択すると、図2のように仮想マシンの要点が表示される。要点に[パブリック IP アドレス/DNS 名ラベル]という項目があるが、初めは何も設定していないため[<なし>]と表示される。その表示箇所(図2の赤枠部分)をクリックするとIPアドレスの構成画面が表示され(図3)、DNS名ラベルを設定する欄が表示される。
[DNS 名ラベル (オプション)]項目の入力欄に適当な名前を指定して保存する。
図3のIPアドレス構成画面では、IPアドレスを静的アドレスに変更したり、DNS名ラベルを設定したりできる。今回はIPアドレスの固定化ではなくDNS名ラベルの設定を行うため、[DNS 名ラベル (オプション)]に適当な文字列を指定して[保存]ボタンをクリックする。
再度、仮想マシンの要点を表示するとDNS名ラベルが指定した文字列となっていることが確認できる(図4)。今後、仮想マシンに接続する際には、設定したDNS名ラベルを利用して接続を行うこととなる。
ネットワーク・セキュリティ・グループの設定
ネットワーク・セキュリティ・グループ設定画面の表示方法
Azureの仮想マシンには、[ネットワーク インターフェイス]に[ネットワーク セキュリティ グループ]というセキュリティルールを指定することができる。初期状態では受信規則も送信規則も何も指定されていないため、全ての接続を拒否する状態となっている。LinuxインスタンスにはSSHを利用して接続するため、受信規則にSSHを許可する設定を追加する必要がある。
[ネットワーク セキュリティ グループ]の設定画面を表示するには、以下の手順を実行する。
- 仮想マシンの設定項目にある[ネットワーク インターフェイス]をクリック(図5.1)
- 仮想マシンに接続されているネットワークインターフェイスの一覧が表示されるので、設定を表示するネットワークインターフェイスをクリック
- ネットワークインターフェイスの設定項目にある[ネットワーク セキュリティ グループ]をクリック(図5.2)
- ネットワーク・セキュリティ・グループの名前(図5.2の[bdtopic3vm-ubuntu1404-nsg])が表示されるので、それをクリック
ネットワークインターフェイスの設定項目にある[ネットワーク セキュリティ グループ]をクリック。
SSH接続のための受信セキュリティ規則追加方法
以上の手順によりネットワーク・セキュリティ・グループの設定画面が表示されたら、[受信セキュリティ規則]と[送信セキュリティ規則]が何も設定されていないことを確認する。図6のように[受信セキュリティ規則]には何も存在しないことが確認できたら(※仮想マシンをデフォルト設定のまま新規作成した場合、「default-allow-ssh」という名前で、SSH接続を許可するためのネットワーク・セキュリティ・グループがすでに作成されている場合がある。その場合、本節の作業はスキップしてよい)、SSHでの接続を許可するため、受信セキュリティ規則を追加する。具体的には図7に示す、受信セキュリティ規則の[追加]ボタンをクリックする。これにより、[受信セキュリティ規則の追加]画面が表示される(図8)。
初期状態では何も存在しないため、[追加]ボタンをクリックして受信セキュリティ規則の追加を行う。
SSH接続用に受信セキュリティ規則の追加を行う。
図8の[受信セキュリティ規則の追加]画面で、以下の手順を参考にSSH用の許可設定を追加する。本稿では表1の内容で設定した。
- [名前]には、適当な名前を入力する
- [優先度]は、初期値の値(例:
100
)をそのまま利用する - [ソース]には、全てのIPアドレスからのアクセスを受け付けるため、
Any
を指定する。この他、CIDR block
やTAG
を指定して接続元のIPアドレスに制限を設定することもできる。例えば特定のIPアドレスからのみを受け付ける場合などはCIDR block
で、接続を許可するIPアドレスを指定する - [サービス]では、
SSH
を選択する。これにより[プロトコル]と[Port range]の設定値は自動的に入力済みとなる - [アクション]に
許可
が設定されていることを確認して、[保存]ボタンをクリックする
設定項目 | 設定値 |
---|---|
名前 | SSH |
優先度 | 100(初期値) |
ソース | Any |
サービス | SSH |
プロトコル | TCP |
Port range | 22 |
アクション | 許可 |
以上の手順が完了したら、ネットワーク・セキュリティ・グループの設定画面で受信規則が追加されていることを確認する(図9)。
スワップファイルの作成
仮想マシンを作成しただけの状態ではスワップファイルが存在しないため(リスト1参照)、アプリケーションのインストール時などでエラーが発生する場合がある。そのため、仮想マシンにスワップファイルを作成する必要がある。
$ free
total used free shared buffers cached
Mem: 3522008 550364 2971644 420 49184 367064
-/+ buffers/cache: 134116 3387892
Swap: 0 0 0
|
仮想マシン作成直後にfree
コマンドを利用してSwap領域を表示すると存在しないことが分かる。
スワップファイルの作成方法
まずはwaagent(Microsoft Azure Linuxエージェント、詳細は後述のコラムを参照)を利用してスワップファイルが作成されるようにする。これには、リスト1.2の手順でwaagent.conf
ファイルを編集する。
1
2
3
|
$ sudo vi /etc/waagent.conf
……省略(修正箇所のみ表示)……
ResourceDisk.Format=y
ResourceDisk.EnableSwap=y
ResourceDisk.SwapSizeMB=4096
|
waagent.conf
ファイルを編集してスワップファイルを作成する。今回はvi
コマンドを利用しているが、普段利用しているテキストエディターを利用して編集して問題ない。
- 1
ResourceDisk.Format
の設定値をn
からy
に変更して、リソースディスクのフォーマットを行うように変更。 - 2
ResourceDisk.EnableSwap
をn
からy
に変更して、リソースディスクにスワップファイルを作成する。 - 3
ResourceDisk.SwapSizeMB
を0
から適当な値に変更して、スワップファイルのサイズを指定する。
編集後、Azureポータルから仮想マシンの再起動を行う(図10)。
再起動後に再度free
コマンドで確認すると、スワップファイルが作成されているのを確認できる(リスト1.3)。
$ free
total used free shared buffers cached
Mem: 3522008 3389576 132432 420 3120 3179416
-/+ buffers/cache: 207040 3314968
Swap: 4194300 0 4194300
|
再度free
コマンドを利用してSwap領域を表示すると、スワップ領域が作成されていることが分かる。
【コラム】waagent.confファイルについて
AzureのLinuxインスタンスにはMicrosoft Azure Linuxエージェント(waagent)が起動している。スワップファイルを作成する際に編集したwaagent.conf
ファイルは、waagentの動作を制御するためのファイルである。waagentを利用することで、LinuxとFreeBSDのプロビジョニング、仮想マシンとAzureファブリックコントローラーとの相互動作を管理できる。このようにwaagentには、デプロイ用にさまざまな機能が用意されている。
タイムゾーンをJSTに変更
Azureで作成した仮想マシンのタイムゾーンはUTCになっているため、(必要に応じて)日本のタイムゾーンを指定する。リスト2.1は、その手順だ。
1
2
3
|
$ cat /etc/timezone
Etc/UTC
$ echo "Asia/Tokyo" | sudo tee /etc/timezone
Asia/Tokyo
$ sudo dpkg-reconfigure --frontend noninteractive tzdata
Current default time zone: 'Asia/Tokyo'
Local time is now: Wed Nov 16 16:33:53 JST 2016.
Universal Time is now: Wed Nov 16 07:33:53 UTC 2016.
|
初期のタイムゾーンはEtc/UTC
が設定されている。これをAsia/Tokyo
に変更する。
- 1初期のタイムゾーンは
Etc/UTC
である。 - 2
/etc/timezone
ファイルに対して、Asia/Tokyo
を設定。 - 3
dpkg-reconfigure
コマンドを使用してタイムゾーンの設定を反映する。
Azure CLIのインストール
Azure CLIのazure
コマンドを利用すると、Azureのさまざまなリソースを操作することが可能となる。Azure CLIは現在、Node.jsで開発されているが、PythonベースのAzure CLI 2.0プレビュー版(Preview)も存在する。本稿では安定板であるNode.jsで開発されたAzure CLIのインストール方法について解説を行う。
Node.jsとnpmのインストール
Azure CLIをインストールするには、Node.jsとnpmがインストールされている必要がある。そのため、まずは最新のNode.jsとnpmをインストールする。
$ sudo apt-get update
$ curl -sL https://deb.nodesource.com/setup_6.x | sudo -E bash -
$ sudo apt-get install -y nodejs
|
Azure CLIはNode.jsとNode.jsとnpmをインストールする必要があるため最新のNode.jsとnpmをインストールする。
Azure CLIのインストール
次にnpmを使用してAzure CLIをインストールする。
$ sudo npm install -g azure-cli
|
npmを使用してAzure CLIをインストールする。
Azure CLIのインストール確認
正常にAzure CLIがインストールされたか、azure -v
コマンドを利用して確認する。
$ azure -v
0.10.7
|
バージョン情報を表示して正しくインストールされたかの確認を行う。
Azure CLIのタブ補完を有効にする
Azure CLIを利用する際に、タブ補完を利用できるように設定を行う。この設定を有効にすると、コマンドの途中でTabキーを押すとコマンドの候補が表示されるので使い勝手が向上する。
$ azure --completion >> ~/azure.completion.sh
$ echo 'source ~/azure.completion.sh' >> ~/.bash_profile
$ azure lo (ここまで入力した段階でTabキーを押すと……)
location login logout
|
Azure CLIのタブ補完を有効にする。設定直後にうまく動作しない場合は再度ログインすると有効になる。
■
以上、
- 仮想マシンへの接続に関する設定
- スワップファイルの有効化
- タイムゾーンの設定
- Azure CLIのインストール
の4つが、筆者がお勧めする「Azure仮想マシンでLinuxインスタンスを起動したら最初に必ず設定しておきたい初期設定」の内容だ。実際には仮想マシンの用途に応じて必要な作業は数多く存在するがよく利用する初期設定を紹介した。Azure仮想マシンでLinuxを使うときに活用していただけるとうれしい。
※以下では、本稿の前後を合わせて5回分(第5回~第9回)のみ表示しています。
連載の全タイトルを参照するには、[この記事の連載 INDEX]を参照してください。
5. 設計時に使えるAzure/AWSサービス・アイコン集とダウンロード方法[PR]
クラウド上のシステムやサービスを設計する際には、視覚的に分かりやすいアイコンを使おう。アイコンセットのダウンロード方法を示し、各アイコンを用いてAzure/AWSサービスの対応一覧表をまとめる。
6. Azureアカウントを取得したら最初にやっておくべき初期設定[PR]
Azureを使い始めたら、特に重要なセキュリティ設定を初めに済ませよう! Azureアカウント保護(二段階認証)/アクセス制御(IAM)/セキュリティセンターの設定方法を説明。さらに各種アラートの作成方法や、入門者にお勧めのコンテンツも紹介する。
7. iPhone/Androidの2段階認証アプリ「Authy」で複数デバイス対応(Microsoftアカウント編)[PR]
パスワード漏えい問題が頻発する現在ではログインの2段階認証は必須だ。人気アプリ「Authy」を使って、各種スマホ&PCブラウザーなど複数デバイスで2段階認証用のトークンを取得する方法を紹介する。
8. 【現在、表示中】≫ Azure VMでLinuxインスタンスを起動したら最初にやっておくべき初期設定[PR]
Azure仮想マシンでLinuxインスタンスを立ち上げたら、SSH接続のための設定や、スワップファイルの有効化、タイムゾーンの設定、Azure CLIのインストールは必ず行いたい。その設定方法を紹介する。
9. 分かりにくいAzure BLOBの料金を事前にある程度推測する方法[PR]
新規作成時にVMサイズや価格レベルを選択できるサービスに比べて、従量課金型のBLOBストレージは実際に使ってみるまでいくらになるのか料金が分からない。実際の料金と照らし合わせながら、使い始める前にその推測値を計算する方法を紹介する。