AWSのAmazonLinuxで色々はまる件
nginxで簡単なサーバをデプロイするタスクで、色々とはまった
タスク
nginxでRTMP通信を受けて、別のRTMPサーバにリレーするサーバの構築
ローカルのUbuntu(WSL)ではあっさり動いたので、AWSでもすぐできると思ったが、いろいろなハマリポイントがあった
インスタンス作成から設定
テストなのでmedium程度のインスタンスを作成しセットアップ
OSに悩んだが、なれたUbuntuもいいが、AmazonLinuxにした
インバウンド、アウトバウンドを設定する
RTMPなのでTCP1935を開け、疎通確認やHLSの取得に80も開ける。sshも開ける
インストール
nginx-rtmpモジュールはnginxをビルドする必要があるので、yumで開発ライブラリを入れる
AmazonLinuxはCentOS系で、yumで入れられるものが極端に少ない&古い
そのため、速攻でEPELを有効化する
そして yumを行うがyumがエラーになる
調べてみると、AmazonLinuxはyumのパッケージリポジトリにS3を使うらしく、VPCの設定からS3の許可をする必要があった
エンドポイントすら作成してなかったので、VPCにエンドポイントを作り、S3の許可を与える
yum出来た
開発に必要なツールをyumで入れ、nginx、nginx-rtmpのソースを落として、ビルド
Ubuntu例だが、設定は同じなので。
ソースビルドして実行するもエラー
このあたりはCentOS特有のセキュリティ強いので設定をする
nginx関連のユーザやグループを設定し、ファイルやフォルダに適切に権限を与え
存在しなく怒られていたディレクトリを作成
などなど行い、やっとHTTPが動くように
そこからnginxにRTMPの設定を行うも
vimの表示が壊れたり、コピーペーストするとゴミが入ったりで苦労した
結論
CentOS系はセキュアな反面、色々とハマる