php_modが非推奨になったのね

昔のバージョンのphp環境でphpバージョンを上げるという対応中。 apache + PHP8のインスタンスを構築してドキュメントルートまで到達を確認。 対応する人にドキュメントルートまで到達するからプロジェクトのファイルを置いてバージョンアップのエラーを確認してもらうため依頼しましたが HTTP 503 Service Unavailable のエラーが出ているとのこと。 HTMLファイルはアクセスできているからPHPの実行ができていないと思い調べると Apache HTTP サーバーで使用するために PHP に提供されている mod_php モジュールが非推奨になりました。 php-fpmをインストールして起動し、リクエストを流してphp-fmpでphpを実行するようにして解決。 しばらくPHPを触っていなかったのでモジュールが非推奨になったことに気づかずでした。

AWS EFSに切り替える

s3fsからEFSに切り替えを行いました

先日、s3fsが意図せずにマウントが外れており、短期的にマウントが外れていないかチェックをして、外れている場合は再度マウントする定期実行処理を作りました。

AWSのS3バケットをマウントするs3fsでマウントが外れた件

というところで、長期的な対応はどうするかなと思って調べていたら、『無理してs3fsとか使わなくてもEFSってAWSのサービスがあるからそっち使えば?』みたいな記事を発見しました。

なんと。。。

ということでこれが使えるか調査。

普通にマウントできますね。

しかも同じVPCからのアクセスに絞れたりするので安心な面も

デメリットとしては、s3より料金が高いことのようです。
2020/02/07時点 アジアパシフィック東京

標準ストレージクラス   0.36USD/GB 月額
低頻度アクセスストレージ 0.072USD/GB 月額

低頻度アクセスリクエスト  0.012USD 転送GB

プロビジョニングスループット 7.2USD MB/秒 月額


アクセス数と容量を加味した料金比較(ミニマム版)

S3は
最初の50TB 0.025USD/GB 月額
ファイル転送を考慮せずあくまでアクセスに絞るとGETのみとし
GET・SELECT、他の全てのリクエスト
1000リクエストあたり 0.00037USD
インターネット転送が 9.999TB以内程度と想定して 0.114USD/GB 月額

が計算するに、ストレージ料金は確かにS3の方が格段に安いですが、リクエスト数と転送量を加味するとEFSの方が安いのでは?っと思ってしまいました。
多分、参考にしたサイトがストレージ料金でしたみていなかったのかもしれませんし、私の扱っているシステムが要領の観点で少ないからだと思います。

それぞれの用途により金額は変わるのでシミュレーションをしてどちらをどのように使うかを決めればいいと思います。

EFSを作成していきます。

新規作成

まずはEFSのメニューから【ファイルシステムの作成】を選択します。

AWS EFS ファイルシステムの作成

ネットワークアクセスを設定

次にネットワークアクセスを設定します。特に新規でお試しなどであれば初めから選択されているデフォルトでいいかと思います。
今回は既存システムで作成されたVPCでしたので、それを選択しました。(キャプチャはデフォルト選択ですが。)

マウントターゲットの作成は、デフォルトを選択していればそのままでいいと思います。
実際の作成時はVPCを切り替えたのでアベイラビリティーゾーンや自動でサブネットが切り替わります。セキュリティーグループは既存でマッチするグループがあればそれを、なければデフォルトで作成するのでそのままでいいと思います。

AWS EFS ネットワークを作成する


ファイルシステムの作成

次にファイルシステムの設定を行います。
タグについてはご自由にって感じです。私はプロジェクトと環境用途を基本的には設定しています。

  • ライフサイクル管理の有効化

ありにすると、一定期間アクセスのないファイルについて自動でて低頻度アクセスのストレージに移動するようになります。無しにするとスタンダードストレージクラスを使います。低頻度アクセスストレージクラス(IAストレージクラス)は何が違うかというと、先頭バイトのレイテンシーが長い点です。(レイテンシーとは要求に対するレスポンス)
まぁそんなにアクセスされないなら重要度の低いページや素材ということで私はありに設定しました。
IAストレージクラスの方がコストは安くなります。

  • スループットモードの選択

バーストスループットとプロビジョニングスループットがあり、バーストスループットはスタンダードストレージクラス容量により上昇する。一定期間ないのスループットレベルのバーストが許可されている。一方プロビジョニングモードはバーストスループットで許容している以上の用件の場合に使用するらしいです。
とりあえず、バーストスループットモードを使って消費クレジットを確認して様子を見ればいいとお思います。

  • パフォーマンスモードの選択

これは汎用を選択、最大I/Oは結構なアクセスのシステムに向いているみたいです。
これも汎用を選んで運用でチェックしながらですね。


  • 暗号化の有効化

その名の通り暗号化です。
ファイルシステムのデータを暗号化します。
今回はパブリックなデータでしたのでチェックはしませんでした。
AWS EFS ファイルシステムの設定

クライアントアクセスを設定

次にクライアントアクセスを設定しますが、S3のバケットアクセスのようなコントロールができるらしいのですが、今回はノーチェックで進めます。

AWS EFS クライアントアクセスを設定
これで確認画面で【ファイルシステムの作成】を押せば完了ですが、これはEFSの作成までになりEC2のディレクトリにマウントするには一つやらなければいけないことがありました。
AWS EFS 確認画面

こちらが、今作成したファイルシステムを一覧からみて詳細のマウントターゲットですが、さっき作成したセキュリティーグループが紐づいてます。
EFS 詳細 マウントターゲット
このセキュリティーグループにマウントしたいEC2のインスタンスに設定しているセキュリティグループを設定する必要がありました。
EC2のメニューから、ネットワーク&セキュリティにあるセキュリティグループを選択します。
そして先ほどのマウントターゲットのセキュリティーグループIDで検索して、インバウンドにEC2に設定しているセキュリティグループを設定します。

EFS EC2のディレクトリにマウントする
下段のNFS TCP 2049 ソース(EC2のセキュリティグループ)

そうしたら、EC2インスタンスにログインしてからのディレクトリを作成。
あとは簡単です。EFSの対象ファイルシステムを選択して詳細にあるこちらからAmazon EC2のマウント手順(ローカルVPCから)をクリックします。

私はEFSマウントヘルパーをインストースしましたのでマウントは以下のコマンドでできました。

sudo mount -t efs fs-000000:/ mount_dir

これでマウントできました。

次はインスタンスリスタートでも自動でマウントされているように設定したいと思います。

コメント

このブログの人気の投稿

nginxで画像が表示されない。。

AWSのS3バケットをマウントするs3fsでマウントが外れた件

CakePHP3でHTTPSにする