t_wの輪郭

Feedlyでフォローするボタン
Amazonクラウドサービスクラウドコンピューティング

AWS

2021/2/11 23:46:00
PartyRockBedrockAWS RDSRDSQLDBあれAmplifyDynamoDBAppSyncCloudFront『t_wの輪郭』をホストするサーバの選定オンプレあれAWS AppRunnerCloudShellAmazon OpenSearchAmazon CloudFrontAmazon CognitoLambdaCDKAmazon Aurora ServerlessAmazon Managed GrafanaEFSAmazon LinuxAmazon Linux 2023Cloud9EBSAPI GatewayChaliceVPC『社外の開発メンバーをAWSアカウントに入れるときのIAM設定を考えている』あれ飲酒してクラウド触るの最悪だと思いながら、AWS触ってるAWS Amplify StudioAWS Client VPNAWSでのクラウド破産対策CloudFormationAWS Amplifyで検証用アプリを作ったあとに削除したら、大本のアプリのBackend environmentsが意図せず消されたAWS構成図AWS CopilotS3「Amazon S3のストレージ料金を無料にする裏技」改『サーバレスアプリのビジュアル開発ツール「AWS Application Composer」が正式版に。簡単にAWSサービスの構成や連携、デプロイなどが可能に』Amazon SageMakerAWS Device FarmあれAWS NeuronAWS InferentiaAWS TrainiumAWS Deep LearningAmazon Verified PermissionsIAMCodeGuru ReviewerCodeGuruMountpoint for Amazon S3ProjenPDKCloudscapeAWS Database Migration Service責任共有モデルLocalStackCloudWatchEventBridgeRoute53AWS の Elastic File System (EFS)『~スタートアップの人たちに捧ぐ~ 監視再入門 in AWS』Mechanical TurkAWS、コンテナ特化で瞬時に起動するオープンソースの軽量VM「Firecracker」がバージョン1.0に到達FirecrackerIVSApp StudioHoneycodeAmazon QeksctlEKSmyApplicationsAWS CLIあれFargateAmazon ECS と AWS Fargate で動作する「LayerX インボイス」のコスト最適化手法App RunnerEC2ECSAWS Load Balancer ControllerAmazon Personalize『AWS CodeCommitの新規リポジトリ作成とAmazon CloudSearchの新規ドメイン作成が制限されはじめた様です | DevelopersIO』MonitronCloudSearchCodeCommitCodeCatalyst『XユーザーのMark Atwoodさん: 「I don't know for sure, but I suspect that the shutdown of AWS QLDB is because the dirty layoff that is the "return to office" mandate caused the QLDB ops team to drop below Keep The Lights On staffing level.」 / X』LLRTあれ『​:gcp:​ Azure ​:gcp:​ :fedibird_role_01:: "Q: Azureは高くてクソ、GCPは短パンとジャージで働いてる連中が運営しててエンタープライズで…" - Fedibird』『まるでCloud9なSageMaker Studio Code Editorを一撃で構築する』SageMaker Studio Code EditorAWS IDE ToolkitsSageMakerIAM Identity CenterSageMaker StudioApplication Load BalancerALBAWS Control TowerAuroraAurora Database Activity StreamsAthenaFinch『AWS、Docker Desktop代替となり得る「Finch」をオープンソースで公開。ローカルマシンに仮想環境とコンテナランタイム、ビルドツールなど一式を導入』jsiiECS Service ConnectCloud MapSQS『Canva、SNS SQSよりAmazon KDSを選択し、1日250億件のイベントで85%の節約を実現 - InfoQ』KDSDMSSAMMemoryDBRedshiftAWS Console-to-CodeElastiCacheSNS『Heroku→AWS移行でのトラブル全部見せます | ドクセル』SESFISAWS TranscribePerformance InsightsCost Optimization HubTrusted AdvisorDevOps GuruDevOps Guru for RDSAWS Chatbot

FIS

2024/11/3 0:09:00

SES

2024/10/27 23:37:00

SQS

2024/9/20 12:07:00

SNS

2024/9/20 12:07:00

KDS

2024/9/20 12:05:00

SAM

2024/9/15 20:39:00

DMS

2024/9/14 9:23:00

jsii

2024/8/25 23:48:00

jsiiJavaScriptのコードを他の言語から呼び出し可能にするポーティングを自動でやるライブラリ(?)

ALB

2024/8/19 22:32:00

あれ

2024/7/20 12:15:00

プライムセールはAmazon恒例のAWS負荷試験。

LLRT

2024/7/15 12:14:00

EKS

2024/7/15 9:44:00

IVS

2024/7/7 23:58:00

Amazon Interactive Video Service

EBS

2024/2/9 18:09:00

VPC

2023/12/21 22:08:00

IAM

2023/12/14 21:04:00

CDK

2023/12/3 14:54:00
『Amplify override でバックエンドリソースをCDKでカスタマイズ』あれあれ『AWS CDK イントロワークショップ』あれProjencdkあれ『Configure security credentials for the AWS CDK CLI - AWS Cloud Development Kit (AWS CDK) v2』あれ『AWS CDK で Lambda 関数の再起ループ保護が設定可能になっていました | DevelopersIO』あれ『【前編】Amazon CodeCatalyst と AWS CDK で始める CICD パイプライン - サーバーワークスエンジニアブログ』あれCDKでDockerfileをLambdaにデプロイ『Export Amplify project to CDK - JavaScript - AWS Amplify Gen 1 Documentation』『Serverless Frameworkの有償化に伴いAWS CDKとAWS SAMへの移行について検討してみた | DevelopersIO』インフラ以外(更新頻度が高いもの)をCDKで管理してはいけない『CodeDeployで更新するECS ServiceをCDK管理して詰んだ話 - Uzabase for Engineers』『CDKでスタック間参照してはならない - Uzabase for Engineers』

Lambda

2023/11/29 17:08:00

AWSFaaS
プログラムやDocker Containerを動かせる。

あれあれ『Hosting Hugging Face models on AWS Lambda for serverless inference』AWS LambdaでSentence EmbeddingAmplify FunctionあれあれChaliceLambdaでLanceDBを動かすLambdaでEFSが使える『Lambda用のVPC環境を、CloudFormationで構築する』『AWS CloudFormationでAWS Lambda with VPCを作成してみた』あれあれLambda Layerあれ『Testable Lambda: Working Effectively with Legacy Lambda』あれcdk deploy --hotswapEFS付きLambdacargo-lambda『Rustで書いたコードをAWS Lambdaにデプロイする』あれ『AWS Lambda で Go のバイナリを実行すると「/var/task/main: /lib64/libc.so.6: version `GLIBC_2.32' not found」を出力して止まるときにやったこと。』あれAWS Lambdaのカスタムランタイムでdenoを動かすとコールドスタートでも10msで立ち上がるカスタムランタイムLambda関数AWS Lambdaでベクトル検索『AWS 上でサーバレス構成で HTTP レスポンスをストリーミングする』『Introducing AWS Lambda response streaming | AWS Compute Blog』『Run Lambda functions with fixed IP』『Lambdaのメモリ割り当てが増えてもSnapStartのRestore Durationが変わらないことを確認してみた | DevelopersIO』AppRunnerを使うと、Fargate、EC2、Lambdaが消せて構成がすっきりする『Lambda関数が突然動かなくなった話 - サーバーワークスエンジニアブログ』LambdaでクラウドIDEを動かす再帰ループ保護『AWS CDK で Lambda 関数の再起ループ保護が設定可能になっていました | DevelopersIO』Lambda Web Adapter『Lambda Web Adapter でウェブアプリを (ほぼ) そのままサーバーレス化する Lambda Web Adapter - 変化を求めるデベロッパーを応援するウェブマガジン | AWS』あれCDKでDockerfileをLambdaにデプロイ『Deploy transpiled TypeScript code in Lambda with container images - AWS Lambda』『Trigger AWS Lambda with TCP Traffic + Static IP Address - DEV Community』『Lambda Cold Starts analysis』『AWS LambdaのNode.jsランタイムでTCP接続を使いまわそう!(AWS_NODEJS_CONNECTION_REUSE_ENABLED) | DevelopersIO』AWS_NODEJS_CONNECTION_REUSE_ENABLEDAxum on Lambda『[アップデート] AWS Fault Injection Service (FIS) が AWS Lambda にも障害アクションを発生出来るようになりました | DevelopersIO』『Introducing an enhanced in-console editing experience for AWS Lambda | AWS Compute Blog』

あれ

2023/11/23 9:04:00

Amplify爆死レポート』をFediverseに流したところ、「わっかるー」と帰ってきた人とFFになった。

その人のタイムラインを遡っていたら、Azureの愚痴が度々書かれており、「AWSからAzure行くぞッ!」と思っていた矢先だったため、「Azureもあかんか……」となっている。逃げ道が無いではないか。

再現手順

Amplifyを触ったことがある人を対象としているため、画像を貼ったりせず、事細かには説明しない。適宜補完してほしい。

本番と見なすAmplifyのアプリを作成する

ダミーのウェブアプリを作る
  1. Githubに空のレポジトリを作成する
  2. GithubからレポジトリをCloneする
  3. ローカルの端末でnpx create-react-app amplify_the_destroyerなどと実行して、テスト用に適当なウェブアプリを作成する。ここでnext.jsで作るとややこしいことになるのでやってはいけない。
Amplifyのウェブコンソールでの作業
  1. Amplifyのウェブコンソールから「アプリケーションを構築」を押して、アプリ(名前はto_be_destroyedとする)を作成する。
ローカルの端末での作業
  1. Backend environmentsにstagingがあるので、これをamplify pull --appId {appId} --envName stagingで取得する。
  2. git add .git commit -m "init"git pushを実行して、レポジトリにコードを反映させる。
Amplifyのウェブコンソールでの作業
  1. Hosting environmentsからGithubを選択して、上記レポジトリのmainブランチと連携させる。
  2. 「ビルドの設定」画面で、Environmentを「新しい環境を作成」にし、Environment名は空欄のままにする。
  3. デプロイを開始し、デプロイされるのを待つ。
作業結果

下の画像のようになれば成功だ。Amplifyを使っている人には見慣れた光景かと思う。

この後、ローカルの端末でamplify pull --appId {appId} --envName mainを実行してmainと同期し、その結果をGithubのレポジトリにpushしておく。


本番環境とは切り離された検証環境のつもりでAmplifyで別アプリを作成する。

  1. Amplifyのウェブコンソールから「アプリケーションを構築」を押して、アプリ(名前はdestroyerとする)を作成する。
  2. Hosting environmentsからGithubを選択して、上記レポジトリのmainブランチと連携させる。
  3. 「ビルドの設定」画面で、Environmentを「新しい環境を作成」にし、Environment名は空欄のままにする。
  4. デプロイを開始し、デプロイされるのを待つ

Amplifyのウェブコンソール上でdestroyerを削除して、to_be_destroyedのBackend Environmentsが削除されるのを確認する

  1. Amplifyのウェブコンソールでdestroyerを開き、「アプリの削除」を押して削除する。
  2. destoryerが削除されたら、to_be_destroyedのBackend Environmentsが削除されているのを確認する。

mainが「Deletion completed」となっているのが確認できる。


原因

Amplifyにレポジトリ連携でデプロイする時、team-provider-info.jsonがレポジトリに入っていると、別Appであっても同一のCloudFormationスタックが用いられる。
そのため、Appを削除するとCloudFormationによって他Appと共用となってしまっているバックエンド環境が削除される。


対策(未検証)

  • Amplifyと連携しているレポジトリからteam-provider-info.jsonを消す
  • .gitignoreにteam-provider-info.jsonを追加する
  • CloudFormationのスタック削除保護を有効化する
  • バックアップを設定する

後記

代理店を通じてAWSにBackend Environmentsの復旧を依頼したが、Backend Environmentsに掛かるDynamoDB・S3は復旧できないとのこと。
amplify pullを実行すると、.gitignoreに色々追記されるが、team-provider-info.jsonは除外設定にならない。
本事象は私のプロジェクトの本格運用前に発生した。本格運用が始まった状態でこの問題が発生した場合にはより深刻な影響を及ぼしただろう。
DynamoDBのデータは、DataStoreがDynamoDBと同期していたブラウザのIndexedDBより救出された。
今年の2月に開始された弊プロジェクトでは、この他にも2度ほどAmplifyのバグを踏んでいる。

QLDB

2023/11/13 11:38:00
『AWSジャパンさん、4日後にサービス終了が発表されるQLDBをグラレコでわかりやすく解説してしまうwwwwww』『XユーザーのAidan W Steeleさん: 「Amazon QLDB will shut down. All data will be deleted next year. They’re recommending a migration to Aurora Postgres. https://t.co/0VS3fcDyV8」 / X』『XユーザーのAWS公式☁️アマゾン ウェブ サービス ジャパン/クラウドサービスさん: 「台帳データベース Amazon QLDB をグラレコで解説▶ https://t.co/l3fBV9p5CE データの改ざん耐性と変更履歴の検証可能性を実現する台帳データベースサービス Amazon QLDB をグラレコで分かりやすく解説します。『[廃止] Amazon Quantum Ledger Database (QLDB) が2025年7月31日に終了します | DevelopersIO』『XユーザーのMark Atwoodさん: 「I don't know for sure, but I suspect that the shutdown of AWS QLDB is because the dirty layoff that is the "return to office" mandate caused the QLDB ops team to drop below Keep The Lights On staffing level.」 / X』『Xユーザーの🇮🇱☮️🇺🇦 Balanced Acceleration (b/acc)さん: 「@_Mark_Atwood I was a QLDB fan at launch, but now appreciate that fake decentralization never survives.」 / X』QLDBサービス終了
『t_wの輪郭』をAWS Amplifyに移行あれ2023年11月14日日記DataStoreあれ『Is there a way to specifiy thedynamodb tablename when creating a api resource using amplify?』Amplify Gen2AmplifyのBuildでムリクソgit lfsを使う方法『AWS AmplifyでReact(TypeScript)、GraphQL、Lambda(Go)なアプリを作ってみた』GraphQL APIAmplify GraphQL TransformerGo言語のAmplify functionでGraphQL APIを叩くコード(IAM)あれ『API (GraphQL) Make your data searchable』AWS AmplifyのGraphQL APIでAPI keyを使うあれあれAmplify上でSPAをホスティングする時のリダイレクトAmplify Functionあれimport-backend-storageAmplifyでNext.jsのgetServerSideProsにユーザーアカウントを割り当ててAPIを叩くamplify override『Amplify override でバックエンドリソースをCDKでカスタマイズ』あれamplifyAmplify UIあれAWS Amplify StudioAWS Amplifyで検証用アプリを作ったあとに削除したら、大本のアプリのBackend environmentsが意図せず消されたあれあれAWS AmplifyとAWS Copilotはすぐにアプリを公開できるためPoCやモックを作るのに向いているAmplify Boost Up #02あれあれAmplifyでNode.js 20を使う方法AmplifyでNext.js 14をビルドする方法Amplifyでビルドあとのデプロイでエラーが出るAmplifyの構築イメージでAmazon Linux 2023が使えるようになっていたAmplifyへNext.js 14をデプロイするときに『unhandledRejection ReferenceError: Headers is not defined』と出るときの対策あれ@searchableあれあれAmplify HostingAWS AmplifyでGo言語とNext.jsから成るアプリをビルドするアレGo言語のAmplify functionでGraphQL APIを叩くコード(API Key)あれあれあれあれあれAmplifyのStorage.getがキャッシュするあれAmplifyが悪いあれNext.jsとAmplifyでcognitoの認証を実装『Amplify SDK(JavaScript)でCognitoの認証機能を試す』Next.jsをAWS Amplifyで動かすAWS Amplify の@searchableが Amazon OpenSearch Serverless に対応して欲しいAWS AmplifyでGraphQL Schemaに@searchableを設定するとデプロイに時間がかかる『AWS Amplify フレームワークの使い方Part18〜GraphQL Transform v2 @hasOne/@hasMany/@belongsTo/@manyToMany (旧@ connection)編〜』『AWS Amplify を使って簡単に Algolia と連携した検索機能を作る』Storage『Export Amplify project to CDK - JavaScript - AWS Amplify Gen 1 Documentation』『[amplify] 本番データが全削除された話』あれ『Customize your data model - JavaScript - AWS Amplify Gen 1 Documentation』
あれあれ『Is there a way to specifiy thedynamodb tablename when creating a api resource using amplify?』『[速報]Amazon DocumentDBおよびAmazon DynamoDBのベクトルサーチ機能が一般提供開始に!』Vector search for Amazon DynamoDBあれあれあれあれあれ『Add Similarity Search to DynamoDB with Faiss』DynamoDBでも索引を作ればいい感じに検索できる説DynamoDBのitemの容量は400KBまであれあれあれ『DynamoDB の update_item() で、SET・REMOVE・ADD・DELETEを同時に実行する | DevelopersIO』あれあれ「DynamoDBも使ったことあるけどNoSQLはまじでやめといたほうがいい」『技術選定の失敗 2年間を振り返る TypeScript,Hono,Nest.js,React,GraphQL』あれDynamoDB Streams『AWS LambdaのNode.jsランタイムでTCP接続を使いまわそう!(AWS_NODEJS_CONNECTION_REUSE_ENABLED) | DevelopersIO』『Amazon Aurora PostgreSQL および Amazon DynamoDB の Amazon Redshift とのゼロ ETL 統合の一般提供を開始 | Amazon Web Services ブログ』『PostgreSQL: DynamoDB fdw 1.0.0 released』

あれ

2023/8/30 7:39:00

AWSもベクトルDBサービス出してくれや

サーバーレスで安価なので頼む

あれ

2023/5/24 9:00:00

AWSでベクトル検索しようとするとAmazon OpenSearchとかいうのを使うのが正攻法なのだけど、OpenSearchはEC2インスタンスが立ち上がってしまって費用的にも労力的にも良くない。そこで、ベクトル検索ライブラリで生成したインデックスをAmazon DynamoDBのインデックスにすればサーバーレスで安価に運用できる気がしている。

未検証。できるかどうか不明。果たして、任意のインデックスをレコードに設定することができるのか?

というか、そういう機能をAWSが作るべきだと思う。作るでしょ。そのうち。

Amazon Personalize

2023/5/24 8:06:00

レコメンデーションを構築できるサービス

AWS Neuron

2023/5/24 7:50:00

AWS Trainium と AWS Inferentia アクセラレーター上の機械学習を最適化する SDK

AWS Deep Learning AMIs と AWS Deep Learning Containers には、AWS Neuron が事前に設定されています。コンテナ化されたアプリケーションを使用している場合、Amazon Elastic Container Service (ECS)、Amazon Elastic Kubernetes Service (EKS)、またはお好みのネイティブコンテナエンジンを使用して、Neuron をデプロイすることができます。Neuron は、データ科学者やデベロッパーが機械学習モデルの構築、トレーニング、およびデプロイに使用できる Amazon SageMaker もサポートしています。