- 新しい順
- 投票が多い順
- コメントが多い順
実際に検証してはいないですが、案だけ出してみます。 githubから自動デプロイしたいとのことなので、簡素なCI/CDパイプラインみたいなものが必要になりそうです。 codepipelineを使いたくなりますが、codepipelineは基本的に特定の「固定の」リポジトリをソースにするものなので、ユーザーごとにgithubURLが異なってくる今回のケースでは都度都度パイプラインを作成する必要が出てきそうなので大変そうです。
githubリポジトリはパブリックになっているものとして、アプリケーションで「公開」ボタンを押されたときに対象githubリポジトリのURLをdynamoDB等に格納、dynamoDBストリームを使ってlambdaを呼び出しlambdaからcodebuildを起動、buildspec.yml内でdynamoDBからgithubリポジトリURL取得、git clone、docker build, ECRへのpushを行い、ECRへのpushまでが完了したことをEventbridge等で検知して、lambdaを使って、ecsタスク及びecsサービスを作成・・みたいなことをすれば可能かもしれません。
PHPなら、aws SDK for PHPを使ってdynamoDBへの書き込みをすることになるでしょう。 https://docs.aws.amazon.com/aws-sdk-php/v3/api/
上記のやり方で実現できるかもしれませんが、そもそも本当にアプリケーションからECSサービスを立ち上げる必要があるのかといった点は検討したほうがよろしいかと思います。作成されようとしているサービスの性質がインターネットに公開するようなパブリックなものであれば、他人がいくらでもあなたのAWSリソースを使えるということになりかねないですし、社内利用を想定したプライベートなものであれば、こんな大掛かりな仕組みが必要なのかは疑問です。 以上、よろしくお願いします。
関連するコンテンツ
- 質問済み 2年前
- AWS公式更新しました 1年前