Skip to content

1. API Backendリソースの削除

デプロイした API Backend リソースの削除手順について解説します。

1-1. QVS Configの編集

  1. QVS Config に記述したリソース宣言をコメントアウトします。

    Qmonus Value Stream では、リポジトリに登録されている QVS Config の内容を編集して AssemblyLine を再実行することで、リソースを削除できます。今回は、本チュートリアルで作成した以下の QVS Config を編集します。

    • /path/to/repository/.valuestream/aws-api-backend.yaml
    • /path/to/repository/.valuestream/aws-shared-infra.yaml

    削除するリソースは、QVS Config の designPatterns フィールドに記載された Cloud Native Adapter の内容をコメントアウトすることで指定できます。 ここでは、本チュートリアルで作成したリソースを削除するため、以下のように QVS Config を編集します。

    yaml
    params:
        - name: appName
          type: string
        - name: awsAccountId
          type: string
        - name: awsRegion
          type: string
        - name: dnsZoneId
          type: string
        - name: appRunnerServicePort
          type: string
        - name: appRunnerServiceCustomDomain
          type: string
        - name: appRunnerServiceImageUri
          type: string
        - name: rdsEndpoint
          type: string
        - name: rdsMasterPasswordSecretArn
          type: string
        - name: mysqlDatabaseName
          type: string
        - name: mysqlUserName
          type: string
        - name: env1
          type: string
      modules:
        - name: qmonus.net/adapter/official
          revision: v0.37.0
      designPatterns:
    + #   - pattern: qmonus.net/adapter/official/adapters/aws/serverless/webApp/apiBackend
    + #     params:
    + #       appName: $(params.appName)
    + #       appRunnerServiceImageUri: $(params.appRunnerServiceImageUri)
    + #       rdsEndpoint: $(params.rdsEndpoint)
    + #       dnsZoneId: $(params.dnsZoneId)
    + #       awsRegion: $(params.awsRegion)
    + #       appRunnerServicePort: $(params.appRunnerServicePort)
    + #       environmentVariables:
    + #         TLS_OPTION: $(params.env1)
    + #       mysqlUserName: $(params.mysqlUserName)
    + #       appRunnerServiceCustomDomain: $(params.appRunnerServiceCustomDomain)
    + #       mysqlDatabaseName: $(params.mysqlDatabaseName)
    + #       rdsMasterPasswordSecretArn: $(params.rdsMasterPasswordSecretArn)
    + #       awsAccountId: $(params.awsAccountId)
    yaml
    params:
        - name: appName
          type: string
        - name: awsAccountId
          type: string
        - name: awsRegion
          type: string
        - name: dnsZoneId
          type: string
        - name: appRunnerServicePort
          type: string
        - name: appRunnerServiceCustomDomain
          type: string
        - name: appRunnerServiceImageUri
          type: string
        - name: rdsEndpoint
          type: string
        - name: rdsMasterPasswordSecretArn
          type: string
        - name: mysqlDatabaseName
          type: string
        - name: mysqlUserName
          type: string
        - name: env1
          type: string
      modules:
        - name: qmonus.net/adapter/official
          revision: v0.37.0
      designPatterns:
      #   - pattern: qmonus.net/adapter/official/adapters/aws/serverless/webApp/apiBackend
      #     params:
      #       appName: $(params.appName)
      #       appRunnerServiceImageUri: $(params.appRunnerServiceImageUri)
      #       rdsEndpoint: $(params.rdsEndpoint)
      #       dnsZoneId: $(params.dnsZoneId)
      #       awsRegion: $(params.awsRegion)
      #       appRunnerServicePort: $(params.appRunnerServicePort)
      #       environmentVariables:
      #         TLS_OPTION: $(params.env1)
      #       mysqlUserName: $(params.mysqlUserName)
      #       appRunnerServiceCustomDomain: $(params.appRunnerServiceCustomDomain)
      #       mysqlDatabaseName: $(params.mysqlDatabaseName)
      #       rdsMasterPasswordSecretArn: $(params.rdsMasterPasswordSecretArn)
      #       awsAccountId: $(params.awsAccountId)
    yaml
    params:
      - name: appName
        type: string
      - name: awsRegion
        type: string
      - name: subnet1AvailabilityZone
        type: string
      - name: subnet2AvailabilityZone
        type: string
      - name: rdsEngineVersion
        type: string
    modules:
      - name: qmonus.net/adapter/official
        revision: v0.37.0
    designPatterns:
    + # - pattern: qmonus.net/adapter/official/adapters/aws/serverless/webApp/apiBackend/sharedInfrastructure
    + #   params:
    + #     appName: $(params.appName)
    + #     rdsEngineVersion: $(params.rdsEngineVersion)
    + #     awsRegion: $(params.awsRegion)
    + #     subnet1AvailabilityZone: $(params.subnet1AvailabilityZone)
    + #     subnet2AvailabilityZone: $(params.subnet2AvailabilityZone)
    yaml
    params:
      - name: appName
        type: string
      - name: awsRegion
        type: string
      - name: subnet1AvailabilityZone
        type: string
      - name: subnet2AvailabilityZone
        type: string
      - name: rdsEngineVersion
        type: string
    modules:
      - name: qmonus.net/adapter/official
        revision: v0.37.0
    designPatterns:
      # - pattern: qmonus.net/adapter/official/adapters/aws/serverless/webApp/apiBackend/sharedInfrastructure
      #   params:
      #     appName: $(params.appName)
      #     rdsEngineVersion: $(params.rdsEngineVersion)
      #     awsRegion: $(params.awsRegion)
      #     subnet1AvailabilityZone: $(params.subnet1AvailabilityZone)
      #     subnet2AvailabilityZone: $(params.subnet2AvailabilityZone)
  2. 変更をステージに追加します。

    git add .valuestream/aws-shared-infra.yaml .valuestream/aws-api-backend.yaml
  3. リポジトリに変更をコミットします。

    git commit -m "Delete api backend resources"
  4. リポジトリに変更をプッシュします。

    git push
  5. Git コミットのハッシュ値を取得します。

    git rev-parse HEAD

1-2. AssemblyLineの実行

本チュートリアルでは、先に aws-shared-infra の AssemblyLine を実行して基盤となるクラウドリソースをデプロイした後、aws-api-backend の AssemblyLine を実行して API Backend をデプロイしました。 このため、リソースの削除においては、先に aws-api-backend の AssemblyLine を実行して API Backend のリソースを削除した後、aws-shared-infra の AssemblyLine を実行して基盤となるクラウドリソースを削除する、という順番で実施します。

  1. 左のメニュー一覧の AssemblyLine をクリックして、AssemblyLine 一覧ページに移動します。

  2. チュートリアルで作成した aws-api-backend の AssemblyLine を選択します。

  3. 画面上部の Input Parameters に以下を入力し、RUN ボタンを押下して AssemblyLine を実行します。

    • gitRevision: 1-1で取得した Git コミットのハッシュ値
  4. AssemblyLine の実行が完了したら、ログを確認します。

    削除に成功すると、deploy Pipeline の deploy Task の step-deploy Step のログから、リソースが削除されたことを確認できます。

    AWS AssemblyLineの実行手順

    ログの以下の箇所から、削除されたリソースの総数を確認できます。

    Resources:
        - 22 deleted
        1 unchanged

    1 unchanged のリソースについては、Qmonus Value Stream の仕様上出力されているもので、デプロイされたユーザのリソースの削除には影響ありません。

  5. AssemblyLine 一覧ページに移動して、aws-shared-infra の AssemblyLine を選択します。

  6. 画面上部の Input Parameters に以下を入力し、RUN ボタンを押下して AssemblyLine を実行します。

    • gitRevision: 1-1で取得した Git コミットのハッシュ値
  7. AssemblyLine の実行が完了したら、ログを確認します。

    削除に成功すると、deploy Pipeline の deploy Task の step-deploy Step のログから、リソースが削除されたことを確認できます。

    AWS AssemblyLineの実行手順

    Resources:
        - 21 deleted
        1 unchanged
  8. AWS マネジメントコンソールにログインして、本チュートリアルで作成したリソースが削除されていることを確認します。

以上で、API Backend リソースの削除は完了です。