行く記憶の流れは絶えずして

戻ってこないのでメモするところ

terraformでec2インスタンスを使用したecs作成

codebuild使いたい

→コンテナビルドしたい

→codedeployでデプロイしたい

→デプロイ先のecsクラスタ作るか

 

という流れで3週間分の週末を犠牲にしている

gotoしたかったなあ

 

 

 

色々調べた最安構成

以下の流れで運用できるコンテナは一つなので全く有用性はない

常時稼働でなければfargateのほうが遥かに有用

  • t3.nanoを使用
  • ALBは$18/monthなので絶対に使いたくない
  • サービスディスカバリを見つける、プライベートなドメインならroute53の基本料金の$0.5/monthで済む
  • サービスディスカバリならネットワークはawsvpc必須
  • そうなると各コンテナにIPが振られることになる
  • t3.nanoのeni制限は2、1つはインスタンス自身が使用
  • 残り1
  • サービスディスカバリを普及させたいのかeni制限が緩和されたが高額インスタンスのみ
  • t3.nano + 30GB EBS(クラスタ構成要件下限) + route53 = $5.0 + $3.6 + $0.5 = $9.1

そもそもec2がecsクラスタに紐づかない

いろんなサイトからつぎはぎHCLを作成してそれっぽいものができる

vpc系を最初にやっておいてよかった、つぶしが効く

でapplyも問題なく終わるがecsクラスタにec2が紐づいてくれない

サービスがないとec2は必要ないから紐づかないの?とか独自の理論を考え出す

つぎはぎをいろいろいじってみるが進展せず

 

メモ

Error: error creating capacity provider: ClientException: ECS Service Linked Role does not exist. Please create a Service linked role for ECS and try again.

 最初のうちはエラーが出るが、これはサービスロールがないと言っている

そのサービスをいじるにあたっての権限詰め合わせみたいなもの

初回のecsクラスタ作成が成功するタイミングで生成されるっぽい

コンソール上で空のecsクラスタを作ればいい

 

中で何が起こっているか見るか

2週間経過

プライベートなvpcなのでssmAgentを使ってみようと考える

agentはイメージに入っているのでIAMにそれ用ポリシーをアタッチするだけのはず

だが動かず

じゃあパブリックIPつけてsshログインしてやる

 

意外!それはパブリックIP!

パブリックIPをつけてsgでインバウンドガバガバにしたら普通にecsクラスタに紐づく

ssmAgentも使える、ブラウザからログインできる

ついでにsg間違えててインバウンドは相変わらず全部遮断なのに気づく

・・・グローバルIPがあればよかったのか?

 

とりあえず

そこそこに整理してlobotomyやりましょ

ここしばらくゲームしてなかった

残りはroute53、codedeploy(サービスディスカバリ、サービスとタスク定義)