0
1

More than 3 years have passed since last update.

radikoを止めるな!(radish on aws)

Last updated at Posted at 2020-12-25

タイトルは釣りです

概要

以下のradikoの仕様変更(実際はflash廃止による措置)により、radikoの録音ができなくなったため借り上げのレンタルVPS上で対応を試みたところ、OSがubuntu12のためか最新のffmpegが入らないということでAWSに移行することにしました

radikoの録音ができなくなったための対応(2020/12)

やったこと、できたこと、注意書き

  • AWSのECSにfargateのタスク定義を登録
  • 指定時間に上で登録したfargateのタスク定義を起動してradikoを録音する
  • 録音したm4aをS3の指定のバケットにアップロードする

利用にはAWSの使用料金が発生するため、使い終わったら必ず設定を削除しましょう(S3にできたファイルも削除すること)
録音ファイルは個人の利用範囲にとどめましょう
自分はAWSを初めて触った初心者なので質問されても正確な答えはできないと思ってます

参考

前提

  • ローカルマシンでDockerが使える
  • AWSにアカウントがある
  • S3にバケットがある
  • AWS CLIがある

手順

以下の手順を実施

  • 私のリポジトリをcloneする
  • AWSのECRにDockerイメージを登録する
  • AWSのCloudFormationを使って、ECS上にradikoの録音タスクと録音スケジュールを設定する

私のリポジトリをcloneする

cloneしてローカルにリポジトリを持ってくる

git clone https://github.com/gosshys/radish_on_aws.git

cloneしたリポジトリに移動

cd radish_on_aws

AWSのECRにDockerイメージを登録する

ECRにDockerImageのリポジトリを作成する

名前は、radish_on_awsにしました。なんでもいいです。

aws ecr create-repository --repository-name radish_on_aws

出力結果

REPOSITORY      2020-12-23T23:42:50+09:00       MUTABLE 999999999999    arn:aws:ecr:ap-northeast-1:999999999999:repository/radish_on_aws        radish_on_aws   999999999999.dkr.ecr.ap-northeast-1.amazonaws.com/radish_on_aws
IMAGESCANNINGCONFIGURATION      False

このコマンド実行後に出てくる999999999999.dkr.ecr.ap-northeast-1.amazonaws.com/radish_on_awsは、次の手順で使うので覚えておく。忘れたらAWSのECRのコンソールで確認するか、思い出す(ちなみに999999999999の部分はユーザーID)

ECRにログインする

999999999999.dkr.ecr.ap-northeast-1.amazonaws.com/radish_on_awsの部分は、上の手順でリポジトリを作成したときに出てきたURI(radish_on_awsを変えた人はそこも変わっているので注意)

aws --region ap-northeast-1 ecr get-login-password | docker login --username AWS --password-stdin 999999999999.dkr.ecr.ap-northeast-1.amazonaws.com/radish_on_aws

出力結果

Login Succeeded

Login SucceededとでてればOK

Dockerファイルをbuildする

buidしたときのイメージ名を上の手順でも使用したURIにする(999999999999の部分は変える)

docker build . -t 999999999999.dkr.ecr.ap-northeast-1.amazonaws.com/radish_on_aws

DockerImageをECRのリポジトリにpushする

(999999999999の部分は変える)

docker push 999999999999.dkr.ecr.ap-northeast-1.amazonaws.com/radish_on_aws

AWSのCloudFormationを使って、ECS上にradikoの録音タスクと録音スケジュールを設定する

CloudFormationの設定ファイルの編集

gitリポジトリのcf.yamlをviなどで編集

vi cf.yaml

編集ポイント

以下を自身の設定に変更してください

  • 9行目:S3BucketName
  • 12行目:ImageName

※あとは、176行目のcronの設定と195行目の放送局IDなどを余裕があれば編集する

CloudFormationに登録

aws cloudformation create-stack --stack-name radish-on-aws --template-body file://cf.yaml --capabilities CAPABILITY_NAMED_IAM

network設定、role、ECSクラスタの作成、fargateのタスク定義とスケジュール設定などが実行されます

※稼働確認などはAWSのコンソールから、ECSやCloudWatch、S3などを見て確認します

CloudFormationから削除

稼働確認が終わったら消す(cronが5分間隔でうごくのでほっとくと無駄な料金が発生します)

aws cloudformation delete-stack --stack-name radish-on-aws

※s3上のファイルも残ってしまうと無駄なので削除してください

その他

複数のスケジュールを登録するときは、TaskScheduleOneの部分をコピーして、TaskScheduleTwoなどとし、update-stackコマンドを叩きます

aws cloudformation update-stack --stack-name radish-on-aws --template-body file://cf.yaml --capabilities CAPABILITY_NAMED_IAM

s3からダウンロードしたファイルは、拡張子がmp3になることがあります(自分のmacの場合はそうでした)
拡張子をmp3からm4aに変えるとitunesで聴けます。

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1