↑の続きです
ECRにリポジトリ作る
とりあえずECRにリポジトリを作りましょう
URIを控えておきましょう
ビルド
ECRにpushするDocker imageをbuildします
PS C:\Users\tetsu\dev\new_blog> docker build -t <↑で控えておいたURI>:latest . Sending build context to Docker daemon 527.4kB Step 1/7 : FROM node:12 ---> 11e92fc50c4a Step 2/7 : COPY . /strapi ---> Using cache ---> d12f81986c35 Step 3/7 : WORKDIR /strapi ---> Using cache ---> 55776038dbb7 Step 4/7 : RUN yarn ---> Using cache ---> f4e982ccbbc1 Step 5/7 : RUN yarn build ---> Using cache ---> e986f88a755d Step 6/7 : EXPOSE 8000 ---> Using cache ---> bc4357547272 Step 7/7 : CMD ["yarn", "start"] ---> Using cache ---> 3e5b72ab37a0 Successfully built 3e5b72ab37a0 Successfully tagged <↑で控えておいたURI>:latest SECURITY WARNING: You are building a Docker image from Windows against a non-Windows Docker host. All files and directories added to build context will have '-rwxr-xr-x' permissions. It is recommended to double check and reset permissions for sensitive files and directories.
ECRにpush
ECRへのログインに関しては省略します
PS C:\Users\tetsu\dev\new_blog> docker push <↑で控えておいたURI>:latest The push refers to repository [<↑で控えておいたURI>] ddcc6d87877d: Pushed e16bf0fde55b: Pushed 9b567c0e90e9: Pushed 16bf97960ee7: Pushed 190990e6fae4: Pushed e44afd48b6d5: Pushed 799e7111d6d4: Pushed a72a7e555fe1: Pushed b8f8aeff56a8: Pushed 687890749166: Pushed 2f77733e9824: Pushed 97041f29baff: Pushed latest: digest: sha256:9daa204795d9930d14f189041a05f8a355623b4684048fef7ff95db827b79f7d size: 2850
ちゃんとpushされてる
ECSでタスク作成
FARGATEで作ろう
設定はこんな感じ
できた
クラスター作成
fargateで
できた
タスク実行
アラートが出るのでswitch to launch typeでfargateに
VPCはデフォルトで、サブネットは適当に付けちゃいます
セキュリティグループはtcpの1337ポートを開けときましょう
パブリックIPの自動割当はとりあえずENABLED
起動しました
pendingからrunningに変わるまで待つ
runningになったのでpublic ipにアクセスしてみましょう
起動しています
これだと失敗っぽく見えちゃうので管理画面にもアクセスしてみる
うまくいってる
まとめと課題
- 簡単にECSでstrapiのコンテナを実行することができた
- DBだとかの設定には環境変数の変更が必要(タスクの定義で変えられる)
- CI/CDにはもうひと工夫必要(commit hashとってきてタスク定義を更新するとか)
長々とECSについて書きましたが、最近はEKSやGKEなどのk8s活用にも力を入れているので、そのうちk8sでも構築してみたいですね
RITでは、様々な技術を活用してクライアントや自社サービスを作り上げることに興味のあるエンジニアを募集しています!