さくらのVPSを使ってシステム開発に必要な知識を学ぶ 〜第7回〜
はじめに
本連載は、システム開発に必要な知識を得るために、一通りの流れを学ぶことを目指しています。
今回からは新たに、実際の業務を想定したメモアプリの開発を解説します。
開発計画の策定
はじめに開発の計画を立案し、GitHub wikiに記載します。
今回は上図にある通り、サーバーを使ってメモアプリを開発します。構築するサーバーは3台で、開発画面数は2つです。
通常のウォーターフォール開発であれば、以下のプロセスを踏んで計画を立てます。
- 要件定義
- 外部設計(画面デザイン含む)
- 内部設計
- 実装
- 単体テスト
- 結合テスト
- システムテスト
- 受け入れテスト
今回は連載の都合上、上記の流れをwikiページの記載で代替します。また、受け入れテストは省略します。
project作業の追加
この計画を遂行するために必要な作業を列挙し、GitHub projectに追加します。
issueによる作業の確認
追加すると同時にissue化をしておくと、あとで確認が楽になります。
マイルストーンの設定
さらにマイルストーンを設定しておくと、各作業の期限を把握することができます。
これらの設定を終えた後のissueの画面は以下のようになります。
さくらのVPSでサーバー構築
レンタルサーバーは多くの会社が提供していますが、今回はさくらのナレッジでの連載なので、さくらのVPSにて解説します。すでに他社様と契約済みの方は無理に契約しないで大丈夫です。これから述べる作業を参考にしていただければ幸いです。
契約について
さくらのVPSを契約する方法については、さくらのVPSのサービスサイトをご覧ください。
「さくらのVPS」と「さくらのレンタルサーバ」の違い
さくらインターネットからは数種類のレンタルサーバサービスが出ています。その中でもよく利用されているもののひとつに「さくらのレンタルサーバ」があります。ここでは両者の違いを、レンタルサーバとVPSという観点で比較します。
- レンタルサーバー(Shared Hosting)の特徴
- 共有環境: レンタルサーバーは多くのユーザーが同じ物理サーバーを共有する形態です。1台の物理サーバーを複数のユーザーが利用するため、リソース(CPU、メモリ、ストレージ)を共有します。
- 管理が簡易: サーバーの管理や保守作業はホスティング会社が行い、ユーザーはWebインターフェースやコントロールパネルを通じて設定を行います。
- コスト効率: レンタルサーバーは共有リソースを使用するため、コストが比較的安価です。
- 初心者に適している: 技術的な知識があまり必要なく、初心者でも簡単にウェブサイトを運営できます。
- VPS(Virtual Private Server)の特徴
- 仮想専用サーバー: VPSは1台の物理サーバーを複数の仮想サーバーに分割したもので、各VPSは独立した環境を持ちます。リソースは他のVPSと共有しません。
- フルコントロール: VPSはルートアクセス(管理者権限)が与えられることが一般的で、自由にサーバーをカスタマイズできます。オペレーティングシステムの選択やアプリケーションのインストールなどが可能です。
- リソース確保: 各VPSは固定されたリソース(CPUコア数、メモリ、ストレージ)を割り当てられるため、他のVPSの動作に影響を受けることなく安定した性能を提供します。
- 中・上級者向け: サーバーの設定や管理に対する一定の知識が必要です。技術的なスキルを持つユーザーやビジネス向けのウェブアプリケーションを運営する場合に適しています。
どちらの選択が最適かは、構築するウェブサイトやアプリケーションの要件、予算、技術レベルによって異なります。ウェブサイトの規模やトラフィックの見込み、データのセキュリティ要件、サポートの必要性などを考慮し、適切なサービスを選択することが重要です。
さくらのVPSへのOSインストール
作業手順
- さくらのVPSを契約後、さくらのVPSのコントロールパネルにアクセスします。
- 「さくらの会員IDでログイン」をクリックし、ログインページにて会員IDとパスワードを入力してログインします。
- 「サーバー一覧」に、契約したサーバーが表示されます。
- 一覧にあるサーバーをクリックします。
- OSインストールボタンをクリックします。
- インストールするOSを選択します。
- 今回はUbuntuを選択します。選択理由は以下です。
- さくらのVPSで選択できること
- 現在のLinuxディストリビューションの中でもっともポピュラーなディストリビューションであること
- Linuxディストリビューション(Distribution)とは、Linuxカーネルにさまざまなユーティリティ、アプリケーション、ドライバー、デスクトップ環境などを組み合わせた、完全なオペレーティングシステムのパッケージの事を指します
- Windows環境でもWSL(Linux用Windowsサブシステム)などでよく利用されていること
- Raspberry PiなどIoTのOSとしても利用される場面が多いこと
- サーバーに関する設定を行う画面が表示されます。今回はいったんデフォルト設定のままで結構です。
- インストールを実行します。
- 開始直前の設定状態です。
- インストール中の状態です。
- インストール終了の状態です。
※著者は過去にインストールしたことがあるため、OS再インストールと表示されています。
Ubuntuを選択したら、管理ユーザーのパスワードを設定します。ここで入力したパスワードを、管理ユーザー名(ubuntu)とともにメモしてください。
インストール後の確認
- VNCコンソールを開きます。
- ログインIDとパスワードを入力します。(先程メモしたログインIDとパスワードです)
- ログインに成功すると下図のようになります。
- 下記のコマンドでOSのバージョンを確認します。
$ uname -a
以上で、さくらのVPSにOS(Ubuntu)をインストールできました。
DNSについて
通常はサーバーを構築した後に、ドメイン名を設定するためにDNSサーバーを構築します。 しかし、一般的にはネームサーバーサービスを利用する方が安全です。以下にいくつかの理由を挙げます。
- ドメイン名の管理と簡略化:ネームサーバーサービスは、ドメイン名とIPアドレスの対応付け(DNSレコードの管理)を一元化して行うことができます。これにより、複数のドメインを保有している場合でも、すべてのDNSレコードを一か所で管理できます。
- リダイレクションとトラフィックの分散:ネームサーバーサービスを利用すると、トラフィックを適切に分散することができます。これは、複数のサーバーに負荷を分散して冗長性を確保し、サーバーのダウンタイムを減らすのに役立ちます。
- セキュリティとDNSセキュリティ拡張(DNSSEC):ネームサーバーサービスは、DNSSECと呼ばれる技術を使用してドメイン名の偽装やDNSキャッシュポイズニングなどの攻撃から保護することができます。これにより、ユーザーとサイトのセキュリティが向上します。
- ドメイン移管の簡易性:ネームサーバーサービスを利用すると、ドメインを別のレジストラに移管する際にも煩雑な手続きを簡略化できます。DNSレコードを変更するだけで新しいレジストラにドメインを移管できます。
- サービスの柔軟性と拡張性:ネームサーバーサービスは、必要に応じてドメインのDNSレコードを柔軟に変更できるため、新しいサービスやサブドメインを簡単に追加できます。また、CDN(Content Delivery Network)やメールサーバーなどのサービスを統合するのも容易です。
- ドメイン名の変更の容易さ:ネームサーバーサービスを利用すると、ドメイン名を変更する際にも簡単に対応できます。新しいドメイン名に対応するDNSレコードを設定するだけで、ウェブサイトやメールの動作を引き続き確保できます。
これらの理由から、ネームサーバーサービスを利用することは、ドメイン名の管理やセキュリティ、サービスの拡張性などの面で非常に有益です。ただし、信頼性のあるネームサーバーサービスを選択することが重要であり、信頼性やセキュリティの面で信頼できるプロバイダを選ぶことが推奨されます。
さくらインターネットからは、ネームサーバーサービスやさくらのクラウドのDNSサービスが提供されているので、そちらをご利用ください。
まとめ
今回はメモアプリ開発の事前準備として、開発計画をGitHubに記載することと、さくらのVPSにOS(Ubuntu)をインストールする手順を解説しました。
次回以降はVNCコンソールまたはターミナルでSSH接続をして、各種サーバーを構築していきます。