6
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

IBM Cloud VPC でシンプルなウェブサイト構築を体験する

Last updated at Posted at 2021-04-22

はじめに

IBM Cloud VPCを使ったシンプルなウェブサイト構築を題材に、やってみたことを入門レベルのチュートリアル記事としてまとめました。

構成図

この記事での前提となる構成図は以下の通りです。構成図の赤点線内を構築します。

  • bastionは踏み台サーバーです。インターネットからSSHログインできる箇所を最小にしておきます。また、鍵認証でSSHログインできるよう設定します。
  • ウェブサーバーが直接インターネットに接続されるのではなくロード・バランサーを経由することは、以下の観点で望ましいです。
    • ウェブサイトのスケールアウトが容易になること
    • ウェブサーバーとして必要なポート以外へのアクセスや攻撃を防げること

simpleWebDiagram.png

構成図で登場するサービスについて、用語説明があります。

構成図を描く方向けの参考情報:

Editable architecture diagram resources(英文)では、構成図の素材の情報が提供されています。記事執筆時点では、IBM IT Architect Assistant、draw.io、Omnigraffle、PowerPoint、System Architect、Visio向けの情報があります。

用語説明

リソース・グループ

  • アクセス制御や請求処理を分かりやすくするため、システムやアプリに必要な一連の複数のリソースを編成して管理する仕組みです。

VPC(Virtual Private Cloud)

  • パブリック・クラウドの中にプライベートなコンピューティング環境を作るためのクラウドのサービスです。
  • IBM Cloudの場合、VPCは単一のリージョンにデプロイされます。
  • VPCは複数のゾーンにまたがることができます。

リージョン

  • VPCをデプロイする地理的領域です。「東京リージョン」というような呼ばれ方がされます。
  • 3つの複数ゾーンで構成されるマルチゾーン・リージョンと、単一ゾーンで構成されるシングルゾーン・リージョンの2種類があります。IBM Cloudの東京リージョンは、マルチゾーン・リージョンです。

ゾーン

  • データー・センターのことです。
  • 複数のゾーンを含むVPCを構成することで、耐障害性を高められます。

IBM Cloudでの「リージョン」と「ゾーン」という用語説明が、「VPCのネットワーキングについて」というページにあります。
VPC、リージョン、ゾーンという用語は、定義が異なる場合がありますがAWSやAzureなどのクラウドでも登場します。以下がIBM Cloud特有の用語です。

VSI(Virtual Server Instance)

  • 仮想サーバー・インスタンスと呼ばれています。

アプリケーション・ロード・バランサー

浮動IP

構築にあたっての準備

  1. パラメーター・シートの内容を確認します。IBM Cloudコンソールでサービス注文に必要な情報です。
  2. IBM Cloudコンソールにアクセスし、ログインできることを確認します。
  3. 構築作業するパラメーター・シートと同じことを確認します。IBM Cloudコンソール上部の「管理」の右側にアカウント番号が表示されます。以下の画像で赤枠で示した部分です。複数のアカウントが割り当てられている場合、アカウントを切り替えてパラメーター・シートと同じに設定します。
    account.png

準備が完了したら、以下の構築ステップに進みます。

前提についての注記:

構築ステップを簡潔に分かりやすく説明するため、以下の前提についての詳細を割愛しています。各自の状況に合わせてセットアップします。

  • ドメイン
    • ドメイン取得サービスで、ドメイン登録とDNSレコード設定を行います。
    • IBM Cloudでもドメイン登録とDNSレコード設定が可能なサービスを提供しています。
  • SSL証明書
    • 構築ステップ「6.ロード・バランサーの作成と動作確認」で使用するためのSSL証明書をIBM Cloud Certificate Managerで利用できるよう準備します。以下のどちらかの方法を実施します。
      • SSL認証局で証明書を取得して、IBM Cloud Certificate Managerへインポート
      • IBM Cloud Certificate Managerを利用してLet's Encryptの証明書を取得

ちなみに、この記事の執筆時にはIBM Cloudのドメイン・ネーム登録サービスを利用し、IBM Cloud Certificate Managerを利用してLet's Encryptの証明書を取得しました。

パラメーター・シート

構築に必要なパラメーターを列挙します。

  • 構築してみたときのパラメーターが代入されています。環境に合わせて値を変えて構築します。
  • 特に記述の無いパラメーターは、デフォルトを使用しています。

IBM Cloud

リソース 説明
アカウント (利用中のアカウント) 構築に利用するアカウントであることを確認します
リソース・グループ simpleWeb アカウント管理者が払い出したリソース・グループを利用します
リージョン 東京

VPC

リソース 説明
VPC 名前: vpc1
webサーバー用サブネット1 名前: subnet1
ロケーション: 東京1
webサーバー用サブネット2 名前: subnet2
ロケーション: 東京2
bastion用サブネット3 名前: subnet3
ロケーション: 東京3
SSHキー 名前: ssh-key-simpleweb サーバー作成時に利用するSSHキー

VSI

リソース 説明
webサーバー1 名前: web1
サブネット: subnet1
webサーバー2 名前: web2
サブネット: subnet2
bastion 名前: bastion
サブネット: subnet3

VSIのスペック

リソース 説明
仮想サーバーのタイプ パブリック
オペレーティング・システム Ubuntu Linux 20.04 LTS
プロファイル Balanced | bx2-2x8
SSHキー ssh-key-simpleweb
ブート・ボリューム (デフォルトを使用)
データ・ボリューム (デフォルトを使用)
仮想プライベート・クラウド (作成したVPC)
ネットワーク・インタフェース eth0

浮動IP

リソース 説明
浮動IP 名前: fip-bastion bastion用のIPアドレス

セキュリティー・グループ

  • ロード・バランサー用セキュリティー・グループ
リソース 説明
名前 security-group-lb
インバウンド・ルール1 プロトコル: TCP
ポート: ポート範囲
ポート最小値: 443
ポート最大値: 443
ソースタイプ: すべて
アウトバウンド・ルール1 プロトコル: TCP
ポート: すべて
ソースタイプ: すべて
  • webサーバー用セキュリティー・グループ
リソース 説明
名前 security-group-web
インバウンド・ルール1 プロトコル: TCP
ポート: ポート範囲
ポート最小値: 80
ポート最大値: 80
ソースタイプ: すべて
インターフェース web1 - eth0
web2 - eth0

ロード・バランサー

リソース 説明
名前 lb1
ロード・バランサー アプリケーション・ロード・バランサー
タイプ パブリック
サブネット subnet1
subnet2
2つともチェックを入れます
プール 名前: pool1 webサーバー1とwebサーバー2をメンバーとして追加します
フロントエンド・リスナー プロトコル: HTTPS
Proxy Protocol: チェックしない
ポート: 443
バックエンド・プール: pool1
最大接続数: (入力しない)
SSL Region:(事前準備したリージョン)
SSL証明書: (事前準備したSSL証明書)
SSL証明書がIBM CloudのCertificate Managerに入っていることが前提
ホスト名 www
ドメイン名 (事前準備したドメイン名)

構築ステップ

以下に構築のステップを示します。各ステップが個別のQiitaの記事として書かれています。

  1. VPC作成
  2. サブネット追加
  3. 仮想サーバー・インスタンス作成
  4. 浮動IP取得とバインド
  5. セキュリティー・グループ作成
  6. ロード・バランサー作成と動作確認

UI変更について補足(2022/6/20)

IBM CloudコンソールUIが変更されています。2022/6/20時点でのUIに対応したステップを補足記事として掲載しました。以下に構築ステップを示します。

  1. VPC作成(2022年版)
  2. (上記ステップに統合されたため、ステップ2を欠番とします)
  3. 仮想サーバー・インスタンス作成(2022年版)
  4. 浮動IP取得とバインド
  5. セキュリティー・グループ作成
  6. ロード・バランサー作成と動作確認(2022年版)
6
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?