
もくじ
ECSの用語
ECR
イメージを保存するリポジトリ。AWS内部のリポジトリなのでセキュアにDockerイメージを設置できる。
クラスター(Cluster)
タスクが実行されるEC2インスタンスの集合体
サービス
- コンテナを常時起動させて、リクエストを待ち受ける
- 接続を受けてポートを動的にマッピングする
- コンテナを死活監視し、死んだら再起動をかける
- 各EC2インスタンスのコンテナをまとめて1つのサービスとしてまとめる
タスク
起動して、処理を実行して削除される。バッチジョブに使える。
マネージャ(Manager)
クラスターのリソースとタスクの状態を管理する
動的ポートマッピング
動的ポートマッピングすることで、1つのインスタンスの複数Dockerに接続できる。
Docker本番利用上の注意
immutable
- 一度起動したインスタンスに設定変更を行わない = SSHで入るような管理をしない
状態を持たないようにする
AutoScalingでの環境もそうだけれど疎結合にしておく。
- セッションをElaticache, 画像をS3などに格納する
環境変数は実行時に外部から注入させる
AWS System Managerを利用することで、SSMのパラメータストア, KMSで機密情報を暗号化した上でECSのインスタンスに環境変数を渡せる。
データベースはコンテナを使わない
- RDS, Aurora
ログは標準出力, 標準エラー出力に出す
- Cloudwatch LogsやFluentd+S3に渡す
- S3fsでS3に設置しても良い
// AWS側のアナウンスとしてS3をファイルシステムとして使うのは非推奨。私は非推奨な設計が好きではないが、運用されているWEBサービスでS3をファイルシステムとしてマウントしているが利用しているサービスがあるが特に問題が起こっていない。
Nginx, PHP-FPM, Laravelそれぞれについて、標準出力/標準エラー出力を出せる。



![[Solved] Git Pushでエラー | error: RPC failed; HTTP 400 curl 22 The requested URL returned error: 400 send-pack: unexpected disconnect while reading sideband packet Writing objects: 100% (9/9), 2.30 MiB | 4.19 MiB/s, done. Total 9 (delta 5), reused 0 (delta 0), pack-reused 0 fatal: the remote end hung up unexpectedly](https://www.yuulinux.tokyo/contents/wp-content/uploads/2024/06/GitHub-Logo-1-e1718593223403-150x150.png)