質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
SQL

SQL(Structured Query Language)は、リレーショナルデータベース管理システム (RDBMS)のデータベース言語です。大きく分けて、データ定義言語(DDL)、データ操作言語(DML)、データ制御言語(DCL)の3つで構成されており、プログラム上でSQL文を生成して、RDBMSに命令を出し、RDBに必要なデータを格納できます。また、格納したデータを引き出すことも可能です。

Webサーバー

Webサーバーとは、HTTPリクエストに応じて、クライアントに情報を提供するシステムです。

Webサイト

一つのドメイン上に存在するWebページの集合体をWebサイトと呼びます。

サービス

サービスとはバックグラウンド上に常駐し、長時間稼動し続ける実行可能ファイルを指します。

Q&A

解決済

2回答

3008閲覧

WEBサーバー、アプリサーバーの本番環境について

退会済みユーザー

退会済みユーザー

総合スコア0

SQL

SQL(Structured Query Language)は、リレーショナルデータベース管理システム (RDBMS)のデータベース言語です。大きく分けて、データ定義言語(DDL)、データ操作言語(DML)、データ制御言語(DCL)の3つで構成されており、プログラム上でSQL文を生成して、RDBMSに命令を出し、RDBに必要なデータを格納できます。また、格納したデータを引き出すことも可能です。

Webサーバー

Webサーバーとは、HTTPリクエストに応じて、クライアントに情報を提供するシステムです。

Webサイト

一つのドメイン上に存在するWebページの集合体をWebサイトと呼びます。

サービス

サービスとはバックグラウンド上に常駐し、長時間稼動し続ける実行可能ファイルを指します。

0グッド

1クリップ

投稿2016/08/30 12:47

編集2016/08/31 06:32

現在javaのシステム開発で
1つのノートパソコンに
WEBサーバー、アプリサーバーの2つを同時にインストールし
デバッグなどを行っているのですが
これが本番や本番に近いテスト環境となるとどうなるのでしょうか?
自分が抱いているイメージとしましては
VPSを4つ借りて
1つ目にWEBサーバーソフト、
2つ目にアプリサーバーソフト、
3つ目にDBソフト、をインストール、
4つ目に作成したシステムを置き
テストを行うなのですが
実際はこうやって使われることが多いよとかあれば
ぜひアドバイス頂けますでしょうか。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ベストアンサー

サーバ性能にもよると思うのですが、Webとアプリケーションサーバの同居はあり得ると思います。
ただ、DBは別ホストにしてファイアウォールで防御するのが一般的なような気がします。

4つ目に作成したシステムを置き

と言うのはテスト環境のことでしょうか。
できる限りテスト環境は本番環境に近づけるべきです。
「全部入り」サーバにしてしまうと、ネットワーク負荷についてはテストできないと言う事になってしまいます。
DBに入れるデータも同様で、特にデータ件数が多い場合はできるだけ本番環境に近い状態でテストすべきです。
でないと、試験環境ではパフォーマンスが出ていたのに本番ではさっぱり…などということになってしまいます。

投稿2016/08/30 13:07

ynakano

総合スコア1894

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2016/08/30 13:13

はじめの2行わかりやすいです。 4つめに置くのは作成したアプリケーションファイルそのものです。 知識不足であれば恐縮なのですが、 そのruby on railsなどで作ったファイルを置く場所がアプリサーバーということでしょうか? 以下のようなイメージを抱いております。 やじるしはデータのやりとりを表しました。 ブラウザ ↓↑ WEBサーバー ↓↑ アプリサーバー←→DB ↓↑ 作成したファイル/フレームワーク
ynakano

2016/08/30 13:32

イメージ図で言うと、「アプリサーバ」と「作成したファイル/フレームワーク」が同一ホストになるのではないでしょうか。 というより、これらが「アプリサーバ」を構成していると思います。 "Web3層構造"という言葉は死語ではないと思うのですが… (割と真剣に心配してたりして)
退会済みユーザー

退会済みユーザー

2016/08/30 13:41

以下のようなサイトの図でみても 何を指しているのかわからないもので・・・ http://blog.livedoor.jp/del_yu/archives/591755.html つまりアプリサーバー(javaでいうTomcat)とアプリそのものは通信を行うし 別物だけど同じサーバー(ホスト)にあるものということでよろしいでしょうか。 ・DBの層 ・WEBサーバーの層 ・アプリサーバーと作成したアプリの層
ynakano

2016/08/30 13:57

ざっくり言うと以下の通りです。 ・プレゼンテーション層でユーザからのリクエストを受ける。また、処理結果をユーザに提示する。 ・アプリケーション層でユーザからの入力を処理、加工する。プレゼンテーション層とデータ層の仲立ちをする。つまりプレゼンテーション層への入出力、データ層への入出力を行う。 ・データ層ではアプリケーション層からの要求に基づきデータを保存する、もしくはデータを提供する。 で、「アプリサーバ」というのはmidさんが作成したアプリケーションを動かす基盤を提供していると考えてください。 アプリサーバとアプリケーションが通信をする、というのは一概に誤りとも言い切れないですが、一体化してい動いているという捉え方の方が分かりやすい気がします。 midさんは純粋に業務上(?)必要なロジックをプログラミングしている訳ですが、Webアプリケーションの場合それだけでは足りなくて、例えばメモリ管理やDBコネクションリソースの管理が必要になります。 その部分を担ってくれているのがmidさんの言うところの「アプリサーバ」なのです。
退会済みユーザー

退会済みユーザー

2016/08/30 14:36

<一体化してい動いているという捉え方 かなりしっくりきたように思います。 アプリサーバーの中にアプリがあり(包括していて)←日本語おかしかったらすいません。 アプリサーバーとアプリもやりとりをしている。 (アプリサーバーがリクエストをアプリにわかるように変換、仲立ちをしている。) 回答ありがとうございます! 個人的に作るにしても VPSは3層か2層にしようと思います。
ynakano

2016/08/30 14:43

midさんの用語に沿ってお話しますね。 アプリ、というのはアプリサーバの構成要素のひとつであり、アプリがmidさんの関心事の処理をしている一方、アプリサーバはmidさんのアプリがつつがなく動作するようにサポートしている、という感じでしょうか。 (上手く言えてる自信がないですが) ホストの数が多くなるとそれだけ管理の負担も高くなるので、少ないに越したことはないですね。
退会済みユーザー

退会済みユーザー

2016/08/30 14:48

大分イメージできてきたように思います。 関心事の処理というのはWEBサービスなどの処理ということでよろしいでしょうか。 あと少ないに超したことがないということであれば ひとつのVPSに WEBサーバー、アプリサーバー、アプリ(作成したサービス)、DBを 置いても問題はないのでしょうか? (それともそれが大規模でもない限り一般的?)
ynakano

2016/08/30 14:59

言葉足らずだったかもしれません。 「関心事」というのはmidさんがプログラミングした範囲、という意味です。 一つのサーバに全部乗せる事については、純粋に技術的に言えば何の問題もありません。 サーバリソースの許す限り乗せてしまってよいと思います。 ただ、そのアプリ(サービス)がひと様からお金をもらって運営しているような場合、そうはいかないと思います。 と言うのはDBは二重化すべきとか、ファイアウォールの内側に配置すべきという考慮事項が出てくると思われ、その時点でWeb/APサーバとの同居は諦めなくてはならないはずです。
退会済みユーザー

退会済みユーザー

2016/08/30 15:11

説明ありがとうございます。 <純粋に技術的に言えば何の問題もありません。 安心しました。 今後自分の事業として自社サービスを作るときなどはそうしようと思います。 考慮事項がでてきた際は臨機応変に対応しようと思います^^ もしよろしければ 別の質問ページになりますが 「サーバー構築の大まかな全体像・・・」 にも応えて頂けると幸いです。 ありがとうございます。
guest

0

開発中はWEBサーバ、アプリサーバ、データベースサーバ、
開発システム毎に1台ずつ分けた方が良いことは確かだと思います。

テスト環境は主に開発システム機能を確認するのがメインだと
思いますので開発環境に準ずる感じで良いと思います。
(負荷試験やその他の意地悪試験など特別な試験も
実施するのであれば別ですが・・・)

本番環境は開発環境と同様の構成を取るのであれば同様の構成で
良いですが、開発環境と異なり機能面だけでなく実機で動作
させた時にどうなるか?又、24時間させて場合にどうなるか?
冗長構成で動作させた場合にどうなるか?なども含めての
確認なので冗長構成であれば必要な分準備した方が良いと
思います。

投稿2016/08/30 12:58

Yatsurugi

総合スコア1628

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2016/08/30 13:08

逆のイメージをしておりました。 開発中は全て1つのマシンにいれて動かしながら作っていく そしてテストと本番のときは それぞれのミドルウェアを異なるVPSに いれていくというイメージだったのですが・・・ 冗長構成の場合 DBとアプリはセキュリティ上セットでおいて その他わけるほうがいいような気もしたのですが多くの現場ではどうなのでしょうか。
Yatsurugi

2016/08/30 13:16

DBとアプリをセットでインストールするというのも サーバを少なくして効率的に開発できるので良いと思います。 そのようにされる方も多いと思いますよ。
退会済みユーザー

退会済みユーザー

2016/08/30 13:20

WEBサーバー、アプリサーバー(アプリそのものを置く場所とアプリサーバーは別物とイメージしているのですが間違っていますか?)はそれぞれわけて配置することはほとんどでしょうか? VPS1:WEBサーバー VPS2:アプリサーバー VPS3:アプリとDB
Yatsurugi

2016/08/30 13:25

アプリにも色々あるので一概には言えませんが、 開発がしやすいからそうなさっているのであれば それで間違いではないと思います。
退会済みユーザー

退会済みユーザー

2016/08/30 13:30

アプリケーションとアプリサーバーは別物という認識は間違っていなくてよかったです。 回答ありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問