The spiciness of Amplify Gen 2: CloudFormation

Amplify Gen 2 ( Amplify ) について。

ここ数日悩まされてきたことについて記載する。

## tl;dr
- 1 つの方法で解決できず、エラー内容を見ながら、次の方法を探すと言う感じで解決した。
- Ampify は最近 GA されたばかりのサービスで、未知の障害があることは想定されていた。
- サポートも有効な回答を持ち合わせておらず、誰に頼るわけでもなく、自分でどうにかしなければならないため、非常に辛い。

## 突然 deploy できなくなる
- 事象
    - Amplify Console からアプリを新しく作成した。`backend.ts` の変更はない。
    - `npx ampx pipeline-deploy` の実行が失敗。
    - アプリの再作成や CodeBuild の再設定でも効果なし。
- 原因
    - 不明。
- 対処方法
    1. CloudFormation スタックの `CDKToolkit` を削除。 [^2]
    1. S3 から `cdk-hnb659fds-assets-MY_ACCOUNT_ID-MY_REGION` を削除。 [^2]
    1. ECR から `cdk-hnb659fds-container-assets-MY_ACCOUNT_ID-MY_REGION` を削除。
    1. CloudShell を使用して、スタック `CDKToolkit` を手動で更新。 [^3] [^1]

```bash: CodeBuild
[DEBUG] 2024-07-03T02:55:17.599Z: CloudFormationDeploymentError: The CloudFormation deployment has failed.
    at CdkErrorMapper.getAmplifyError (file:///codebuild/output/src1576062997/src/github.com/myorg/sample-app/node_modules/@aws-amplify/backend-deployer/lib/cdk_error_mapper.js:39:19)
    at CDKDeployer.tryInvokeCdk (file:///codebuild/output/src1576062997/src/github.com/myorg/sample-app/node_modules/@aws-amplify/backend-deployer/lib/cdk_deployer.js:166:39)
    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
    at async CDKDeployer.deploy (file:///codebuild/output/src1576062997/src/github.com/myorg/sample-app/node_modules/@aws-amplify/backend-deployer/lib/cdk_deployer.js:63:30)
    at async Object.handler (file:///codebuild/output/src1576062997/src/github.com/myorg/sample-app/node_modules/@aws-amplify/backend-cli/lib/commands/pipeline-deploy/pipeline_deploy_command.js:41:9)
[DEBUG] 2024-07-03T02:55:17.599Z: Error: ❌ Deployment failed: Error: Failed to publish asset c5839853d1235553bec66df2f4f850090e151c312cacd1c076d2ead4371423f7:current_account-current_region
```

```bash: CodeBuild
amplify-zzzzzzzz-HOGE423-branch-xxxxxxxx: creating CloudFormation changeset...
[DEBUG] 2024-07-03T23:47:03.910Z: 
 ❌  amplify-zzzzzzzz-HOGE423-branch-xxxxxxxx failed: Error [ValidationError]: Stack:arn:aws:cloudformation:ap-northeast-1:999999999999:stack/amplify-zzzzzzzz-HOGE423-branch-xxxxxxxx/e94ff1f0-398c-11ef-888e-0683abde6eb1 is in DELETE_FAILED state and can not be updated.
    at Request.extractError (/codebuild/output/src519137994/src/github.com/myorg/sample-app/node_modules/aws-cdk/lib/index.js:401:46692)
    at Request.callListeners (/codebuild/output/src519137994/src/github.com/myorg/sample-app/node_modules/aws-cdk/lib/index.js:401:91600)
    at Request.emit (/codebuild/output/src519137994/src/github.com/myorg/sample-app/node_modules/aws-cdk/lib/index.js:401:91048)
    at Request.emit (/codebuild/output/src519137994/src/github.com/myorg/sample-app/node_modules/aws-cdk/lib/index.js:401:199651)
    at Request.transition (/codebuild/output/src519137994/src/github.com/myorg/sample-app/node_modules/aws-cdk/lib/index.js:401:193203)
    at AcceptorStateMachine.runTo (/codebuild/output/src519137994/src/github.com/myorg/sample-app/node_modules/aws-cdk/lib/index.js:401:158075)
    at /codebuild/output/src519137994/src/github.com/myorg/sample-app/node_modules/aws-cdk/lib/index.js:401:158405
    at Request.<anonymous> (/codebuild/output/src519137994/src/github.com/myorg/sample-app/node_modules/aws-cdk/lib/index.js:401:193495)
    at Request.<anonymous> (/codebuild/output/src519137994/src/github.com/myorg/sample-app/node_modules/aws-cdk/lib/index.js:401:199726)
    at Request.callListeners (/codebuild/output/src519137994/src/github.com/myorg/sample-app/node_modules/aws-cdk/lib/index.js:401:91768) {
  code: 'ValidationError',
  time: 2024-07-03T23:47:03.907Z,
  requestId: '0d381bf8-0c69-4080-a626-e5f278c4c92b',
  statusCode: 400,
  retryable: false,
  retryDelay: 425.126946062091
}
```

## Conclusion
現職の試用期間が終了した。

MVV は非常に共感する部分であり、VALUE は自分が信条としていることと重なっているため、やりにくさはない。

一方で、他の会社と同様に、一部で出社を前提とした設計が始まっており、疑問点がある。

非同期コミュニケーションのサービスを提供する会社から BPaaS の会社へと変貌していることが要因だと思う。

しかし、個人的には通勤時間に対する抵抗感が大きい。

[^1]: https://docs.amplify.aws/react/build-a-backend/troubleshooting/stack-cdktoolkit-already-exists/
[^2]: https://qiita.com/wagasa2/items/882183e0360b76d79b5e
[^3]: https://zenn.dev/shimo_s3/articles/fd2330869236fe