2023年8月8日火曜日

Microsoft Azure - その3. IaaS

先日Microsoft AzureのPaaSのApp Serviceについて書きましたが、
今回はIaaSのVirtual Machinesについてです。
こいつの一番安いやつを1台セットアップしてみます。

と、その前にリソースグループを準備します。
以下の手順で地域を指定してリソースグループを作成します。
なお私の都合に合わせて記述しているので適当に読み替えてください。
これはこれ以降で同様です。
  1. Azure Portalを開いてログインする。
  2. [三]-[すべてのサービス]-[全般]-[リソースグループ]メニューを開く。
  3. [作成]をクリック。
  4. [リソースグループ]に"ttanimu"を入力。
  5. [リージョン]に"(Asia Pacific) 西日本"を選択。
  6. [次:タグ >]をクリック。
  7. [次:確認および作成 >]をクリック。
  8. [作成]をクリック。

ではいよいよVirtual Machinesを以下の手順で作成します。
  1. Azure Portalを開いてログインする。
  2. [三]-[すべてのサービス]-[コンピューティング]-[Virtual Machines]メニューを開く。
  3. [作成]-[Azure 仮想マシン]をクリック。
  4. [リソースグループ]に"ttanimu"を入力。
  5. [仮想マシン名]に"ttanimu1"を入力。
  6. [地域]に"(Asia Pacific) 西日本"を選択。
  7. [セキュリティの種類]に"Standard"を選択。
  8. [イメージ]に"Ubuntu Server 22.04 LTS - x64 Gen2"を選択。
  9. [サイズ]に"Standard_B1ls - 1 vcpu、0.5GiBのメモリ($5.47/月)"を選択。
  10. [管理者アカウント](UNIXのrootユーザーのことではなくOS上は一般ユーザー)の[ユーザー名]に"azure"(rootは使えない)(セットアップ完全終了後に安全性強化のため削除するほうがいい。)を入力。
  11. [受信ポートの規則]の[受信ポートを選択]が"HTTP(80),HTTPS(443),SSH(22)"となるよう選択。
  12. [次:ディスク >]をクリック。
  13. [OSディスクの種類]に"Starndard SSD (ローカル冗長ストレージ)"を選択。
  14. [次:ネットワーク >]をクリック。
  15. [次:管理 >]をクリック。
  16. [次:Monitoring >]をクリック。
  17. [次:詳細 >]をクリック。
  18. [次:タグ >]をクリック。
  19. [次:確認および作成 >]をクリック。
  20. [作成]をクリック。
  21. [新しいキーの組の作成]で[秘密キーのダウンロードとリソースの作成]をクリックし"ttanimu1_key.pem"をダウンロード。(これをなくすとログインできなくなる)

ということで作成したVirtual Machinesを操作してみます。
Azure Portalの、[三]-[すべてのサービス]-[コンピューティング]-[Virtual Machines]-[ttanimu1]メニューから
起動・停止・再起動等が直感的に行えます。
その他にもコマンドラインインターフェイス(CLI/PS)(CLI:bash,PS:powershell)からの操作も可能なよう。
ただしCLI/PSを使用するには保存用の別途ストレージが必要で別途費用がかかる。

今度はVirtual MachinesのIPアドレスを調べます。
[三]-[すべてのサービス]-[コンピューティング]-[Virtual Machines]-[ttanimu1]メニュー
を開くとvm"ttanimu1"に静的に割り当てられた
[パブリック IP アドレス]が確認できます。
以降は仮に"10.11.12.13"としておきます。
これを自己所有する独自ドメインの権威DNSサーバに登録します。
なお、AzureではIPv6は基本的に割り当てられず、
IPv6を使用するにはロードバランサーを経由する必要があるようです。

さて、Virtual Machinesへログインします。
前節で作成したvm"ttanimu1"にログインするために
クライアント側であらかじめ以下を行っておきます。
  1. インターネットに直接アクセスできる(プロキシサーバ経由でない)ネットワーク環境を用意する。
  2. そのネットワークに接続できるPCを用意する。PCのOSはssh(v2)クライアントが動作すれば特に制限はないが、以下ではUbuntu(Linux)を例にする。以下このPCをクライアントPCと呼ぶ。
  3. クライアントPCにログインする。
  4. [端末](terminal)アプリケーションを開く。
  5. "which ssh"を実行して結果が"/usr/bin/ssh"などではなく何も表示されなかった(普通ないなんてことはない)ら"sudo apt install openssh-client"を実行すればsshクライアントをインストールできると思う。
  6. vm"ttanimu1"作成時に得た"ttanimu1_key.pem"をクライアントPCの"~/.ssh"ディレクトリ下にコピー。
  7. [端末]上で以下を実行する。(プロンプト内の"cpc"はクライアントPCでの操作であることを明示。)
    cpc$ cd ~
    cpc$ cd .ssh
    cpc$ chmod 600 softdev1_key.pem
    cpc$ echo '' >> config
    cpc$ echo 'Host ttanimu1azure' >> config
    cpc$ echo '  Hostname 10.11.12.13' >> config
    cpc$ echo '  User azure' >> config
    cpc$ echo '  IdentityFile ~/.ssh/ttanimu1_key.pem' >> config
    
ログインするには以下を実行します。
なおパスワードの入力は必要ありません。
cpc$ ssh ttanimu1azure
これでvm"ttanimu1"にログインできたので好きにすればいいのですが、
一応以下を実施しておきます。
まずは以下を実行してrootユーザーのパスワードを設定します。
(プロンプト内の"tt1"はvm"ttanimu1"での操作であることを明示。)
tt1$ sudo su -
tt1# passwd
tt1# exit
tt1$ su -
続けて作業用の一般ユーザ"ttanimu"を作成します。
あらかじめssh用の自分用の鍵ペアを自作した上で以下を実行。
tt1# groupadd ttanimu
tt1# useradd -m -g ttanimu -G admin -s /bin/bash -N ttanimu
tt1# passwd ttanimu
tt1# exit
tt1$ su - ttanimu
tt1$ mkdir .ssh
tt1$ chmod 700 .ssh 
tt1$ cd .ssh
tt1$ touch authorized_keys
tt1$ chmod 600 authorized_keys
tt1$ vi authorized_keys
     自作した鍵ペアの公開鍵を貼り付け
tt1$ exit
tt1$ exit
次いでクライアントPC側で以下を実行し、
vm"ttanimu1"にログインできること、rootに成れることを確認しておきます。
なお自作した鍵ペアの秘密鍵(ここでは"id_rsa"とする)は
クライアントPCの"~/.ssh/"ディレクトリにあるものとします。
cpc$ cd ~
cpc$ cd .ssh
tt1$ chmod 600 id_rsa
cpc$ echo '' >> config
cpc$ echo 'Host tt1' >> config
cpc$ echo '  Hostname 10.11.12.13' >> config
cpc$ echo '  User ttanimu' >> config
cpc$ echo '  IdentityFile ~/.ssh/id_rsa' >> config
cpc$ ssh tt1
tt1$ sudo su -
以後は匿名性を排除するためazureユーザでのログインはしない方がいいでしょう。 多分必要ないでしょうし。
userdelコマンドでazureユーザを消すのも手ですが、
今後必要になる可能性はなきにしもあらずなので勧めはしません。
まあ"/home/azure/.ssh/authorized_keys"をリネームするくらいで。

あとは好きにしてください。

0 件のコメント:

コメントを投稿