Closed kokoichi206 closed 2 years ago
Kubernetes で動かすにあたり、docker ファイルにして輸送できるようにする。 また、AWS のサービスである Amazon Elastic Container Registry (ECR) を使う。
develop へマージされた時に、github actions を使ってコンテナイメージを deploy させたい
deploy 時には api のコンテナと RDS が別で立つイメージだが、ローカルでの実行時のために docker-compose を用意した。 database のビルドの方が api のビルドよりも先に行われて欲しいが、api 起動直後にマイグレ等を行いたい場合は、起動だけではなく、通信可能な状態になっていてほしい、ということがある。 今回はその用途として wait-for を使わせていただく。
開発環境と同等バージョンの PostgreSQL 12 を、無料利用枠のテンプレートで作成。 ユーザー名はもはや ubuntu ではないが、ラズパイでの運用時に合わせてそのままにしておく。
app.env
で使用する設定値を決めているが、コンテナとして deploy するとき(運用するとき)は違う db(今回作成した RDS )を使いたい。
漏らしたくない情報もあるため既存のファイルを書き換えるのではなく aws secrets に保存し、github actions での deploy 時に書き換える方針にする
aws ecr get-login-password | docker login --username AWS --password-stdin 835008509196.dkr.ecr.ap-northeast-1.amazonaws.com
brew install k9s
k9s
# exit
ESC -> quit
# k9s 入った後
deploy, service
clusterissuer, secrets, certificaterequest, service, ingress, pod,
kubectl apply -f eks/deployment.yaml
> deployment.apps/simple-bank-api-deployment created
# 新しいノードグループを登録する
aws eks update-kubeconfig --name sakamichi --region ap-northeast-1
# コンテキストを切り替える
kubectl config use-context arn:aws:eks:ap-northeast-1:835008509196:cluster/sakamichi
pod は生成消滅があるため、その点不安定。 それを解消したい。
curl http://a9134df4f8408426487a00599c9fd1c5-895910160.ap-northeast-1.elb.amazonaws.com/members\?gn\=nogizaka\&key\=e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855
{"members":[{"user_id":1,"user_name":"秋元 真夏","birthday":"1993年8月20日","height":"154cm","blood_type":"B型","generation":"1期生","blog_url":...
a9134df4f8408426487a00599c9fd1c5-895910160.ap-northeast-1.elb.amazonaws.com
と非常に長い
aws? gcp? azure ? など
特に料金的な違いはなさそう。 今回何が要求されてるわけでもないので(aws の資格を取ってしまったので)、aws を使う。 また、kubernetes に触れてみたいので、eks を使う。
そのほか
関連: #28