yikegaya’s blog

仕事関連(Webエンジニア)と資産運用について書いてます

ECS

Gitlab CIからのECSデプロイ

GItlabでコード管理してAWS ECSでインフラを構築しているプロジェクトのCI/CDを業務で作った。その中でデプロイについて考えたこと書いてみる。 AWS ECSのデプロイについてググるとAWS Codeシリーズを使ったCI/CDの構築方法がよく出てくるが、、コード管理に…

ECS接続用のシェルスクリプトを書いた

ECSで動かしてるFageteにECS Execで入りたい場面がちょくちょくあるんだけど毎回クラスタ名とタスクID、コンテナ名を貼り付けてコマンドを作るのが面倒だった aws ecs execute-command \ --cluster <クラスタ名> \ --task <タスクID> \ --container <コン…

Railsデプロイ時の認証周りの対応メモ

最近新規で作ったRailsサービスのデプロイ作業してたら認証周りの対応が地味に面倒だったので対応メモ。 前提 JWTで認証するREST APIを提供するRailsサービス Railsのバージョンは6.1.4 AWS ECS上のコンテナで稼働 RailsはPumaで起動してNginxとsocket通信さ…

ECS環境で504Gatewayエラーに軽くハマった

ECS環境構築用のterraformの設定値を変数に切り出す作業をしてたんだけど、504Gatewayエラーが出るようになって軽くハマったのでメモ。 調べたところこの記事の内容とほぼ同じ事象だったらしくVPCのCIDRブロックを変数に切り出した際にセキュリティグループ…

Rails+ECS環境でのassets:precompileのタイミング

ECS環境でRailsを動かす時にassets:precompileを実行するタイミングとして、最初とりあえずコンテナ起動時に実行してたのを、Dockerイメージをbuildする時に実行するように変更したんだけど割と面倒だったのでメモ。 configパス以下を読んでいるらしくconfig…

RailsのECS環境を構築した時のエラー対応振り返り

Rails製のサービスを動かすECS環境をterraformで構築したんだけど結構苦労したんでハマったところ振り返ってみる。 一度Goで作ったAPIをECSで動かしたことはあったんだけどその時には踏まなかった地雷も結構踏んでしんどかった。 前提 現状EC2で稼働している…

効率よくaws ecs execute-commandを実行する

ECS

aws ecs execute-commandを使うとECSで動いているコンテナのシェルを操作できるんだけど実行にはタスクIDを取得する必要がある。 そのタスクIDはAWSの管理画面かaws ecs describe-tasksで確認できるんだけどいちいち確認してターミナルにコピペするのが面倒…

terraformでRDSに接続するAPIサーバをECSにデプロイする

terraformでGoのAPIを動かすECSを作ろうとした時、DBの接続で結構手こずった。 初回のterraform実行でRDS構築してさらにECR(コンテナのレジストリ)からdockerイメージをpullしてECS内にコンテナを立ち上げるんだけど、その時に以下の2点がうまくできずに…

ECS環境に必要な最小限のリソース

ECS用のterraform思っていろいろ調べたりいじったりしてみたんだけど、AWSのいろんなサービスと絡んでいて最低限必要なリソースがよくわからないのでまとめてみる。 とりあえずterraformでECS環境構築してnginxにブラウザからアクセスできるところまでやって…