Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationEventAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
1
Help us understand the problem. What are the problem?
@too

【Amplify利用者必読】AmplifyConsoleでのアプリの削除は本当に気をつけてください

はじめに

つい先日、とある公開中のサイトのバックエンドが開発環境も本番環境も、全て消え去るというAmplify史上もっとも衝撃的な事象が発生しました。

公開してまもなく、CognitoもDynamoDBなども使っていないサイトでしたので被害は最小限でしたが、これがバリバリに運用中の会員登録制サービスで起きていたらと考えたら、ただただゾッとしますね、、、。

今回のトラブルは、知っているか知らないかだけで、防げる部分もあるので、知らずにこんな辛い思いをする人が1人でも減ったらいいな、と思い記事を書いています。

原因

原因は、AmplifyConsoleからのアプリの削除です。
GUIからボタン一つで簡単にバックエンドがすべてが消え去りました。

そしてコレには、AmplifyConsoleの歴史が関わってくるため、少し解説していきます。

AmplifyConsoleの変遷

AmplifyConsoleはこの1〜2年で以下のような変化を遂げています。
(正確に記録はしていないため、だいたいなイメージになります。)

  1. もともとAmplifyCLIとAmplifyConsoleは完全に独立していた

  2. いつの日からか、AmplifyCLIで作成したバックエンドとAmplifyConsoleで作成したアプリを紐付けできるようになる

  3. その後、AmplifyCLIでバックエンドを作成すると、AmplifyConsole上にアプリが自動作成されるになる

  4. そして最近、AdminUIが登場したタイミング?で、バックエンドもAmplifyConsole上で管理ができるようになる

この変化の過程の中で、今回の悲劇を招きました。

アプリの管理と悲劇

1と2の段階ではなんだかんだ別物なので、バックエンドとアプリは、それぞれ独自に作成をしていました。

3でアプリは自動作成されるようになりましたが、よくわかっていなかったことと1と2の流れもあって、自動生成されたアプリは使わずに、自分で作成したアプリを使っていました。
自動生成されるアプリは邪魔だな、と思って、毎回消していました。

そしてAdminUIが始まった以降に作成した環境で悲劇は起きます。

AdminUIの登場でAmplifyConsoleでバックエンドも管理ができるようになったことで、アプリにバックエンドも紐付き、バックエンドについてもクローンや新規作成、削除がGUIから行えるようになっています。そして、いままで邪魔だと思って消していたアプリの削除は、バックエンドに完全に紐付いたことで、すべて消し去りました。

簡易対策

とりあえず今思いつく対策?がこちらです。

  • アプリを削除=バックエンドの削除という認識を持って、取扱いを本当に気をつける
  • AmplifyConsoleでは、AmplifyCLIによって自動生成されたアプリを使用する
  • IAMでAmplifyConsoleでの作業権限を制限する(やや本末転倒感があるが)

おわりに

AdminUIの登場により、GUIから管理がしやすくなったというメリットが生まれましたが、こんな簡単にGUIからバックエンドをすべて削除できてしまうことに、非常にビビっております。

ベターな管理の仕方をご存知な方がいれば、ぜひお教えいただきたいです。

なにはともあれ、Amplifyユーザーに幸あれ。

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
1
Help us understand the problem. What are the problem?