概要
- ECSについてのまとまった記載と、AWSの知識ほぼなしといったことから、大苦戦したことをまとめる
初めに
-
これを参考に、IAMユーザーを作成した
- 付与すべきロールが行方不明である↓ロールに関するdoc
- https://docs.aws.amazon.com/ja_jp/AmazonECR/latest/userguide/security-iam-awsmanpol.html
-
また、今回はEC2を利用するため、
EC2のインスタンスを作成し、Keyも併せて作成した- 記述を見る限り、インスタンスはなしで、単純にKeyだけを作成するでもよさそうである
-
最後に流れに従い、AWS CLIをインストールすることにした
チュートリアルの404
ここにあった、docを参考にチュートリアルを見に行ったところ、チュートリアルのDocに関してはリンクが切れており、404となってしまっている。
↓↓↓↓↓↓↓↓↓↓ 悲しみのチュートリアル ↓↓↓↓↓↓↓↓↓↓↓↓
ECRにどっか―イメージをプッシュするらしい
前提条件
- 必要な権限を所持したIAMユーザーの準備が完了している
- EC2(アクセスできる環境なら何でも)にDockerをインストールしている
- AWS CLIがインストールされている
Docker イメージを作成する(イメージがあればスキップしてよし!!)
すっごい雑にまとめると、docker imageをEC2上で作成しているだけ
ECRにイメージをプッシュするっぽい
- そのために、IAMユーザーが必要であるがどうやら先ほど作成したIAMユーザーでは適切ではないようなので、↓のサイトを参考に作り直すことにする
これだと、IAMユーザーに対して、作成時に、AWS CLIのアクセスキーなどを取得しているが、現在のUIでは作成後にIAM>ユーザー>[ユーザ名]
のセキュリティ認証情報>アクセスキー
から作成することができる
後は手順通りに行うことで、AWS CLIのセットアップが完了する
STEP1 ECRにレジストリを作成する
初めに、イメージを保存する用のレジストリを作成する
この状態では空である
aws ecr create-repository --repository-name XXXXXXX --region ap-northeast-1
XXXXXXXにレジストリ名を入れることで、作成することが可能
C:\Users\hoge>aws ecr create-repository --repository-name XXXXXXX --region ap-northeast-1
{
"repository": {
"repositoryArn": "arn:aws:ecr:ap-northeast-1:XXXXXXXXXXXX:repository/XXXXXXX",
"registryId": "XXXXXXXXXXXX",
"repositoryName": "financial-details-app",
"repositoryUri": "XXXXXXXXXXXX.dkr.ecr.ap-northeast-1.amazonaws.com/XXXXXXX",
"createdAt": "2024-01-06T20:31:22+09:00",
"imageTagMutability": "MUTABLE",
"imageScanningConfiguration": {
"scanOnPush": false
},
"encryptionConfiguration": {
"encryptionType": "AES256"
}
}
}
STEP2 タグをつける
今回自分のつまりポイントでした!!!
docker tagをつける必要があったのですが、doker composeの設定もれで、buildしたimageにレポジトリ名がついていなかったことで、tagをつけることができていませんでした。
docker compose で作成している方は、
db:
image: financial_app_db
のように,
image名を指定するようにしてください
そうすると、
# [repositoryUri]に関しては先ほどのjsonの対応するURIに置き換えてください。
docker tag financial_app_db [repositoryUri]
タグをつけ終わった後は、次のコマンドを打ってLoginするようにしてください。
# [region][aws_account_id]に関しても適宜置き換えてください。
aws ecr get-login-password --region [region] | docker login --username AWS --password-stdin [aws_account_id].dkr.ecr.[region].amazonaws.com
最後にpushをすると、指定したAWS ESRレポジトリに登録されるようです。
docker push [repositoryUri]
試しの場合は、ここでストップしないとイメージストレージに課金されてしまう
aws ecr delete-repository --repository-name [repository-name] --region region --force
Amazon EC2 で Windows を使用してコンソールを開始する
前提条件
- ECSのセットアップのステップが完了している
- IAMユーザーに、
AdministratorAccess
か初回実行権限がついている
ステップ 1: クラスターを作成する
クラスターの作成は、文字を読めば行ける
しかし、タスク定義に関して不明点が多すぎる。かつ、サービスにEC2が登録されない
本日中にデプロイする必要があるため、普通のEC2にいったんDockerをいれることにする
来月また改めてデプロイする予定なので、それまでに調べなおす