投稿

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のインスタンス起動時の自動マウント

AWS EFSのインスタンス起動時に自動マウント 前回の続きです。 前回はs3fsを利用していたら勝手にマウントが解除され、イメージが表示されなくなっていたというトラブルを受けて、EFSに切り替えるところまでやりました。 前回 AWS EFSに切り替える しかしこれだと何かのトラブルでインスタンスを再起動した場合に、作業者以外ができない、コマンドを知らないなどで2次災害が起こらないとも言えません。 ですので、基本的にインスタンスをコピーをしたりしてもマウントされているように自動でマウントをするようにしたいわけです。 そもそもですが、ディレクトリをNFSへマウントしなくてもいいじゃん? って思うかもしれません。 なぜやるか?というところでいうと 複数台あるサーバーで同じものを参照させたいからというところが大きい理由です。 手法としていはいろいろあって 共有できるサーバーを用意して全てのアプリケーションサーバーはそこに保存・参照 s3に保存し、SDKなどを使いプログラムから参照 s3に保存して、パブリックURLで参照 どっかのサーバに保存する際、全てのサーバに配信 などなど。 ちなみに全てやったことあります。4は現在の世の中ではありえない気がしていますが。。。 化石の知識😅 よくイメージサーバー作ってなんてことしてたっけ昔。。 そんなサーバーの構築しないで、マウントすればプログラムで意識しなくても保存や、同じファイル参照できるよってのがディレクトリをマウントするメリットかなって思います。 ということで話は長くなりましたが、インスタンス起動時に自動でマウントするやり方はとっても簡単でした。 sudo vim /etc/fstab 追記>> fs-*******:/nfs_dir /mount_dir efs defaults,_netdev 0 0 これを記載すればインスタンスを再起動してもマウントされています。 同じ環境でオートスケールするなんて時も記載しておかないと、マウントされていないと思うので、これで負荷がかかった時の準備もできたかな。 次回はEFSのオプションについてメモっときます。

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のメニューから【ファイルシステムの作成】を選択します。 ネットワークアクセスを設定 次にネットワークアクセスを設定します。特に新規でお試しなどであ...

PHPプロジェクト構築する時にいつもcomposerのインストールではまる件

PHPのcomposerをインストールする際に参考にするもの だいたいインストールする時にGoogleさんで検索します 例えばこんな感じで php composer インストール しかしヒットするのはおおよそブログ記事だったりします。 でもその通りにやってもだいたいすんなりとインストールすることができなかったりする場合があります。 原因は php -r "if (hash_file('sha384', 'composer-setup.php') === '*********') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;" *の部分が記事の記載当時そのままの場合があるのです。 こういったものは個人の備忘録だったりするので、こうやったらできるんだとコピペしていくとなんで?っとなります。 しかし、よくみるとIF文のelseに処理が入っていて、 echo 'Installer corrupt'; が出力され composer-setup.phpがなくなっています。 *の比較はなんなんだ!! って結局なるので 素直に最初から公式サイトを見てしまえばいいんだってことを言いたいだけです😆 composer公式 インストール方法を解説とかいうブログより真先にここをみるべし!! 普通にわかりやすいし確実です!!

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

s3fsでマウントが外れた件のお話し ネットで検索すると予期せずマウントが外れたなんて記事を見かけてて そんなことあるの〜?? うちは大丈夫でしょ! なんて鷹を括っていましたが なんと起きてしまいました。。。 しかも本番で… まぁ起きてしまったことはしょうがない。。 一応発生した時に再マウントしようとするとエラーがでますのでそれも参考に備忘録しておきます。 発生 A:すいません今大丈夫ですか?? 私:ええよ〜 A:なんか画像が表示されないんです。 私:大丈夫ですか言っとる場合やないやん!! ということで事象の認知がされました。しかも本番です。 インスタンスにログインして確認するとこんな感じです。 ※うちは大量のユーザーごとに登録するイメージファイルをイメージディレクトリとS3バケットをマウントすることでEC2のイメージボリュームを抑えるようにしていました。 # cd /image_dir # ls -a # イメージが入ってなぁーい!! AWSのコンソールからS3のバケットを見るとイメージはある ということでマウントされているかの確認 # df -h df: `/image_dir': 通信端点が接続されていません 通信端点が接続されてないってどういうこと? と思いながらマウントを試みる # s3fs bucket-name /image_dir -o allow_other,use_cache=/tmp,uid=48,gid=48,passwd_file=/etc/passwd-s3fs s3fs: unable to access MOUNTPOINT /image_dir: Transport endpoint is not connected ※uid,gidはアパッチ操作なのでそのIDです。 エンドポイントと接続できないと。。。 なんだかこれが出る理由はいろいろあるらしいのですが、意図せずマウントが外れているがNFSではマウントしている情報が残ったりのようなことだったりいろいろ。。。 今まで見てきた記事によるとマウントできない場合は 一度アンマウントしてからマウントすれば成功するよ!! ってことなので、一度アンマウントし...

S3マウントできない事象(s3fs)

s3fsでマウントできない事象が発生 前提として今回は、新規ディレクトリに作成したバケットをマウントしようとした際に出た事象の記事です。 とある作業をしていたメンバーからいつものコマンドでS3のバケットとマウントできないんですと問い合わせがありました。 マウントを実行するシェルコマンドはエラーもなく実行されているんですが # sudo ./mount.sh user Password 4 sudo: #  てな感じで終了しています。 手順通りだとマウントされているかの確認のため # df -h  s3fs             256T     0  256T    0% /var/www/html/webroot/img みたいに確認するのでですがその際に以下のエラーが出ました。 df: `/var/www/html/html/webroot/img': 通信端点が接続されていません 特に検索しても同様の事象はumountしてマウントしなおせばできるよって記事はありましたが今回は新規なので該当しません。 私も初めての事象でしたが、以前に何かのきっかけでこちらの記事をみていたのでもしかしてと思いました。 s3fs の利用者はいますぐバージョンを確認しないと使えなくなるかも?! 利用していたバージョンは(1.78)でした。 そこでバージョンを上げてみようと思い対応。 以前は、ソースからmake && make install をしていたんですが、yumリポジトリから普通に取れるじゃんって思い普通に # sudo yum install s3fs-fuse でインストール これでmount.shを実行したらうまくいきました。 うまくいっていないところからこれだけ対応してマウントできるようになったので原因はこれかと思います。 今回は新規の場合にマウントできませんでしたがすでにマウントしてあるディレクトリができなくなったという記事がほとんどでしたのでこちらもしかするともう一度マウントしなおさないといけないかもしれません。 こわ...

nginxでaccess.logにアクセスユーザーの識別子を出す

nginxでaccess.logにアクセスユーザーの識別子を出すように設定 環境について OS:debien ※これは設定ファイルの場所の違い等があるかもしれないがそれ以外はどれでも同じ nginx: 1.17.6 言語: Go 1.11.2 基本的にはこちらを参考にしています。 nginxのアクセスログにユーザーIDを記録する方法 結構以前のものですがそのまま使えてます。助かりました。 まずはnginxの設定から vim /etc/nginx/nginx.conf こちらのログフォーマットを追加 > log_format sample-log '$remote_addr - $remote_user [$time_local] "$request" ' > '$status $body_bytes_sent "$http_referer" ' > '"$http_user_agent" "$http_x_forwarded_for" ' > '$upstream_http_x_user_id'; #該当アクセスログの出力設定に追加したログフォーマットを指定する > access_log /var/log/nginx/access.log sample-log; こちらを追加して、実行しているプログラムなりからHeader情報X-user-Idを追加することになります。 今回はGo言語だったので、IDが取れるのは各認証が必要なAPIは 認証関数が実行され、そこでIDが取得されるのでこちらに以下を記載 w.Header().Set("X-User-ID", fmt.Sprintf("%d", Id))/code> w関数の引数で受け取っている w http.ResponseWriter これで nginx -s reload でアクセスログの最後にアクセスユーザーI...

仕事観記事メモ ヤマハ社長

JCBザ・プレミアム12月号よりヤマハ株式会社 中田卓也代表取締役社長 私が普段利用しているJALのJCBカード 毎月JCBザ・プレミアムが送られてくるんだが、普段全く流し見くらいしかしていなかったんですが、最近ビジネス観というところに興味があり目が止まったのが、 『逆転のセオリー』 と題して、 ヤマハ株式会社の中田卓也社長のインタビューページ が目に止まった。 普段も意識している言葉だったりするんだが、成功している人が同じことを言っていると発言はとても響く。 というか意識しているが実践できていないんだろうな。。 冊子とでも言うのだろうか、冊子自体は廃棄してしまうが印象に残ることは記憶に留めたい。なのでメモを残すことに。 以下は抜粋した個人メモになります。多少要約している部分もあり原文そのままをコピーしているわけではありません。 やれることと、やらないことの判断をすること。 やれるからやるのではなく、この商品に必要なことはやる。 逆に、不必要なことは切る。 その取捨選択が大事。 その見極めが企画する人間の勘どころです。 特に今の会社でこれができていなく身に染みた。 上司には捨てなければならないことの話をしているが、実行できていないのは上層部の責任だと思っていた。しかし私の力不足もある、説得力不足もあると思った。 ただ、一人でできる限界もあることは事実。 その時の対処法を私が知らないんだと思う。 平社員だった中田氏はヒットしたQY10の企画後もリーダーとして新たな提案を重ねるが 管理職たちは時に黙っていなかった。 提案はいいが、一体誰が責任を取るのか・・・。 →私が責任をとります。 私が取る、と言い切れば、それならいいよとなった。 でもやるからには、やり切るために必要なことを全てやるという信念と使命感があった。 責任をとると思っている人は多々いると思う。 私もそう思って仕事をしている。 しかし、必要なことを全てやっているのか? そう言われると妥協や自分の思い込みの範囲で動いていると思う。 信念と使命感は自分なりにで妥協があるんだと思う。 これが成功者と一般人との違いなんだと思う。 事業部合併の経験を経て この組織再編のをきっかけに組織は決め事であるとの確信を得た...