SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

今さら聞けない! Amazon Web Servicesによるクラウド超入門

業務でAmazon Web Services(AWS)を使い始める前に知っておきたいクラウドの基本のキ

今さら聞けない! Amazon Web Servicesによるクラウド超入門 第1回


  • このエントリーをはてなブックマークに追加

 本連載は、IT業界に入ったばかりの新米アプリケーション開発者や、IT業界を目指す学生さんを対象とした、クラウドによるシステム構築講座です。また、業務アプリケーション開発エンジニアでプログラムを書いたり開発環境を整備したりはできるけど、本番環境でのインフラ構築/運用管理などはよく分からないという方にも読み進めていただけるように、概念や用語の解説を入れながら説明します。本連載では、Amazon Web Servicesを使ってクラウドシステム上に簡単なWebシステムを構築していきます。

  • このエントリーをはてなブックマークに追加

はじめに

 クラウドという言葉が世の中に出てきてから、ずいぶんと年月が経過しました。今日では、さまざまな企業システムがクラウド上で稼働しています。

 クラウドが登場したころは、クラウドに積極的な企業や、ゲームやソーシャル系などのシステム利用が中心でした。しかし、今ではクラウドの多大なるメリットを活用するため、一般企業でも積極的な採用が進み、基幹業務系でもクラウドを使って新しい価値やサービスを提供する企業が増えてきました。

 このクラウドは単なる技術要素ではなく、これまでの業務システム開発方法そのものや、これからのITエンジニアが持つべきスキルセットを大きく変えるものなので、アプリケーション開発者にとっては避けて通れないものになっています。

 本記事では、インフラ構築の観点からクラウドとはどのようなものかを説明し、次回以降の記事では、企業システムのデファクトとなりつつあるAmazon Web Servicesが提供するクラウドサービスでシステムを構築する手順を紹介します。

対象読者

 本記事は、次の方を対象にしています。

  • クラウドシステムがはじめての人
  • JavaによるWebシステムのプログラミングを行ったことがある人
  • システム基盤について勉強したいと思っている人

企業システムに求められる要件

 将来システムを作る仕事をしたいという学生の方に、「システムを作る仕事ってどんなことだと思う?」と聞くと、ほとんどは次のような答えが返ってきます。

  • Androidなどのアプリをプログラミングする仕事
  • ブラウザで動くWebアプリケーションをプログラミングする仕事

 つまりその分かりやすさから、「SI業務=プログラミング」というイメージがあります。

 一方、実際の業務システム開発の現場で考えてみると、例えば、ある会社の営業マンが顧客にセールスしたり会社に営業日報を報告したりするシステムを考えたとき、

  • 月末/期末の売上集計を自動でできるようにしてほしい
  • タブレットで分かりやすい見積を顧客に表示して、その場で商談を成立させたい
  • 営業日報はパソコンやタブレットからいつでもできるようにしてほしい
  • 顧客情報や売上情報などの機密情報は漏えいすると困る
  • 営業活動に支障が出るので、停止時間は休日深夜の30分以内にしてほしい
  • お客さんに見せるアプリ画面は、遅くとも1秒以内に表示してほしい

といった要件があがります。

 この中で、実はプログラミングで実現できることは、次の2つだけです。

  • 月末/期末の売上集計を自動でできるようにしてほしい
  • タブレットで分かりやすい見積を顧客に表示して、その場で商談を成立させたい

 残りの項目は、プログラミングだけでは実現できないため、+αを検討する必要があります。日報報告を行うにはセキュアなネットワークを敷設する必要がありますし、データの保存については、防犯/災害などにも耐えられる安全な場所を確保する必要があります。また、システムの停止時間が決まっているのであれば、もしサーバやネットワークに障害が発生したときに技術者がすぐに対処できるような運用方法を考えなければいけません。

 そもそも、万が一どこかで障害が発生してもシステムを継続できるようなサーバ構成を考えたり、お客さんが求める性能が出るように、予算に応じてネットワークやサーバのスペックを選んだりする必要があります。これらの要件をまとめて「非機能要件」と呼びます。

 一般的に、システムに求められる要件は大きく分類すると次の2つです。

機能要件(functional requirement)

 システムの機能として求められる要件。システムやソフトウェアで何ができるのかをまとめたもので、プログラミングで解決することが多い。

非機能要件(non-functional requirement)

 システムの性能や信頼性/拡張性/運用性/セキュリティなどの要件。機能要件以外の要件を指します。

 非機能要件を満たすには、プログラミングの知識だけではなく、「システム基盤」の知識が必須になります。次は、このアプリケーション開発者には、なじみの薄いシステム基盤の観点から、システムの全体構成を見ていきます。

システム基盤とは

 皆さんがJavaやPHPなどを使ってWebアプリケーションを作るためには、なにが必要だったでしょうか?

 まず初めに、開発マシンとOSを準備します。次に、統合開発環境(IDE)やアプリケーションサーバ/データベースサーバをインストールします。短時間で作りたいときは、フレームワークや各種ライブラリを導入したりもします。単に設計やプログラミングをしていただけではありませんでしたよね。

 では、アプリケーションを本番環境にリリースしてサービス化するにはどうすればよいでしょうか?

 まず、サーバやネットワークを構築し、それらにOSやミドルウエアを導入して設定を行う必要があります。Webシステムは昼夜を問わずリクエストが上がるため、万が一サーバやネットワーク障害が発生したときにも、システムを停止させないような構成を考えなければいけません。

 このように、作成したアプリケーションを、多くのユーザが24時間365日利用できるようにするための環境を下支えする技術要素を「システム基盤」と呼びます。

システム基盤とは
システム基盤とは

 システム基盤には、ネットワークや空調といったインフラに加えて、APサーバ/HTTPサーバ/DBサーバ/監視サーバなどのサーバ群が含まれます。

 これらのシステム基盤は「データセンター」という場所に配置し、運用しています。データセンターは、企業の業務システムを担うシステム基盤を配置する専用の場所です。空調や電力供給はもちろん、自然災害を受けにくい場所に立地されており、地震や火災にも耐えうる構造をしています。また、入退出にも厳重なセキュリティ管理がされており、人的な故意の事故を未然に防ぐ仕組みとなっています。

 また、システム基盤を運用するには、サーバ群にインストールされているOSやミドルウエア/開発したアプリケーションのバージョンを適切に管理する必要があります。また、ハードウエアの障害やリソース低下を検知し、異常があればすぐに対処できるような基盤や体制を整える必要があります。

 さらにインターネットをはじめとする外部ネットワークと接続する場合は、サーバなどのセキュリティバッチが最新かどうかを管理するだけでなく、各種ログを収集し、不正なアクセスがないかを監視することが大事です。

会員登録無料すると、続きをお読みいただけます

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

次のページ
企業が持つデータセンターの問題点

この記事は参考になりましたか?

  • このエントリーをはてなブックマークに追加
今さら聞けない! Amazon Web Servicesによるクラウド超入門連載記事一覧

もっと読む

この記事の著者

山田 祥寛(ヤマダ ヨシヒロ)

静岡県榛原町生まれ。一橋大学経済学部卒業後、NECにてシステム企画業務に携わるが、2003年4月に念願かなってフリーライターに転身。Microsoft MVP for Visual Studio and Development Technologies。執筆コミュニティ「WINGSプロジェクト」代表。主な著書に「独習シリーズ(Java・C#・Python・PHP・Ruby・JSP&サーブレットなど)」「速習シリーズ(ASP.NET Core・Vue.js・React・TypeScript・ECMAScript、Laravelなど)」「改訂3版JavaScript本格入門」「これからはじめるReact実践入門」「はじめてのAndroidアプリ開発 Kotlin編 」他、著書多数

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

WINGSプロジェクト 阿佐 志保(アサ シホ)

WINGSプロジェクトについて> 有限会社 WINGSプロジェクトが運営する、テクニカル執筆コミュニティ(代表 山田祥寛)。主にWeb開発分野の書籍/記事執筆、翻訳、講演等を幅広く手がける。2018年11月時点での登録メンバは55名で、現在も執筆メンバを募集中。興味のある方は、どしどし応募頂きたい。著書記事多数。 RSS Twitter: @yyamada(公式)、@yyamada/wings(メンバーリスト) Facebook

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/7717 2014/09/17 20:37

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング