爆死必至の地雷原を進む隊員を見守る気持ち。
私は膝に矢を受けてしまったので、しばし頑張れそうにない。
副業の案件でこっそり使うか。
あの案件はシステムが使い捨てだし、データ溜め込まないし、ちょうどよかろう。
Amplifyを触ったことがある人を対象としているため、画像を貼ったりせず、事細かには説明しない。適宜補完してほしい。
npx create-react-app amplify_the_destroyer
などと実行して、テスト用に適当なウェブアプリを作成する。ここでnext.jsで作るとややこしいことになるのでやってはいけない。amplify pull --appId {appId} --envName staging
で取得する。git add .
、git commit -m "init"
、git push
を実行して、レポジトリにコードを反映させる。下の画像のようになれば成功だ。Amplifyを使っている人には見慣れた光景かと思う。
この後、ローカルの端末でamplify pull --appId {appId} --envName main
を実行してmainと同期し、その結果をGithubのレポジトリにpushしておく。
mainが「Deletion completed」となっているのが確認できる。
Amplifyにレポジトリ連携でデプロイする時、team-provider-info.jsonがレポジトリに入っていると、別Appであっても同一のCloudFormationスタックが用いられる。
そのため、Appを削除するとCloudFormationによって他Appと共用となってしまっているバックエンド環境が削除される。
代理店を通じてAWSにBackend Environmentsの復旧を依頼したが、Backend Environmentsに掛かるDynamoDB・S3は復旧できないとのこと。
amplify pullを実行すると、.gitignoreに色々追記されるが、team-provider-info.jsonは除外設定にならない。
本事象は私のプロジェクトの本格運用前に発生した。本格運用が始まった状態でこの問題が発生した場合にはより深刻な影響を及ぼしただろう。
DynamoDBのデータは、DataStoreがDynamoDBと同期していたブラウザのIndexedDBより救出された。
今年の2月に開始された弊プロジェクトでは、この他にも2度ほどAmplifyのバグを踏んでいる。
せめてものの慰めに、noteでレポートの有料版を売って、小銭稼ぎしようと思います。
やっとこ復旧できた。Amplifyの自爆ボタンは押しても発動しないようにした。
爆死必至の地雷原を進む隊員を見守る気持ち。
私は膝に矢を受けてしまったので、しばし頑張れそうにない。
副業の案件でこっそり使うか。
あの案件はシステムが使い捨てだし、データ溜め込まないし、ちょうどよかろう。
『Amplify爆死レポート』をFediverseに流したところ、「わっかるー」と帰ってきた人とFFになった。
その人のタイムラインを遡っていたら、Azureの愚痴が度々書かれており、「AWSからAzure行くぞッ!」と思っていた矢先だったため、「Azureもあかんか……」となっている。逃げ道が無いではないか。
極めて危険な仕様なので、なんとかしてほしい。CloudFormationのスタックの削除を一定期間は取り消せるとか。
初期設定がデータを吹っ飛ばすようになっている仕組みなのは困りますね。
このあたりが「AmplifyはPoCに最適」と言われ、本番環境での運用事例が乏しい所以かと思います。
初期設定がデータを吹っ飛ばすようになっている仕組みなのは困りますね。
普通に考えたら、データは最後まで守られるように思いますよね。Appを全部消すまではデータを消せない、みたいに。
Misskey.ioにルビ機能が来たので、カタカナ・希哲館訳語変換サービスの改修の報知をした。
https://misskey.io/notes/9m9ogghzbxld00v2
今日は仕事ではシステムが吹っ飛んだ件を調査していた。まじで勘弁してほしい。問い合わせが帰ってきて、色々確定したら情報をまとめたい。現状だと確定していないので、「〇〇サービスで✕✕するとデータやユーザーアカウントが全部消える」とか軽率に言うことはできない。
多分、普段私の投稿を見ている人にはどのサービスなのかはなんとなく察しがついてしまっているだろう。
K研究室の通話にて、K教授や他の客員研究員の人と話した。
やはり私は知識の面においてかなりブランクがあることがわかった。大学を離れてからもう6年も経っているし、その間にキャッチアップできる情報にも限りがある。
大学院での研究で調子を崩してから余裕がなくなって、ずっと実務しかできていなかった。最近になってやっと色々できるようになってきた。ブランクを取り戻さねば。
実務能力は大学院にいたときより遥かに高くなっているし、デライトという強い味方もある。研究、やっていきたい。
あと、私は変なことをするときに先行事例の調査が甘いままに、実装や実験に突っ走る傾向があるので、もうちょっと調査の時間を多く取っても良い気がした。あと環境も大きい。今日の通話で「画像と文章のEmbeddingを同じ長さにして学習してやれば文章から画像が検索できますよね」とか言ったら、Multimodal Embeddingがすでにあることを教えてもらった。やっぱ先行研究あるよなぁ。「先行研究が無いなら研究する価値がない」って昔言われたし、研究する価値があるなら先行研究があるのだ。
色々わかりましたら、詳らかにしたく思っておりますので、乞うご期待ください。
システムが吹っ飛んだ原因が判明し、再現できることを確認しました。
Good News: 俺のミスじゃない
Bad News: 俺のミスじゃない
仕様確認と言う名の苦情と、復旧の要求と、再発防止方法の確認を、クラウド事業者に代理店経由で出してる。回答来るまでなんもやる気しねぇ。
実家からみかんが届いた。5kg。ギリギリ冷蔵庫に入った。5kgともなると流石に食べきれずに腐らせてしまうので、職場で配りたい。明日総務部あたりに頒布していいか打診しよう。
和歌山では農家からみかんがトリクルダウンしてくる。
今日は休みの日と位置づけた。最近プログラミングのやり過ぎで、疲労感がある。
昼。軽く街をぶらついた。散歩ルートがなかなか定まらずにいる。
ぶらついた後、やや暖かかったのも有って、スタバのテラスで読書をした。そのためにわざわざ本を持ち出しておいた。テラスでの読書は、今年はコレが最後になるだろう。そろそろ寒さが厳しくなりそうだ。
夕飯。鍋に積まれた白菜の山に蓋を載せながら、俺はいつか寸胴を買うのだろうなと思った。
月曜が近づき、2023年11月17日日記で書いた開発中のシステムを吹っ飛ばしたままの件が重くのしかかる。憂鬱だ。Gloomy Monday。なにかの手違いで直っていてほしいが、そんなことは起こらないので、なんとかするしか無い。
朝、体が冷え切って目が覚める温度になってきた。そろそろ布団を出さないと体調を悪くしてしまう。
上司と、私の今年の目標達成率について1 on 1をした。お互いに、「毎日の定例で30分話してるし、話すこと無くね?」みたいな感じだったが、普通に予定していた時間いっぱいまで話した。評価は上司の更に上がするので、まあどうなることやらである。
設定した目標を完全に忘れていたが、自己評価においては目標達成率は思いの外良かった。ちゃんと、自分が走りそうな方向に目標を置いておいたのが良かった。
ちなみにこの目標管理は給与とかボーナスには影響しない。という建付け。多分参考にはする。
仕事で問い合わせを出して、その回答待ちなのを良いことに、すげーダラダラしていた。
Next.jsでSMTPを受ける方法とか検討していた。無理そう。コレができるとシステムでできることの幅が広がるのだが。普通にマネージドサービスを使ったほうが良いんだろう。
そうこうしていたところ、仕事でクラウド上に作ってるシステムが、全部吹っ飛んでいることが判明した。DBやらファイルやらユーザーアカウントやらが全部消えた。まだ本番運用前で良かった。
上司と話したところ、週明けに原因調査しようということになった。定時直前に発覚して、上司に相談した上で泣きながら帰宅した。
何も心当たりのある操作してないんだよなぁ……。クラウドのコンソールにログインするアカウントが不正ログインされた形跡もなかった。クラウドのシステム自体の不具合で消えたんだったら、一発アウトなので別のクラウドに移行しないといけなくなってしまう。
CI/CD・DB・ストレージ・認証・認可・API生成の全部入りのマネージドサービス(フレームワーク付き)でこの事象が起きちゃったので、まじで影響範囲がでかい。死ぬ。たのむ、俺のミスであってくれ。
Fediverseで「複雑なマネージドサービスって怖いよね〜〜」という話をしていた。はい。実感。
布団を出してカバーを付けた。カバーをうまく付けられなくてモタモタしてしまった。疲れで不器用になっている。俺はもうだめだ。