CodeCatalyst or GitLab / Terraform CICD パイプライン
CodeCommit代替案
CodeCatalyst(あとGitLab/EC2も)を検討中
CodeCommit の代わりに、Amazon CodeCatalyst、GitLab、GitHub、またはお好みのサードパーティソースプロバイダーの使用を検討してください。
単にCodeCommitはAWS内の代替になるものだとおもってたけど、Builders IDから使う感じで、CodePipelineとかBuildも不要で動かせるっぽい。AWSアカウント内のリソースじゃないと絶対だめだよっていうならGitLab/EC2になりそう。
CodeCatalyst
※東京リージョンにないけど、リソースのデプロイは問題なく東京にできる どう影響するか
planまで完了(planに5分くらいかかった) GitHub/GItHubActionsのAWS版という感じ
もうこっちに移行するという意図でCodeCommitが使えなくなった理由がわかった気がした。ただAWSアカウント外になるので、企業によって導入のハードルはあがるかもしれない。その場合のは前述の通りGitLab/EC2になると思う。
※一応applyも確認しておく。実用性までみたいので、プルリクでplan、マージでapplyまでやりたい。
プルリクでplan / マージでapply
動作確認OK
- Pull request で plan
- pushでapply(トリガーにmergeのみは存在しない)
クロスアカウント
未検証だけど、アカウントと環境の項目があるのでそこいれれば普通に実現できそう。時間とれればやる。
GitLab
EC2かECS(EKS)かとおもってたらEC2でやるのが一般的なもよう。EC2でやってみる。
構築
- ディスクサイズ8GBだとたりなかった。20GBにしておくとよい。
Codepipelineへの接続(証明書とか)
接続するにあたってドメインとって正しい証明書の設定が必要だった(IPだけでは不可)
①ドメインとってElasticIPと紐付け→GitlabのURLにhttpsとして書き込む
②Codeシリーズの画面からいける設定→接続→ホスト作成/接続のホスト作成でURLを登録後、Gitlabのaccess tokensを取得して登録→その後「接続」の設定を行いようやくCodePipelineで利用可能(利用可能の表示が2つでること)
pipeline applyまでいけた
※その他参考
AWS内部通信だけでいけないか確認
無理だった(ちょっとおしかった)
SGでインバウンドをhttps/自分のIPに制限
git push→gitlab→codepipelineで検知 まではいけたものの、そこから先にはいけず
つまり以下のような通信がされていることが想定される
① CodePipelineからGitLabへのポーリングだけの通信はAWS内部で通信
② その先のコード取り込みは外部経路を使った通信になる
フローログとったらCodeConnectionsからの接続に使われるIPリスト、52.196.132.231, 54.95.133.227, 18.181.13.91 からアクセスがあった
VPC経由の接続使ったら内部通信だけ完結するのだろうか?
→やってみたけど、経由用VPCたてるとこまでで一旦じかんぎれ
これやらないとだめだった
NS 解決の有効化と DNS ホスト名の有効化が true
登壇してきた
2024/11/14 HashiTalks: Japan
資料
※メモ 録画されるなんてあんまりないから見返したけど、みんなより声のボリュームが小さかった オンライン(会議とかも)だといつもこんな感じだから、オンラインのときもスイッチいれてオフラインのときみたいに話そう