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

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

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

Apacheは、Apache HTTP Serverの略で、最も人気の高いWebサーバソフトウェアの一つです。安定性が高いオープンソースソフトウェアとして商用サイトから自宅サーバまで、多くのプラットフォーム向けに開発・配布されています。サーバーソフトウェアの不具合(NCSA httpd)を修正するパッチ(a patch)を集積、一つ独立したソフトウェアとして開発されました。

Linux

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Q&A

解決済

1回答

879閲覧

AWS環境内でのプログラム一元管理方法について

tomoyamachan

総合スコア15

Apache

Apacheは、Apache HTTP Serverの略で、最も人気の高いWebサーバソフトウェアの一つです。安定性が高いオープンソースソフトウェアとして商用サイトから自宅サーバまで、多くのプラットフォーム向けに開発・配布されています。サーバーソフトウェアの不具合(NCSA httpd)を修正するパッチ(a patch)を集積、一つ独立したソフトウェアとして開発されました。

Linux

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

0グッド

2クリップ

投稿2020/10/02 02:45

編集2020/10/02 05:34

AWS環境内での、プログラム一元管理方法が知りたいです。

今度AWS環境へシステム移行する事になりました。
今のシステムでは、phpプログラムをNas上に置いていて、
各WebサーバはそのNas上のPHPプログラムを参照・実行してます。
同じ事をAWS環境でもやろうとしたのですが、AWSだと、
AWS上のWEBサーバ(EC2上のWebサーバ)からEFS(AWS上のNas)のPHPを参照するのに時間がかかる為、
同じような実装は却下されています。

対策として、各WEBサーバ(計10台)にPHPを配置するっていう話が出てるのですが、
保守運用時にかかるコストが高くなる為、やりたくありません。
(保守対応で、プログラムを修正・UPする度に、10台のWEBサーバ上のプログラム反映状況を確認する必要が出るから)

プログラムを一元管理し、かつ、保守コストもかからないようなベターなシステム構成を
思いつく方がいましたら、ご教授願いたいです。お願いします。

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

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

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

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

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

tomoyamachan

2020/10/02 05:31 編集

そうです。EFSの事です。すみません、Nasって書いた方が、awsの環境に詳しくない人でもわかるかなって思って、Nasって書きました。
guest

回答1

0

ベストアンサー

ファイルベースで管理しているようなデータが無い事が前提となりますが、
簡単な順には以下の様な感じでしょうか。

  1. 定期的なRsyncでEFSからEBSに同期させる。

RsyncをCronで走らせて同期させます。
Lsyncdが使えないのでRsyncのエラー等を自前で捕まえてあげないといけないのが大変&リアルタイムには更新されませんが、手動でデプロイするよりはマシなはずです。
EC2への各ユーザーのログインは原則禁止にして、同期にずれが生じるような作業をさせないようにしましょう。

  1. 各EC2をAutoScalingGroupに入れておいて、ソース更新があったらAMIを更新→順番にインスタンスを殺して自動で更新後のイメージから起動させる

インスタンスの問題発生時にはとりあえず殺してAMIから起動しなおせば復旧できるという運用の安心感が生まれます。
リリースの度に手作業が発生しますが、CI/CDに関する知見や開発手法に関する教育コストもそこまでかからないので気軽に始めるには悪くないと思います。

  1. AWS CI/CDあたりで検索して、継続的なインテグレーション/デリバリーを実現する

開発手法から整備しないといけないので結構大変ですが、最終的な管理は楽になります。

投稿2020/10/02 06:17

編集2020/10/02 06:41
tanat

総合スコア18727

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

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

TaichiYanagiya

2020/10/02 06:26

lsyncd は kernel の inotify を利用して更新をキャッチしていると思うのですが、NFS で inotify は使えないのでは?
tanat

2020/10/02 06:33 編集

> TaichiYanagiyaさん ご指摘ありがとうございます。 確認して回答修正します。 その場合は定期的にRsyncするとかになっちゃいますね。
tanat

2020/10/02 06:41

Lsyncdに関する記述を削除/修正しました
tomoyamachan

2020/10/05 03:39

>tanatさん ご提案ありがとうございます。案1について質問させてください。 EBSへの同期とのことですが、これは、WEBサーバのPG参照先をEBSに切り替えるっていう事ですよね。 EBSからのレスは、EFSよりも早いから、という事でしょうか。
tanat

2020/10/05 04:11

> WEBサーバのPG参照先をEBSに切り替えるっていう事ですよね。 はい > EBSからのレスは、EFSよりも早いから、という事でしょうか。 はい。その通りです。 実際にどの程度の差が出るかは実環境で計測しないとわかりませんが、 普通にNFSでマウントするとファイルシステムのキャッシュも効かず、ネットワークのレイテンシも発生することから、ファイルへのアクセス速度に一定のオーバーヘッドが発生してしまうのは避けられないですね。
tomoyamachan

2020/10/05 05:48

ありがとうございます!!本当に助かります!! 早速チームの検討課題として実装可否を進めていきます!!!
tomoyamachan

2020/10/05 10:22

確認したところ、EBSは、WEBサーバのローカルディスクと同義でした。(自分が利用してるEC2の場合)そして今回、PGのローカルディスク管理化を避けたかった為、せっかく教えて頂いた案ですが、本案は採用できませんでした。。。
tanat

2020/10/05 10:24

ローカルディスクの個別管理を避けるために定期的なRsyncで自動同期しましょう という話なのですが。。。
tanat

2020/10/05 10:25

まずは要件の洗い出しと優先順位の設定をされる事をお勧めします
tomoyamachan

2020/10/23 09:14

関係各位と相談の結果、EBSでの管理にすることとなりました。 教えて頂きありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問