【Amplify/Admin UI】AWSの基礎を学ぼう 特別編
概要
「AWS エバンジェリストシリーズ AWSの基礎を学ぼう」で”AWSの基礎を学ぼう 特別編 最新サービスをみんなで触ってみる Amplify + Admin UI”というイベントに参加した感想ページです。
「AWS エバンジェリストシリーズ AWSの基礎を学ぼう」とは
以下、Connpassページより引用
Amazon Web Services (AWS)は現在200を超えるサービスを提供し、日々サービスの拡充を続けています。
このAWS エバンンジェリストシリーズでは週次でAWSのサービスをひとつづつ取り上げながらその基礎を説明していく 初心者、中級者をターゲットとした講座です。午後の仕事前にスキルアップを一緒にしませんか?
注意点 登壇者による発表内容はアマゾン ウェブ サービス ジャパンとして主催しているものではなく、コミュニティ活動の一環として勉強会の主催を行っているものです。
毎週ありがとうございます!
内容
ハンズオンで知ったこと
resize.sh
Cloud9でサイズ変更のshellがあるのは知っていましたが、これってAWSさん公式ドキュメントに記載されているんですね。
環境で使用される Amazon EBS ボリュームのサイズ変更
勉強込めて、中身を整理。
- 引数がないなら、デフォルト値20を設定
SIZE=${1:-20}
- curlで自身のEC2インスタンスIDを取得
このIPはインスタンスから有効なリンクローカルアドレス
INSTANCEID=$(curl http://169.254.169.254/latest/meta-data/instance-id)
- インスタンスに紐づいたEBSのIDを取得
VOLUMEID=$(aws ec2 describe-instances \
--instance-id $INSTANCEID \
--query "Reservations[0].Instances[0].BlockDeviceMappings[0].Ebs.VolumeId" \
--output text)
- EBSのサイズ変更実施
aws ec2 modify-volume --volume-id $VOLUMEID --size $SIZE
- EBSのサイズ変更完了までWAIT
modification-stateが"optimizing","completed"の場合のみ抽出し、
VolumesModificationsが1ではない = 変更中ステータス中がある場合WAITを繰り返す。
while [ \
"$(aws ec2 describe-volumes-modifications \
--volume-id $VOLUMEID \
--filters Name=modification-state,Values="optimizing","completed" \
--query "length(VolumesModifications)"\
--output text)" != "1" ]; do
sleep 1
done
- あとファイルシステムのコマンドが分からんので別途勉強・・・
Amplifyのリージョンは大阪リージョンないんだね。
amplify configureでregion
amplify initで稼働するCloudFormation
- AWS::IAM::Role
AuthRole - AWS::IAM::Role
UnauthRole - AWS::S3::Bucket
DeploymentBucket
上記3点がCloudFormationで生成されています。
この時点では何もアクセス権限も信頼関係も付いてないです。
amplify add api ⇨ amplify pushで稼働するCloudFormation
- AWS::CloudFormation::Stack
Todo - AWS::AppSync::GraphQLSchema
GraphQLSchema - AWS::AppSync::ApiKey
GraphQLAPIKey - AWS::AppSync::GraphQLApi
GraphQLAPI - AWS::CloudFormation::Stack
CustomResourcesjson
TodoのCloudFormationで生成される物
- AWS::AppSync::Resolver
UpdateTodoResolver - AWS::DynamoDB::Table
TodoTable - AWS::IAM::Role
TodoIAMRole - AWS::AppSync::DataSource
TodoDataSource - AWS::AppSync::Resolver
ListTodoResolver - AWS::AppSync::Resolver
GetTodoResolver
CustomResourcesjsonのCloudFormationで生成される物
- 何もなし
これ何のために作っているんだろうか。。。
amplify add hosting ⇨ amplify pushで稼働するCloudFormation
hostingamplifyhostingのCloudFormationで生成される物
- AWS::Amplify::Branch
AmplifyBranch
amplifyのコマンド
-
amplify add api
apiを追加(ステージング) -
amplify update api
apiを更新(ステージング) -
amplify remove api
apiを削除(ステージング) -
amplify status
amplifyでの状況確認 -
amplify push
ステージングで準備されたリソースをAWS環境に作成 -
amplify add hosting
S3にホストディングをする
AWS Amplify Admin UIってなに?
新機能 – AWS Amplify Admin UI: アプリケーションのバックエンド開発を支援し、クラウドの経験を必要としない管理ツール
以下ブログより引用
Admin UIは、データベーステーブルのモデリング、認可認証機能の追加、アプリケーションのコンテンツ・管理者・管理者グループの管理を行うシンプルで強力なツールを提供します。また、アプリケーションのユーザーや、ユーザーによって作成されたコンテンツの管理を行う機能も提供します。Admin UIは、バックエンドやインフラストラクチャではなくデータモデルに焦点を当てています。全てのバックエンドのリソースは、チームのリポジトリで管理可能なInfrastructure as Code(IaC)のテンプレートを生成します。また、このリソースはAWS Amplifyの継続的デプロイのワークフローと統合されており、異なる環境(environment)ごとに管理が可能となっています。
感想
過去に何度か、Ampifyはハンズオン で触っていたことがあったので、操作方法については分かっていたけど、フロントのjavascriptからAPI経由でDynamoに流れる詳細がイマイチ掴めなくて、CloudFormationを読み解かないと・・・という宿題をもらいました。
AdminUIについてはイベント中に仰っていましたが、バックエンドやコンテンツ管理をAWSさんが作ってくれている環境で出来るのでチープかも知れないけど、「タダでここまで出来ますけど作りますか??」という話は交渉しても良いと思った。
これで運用している事例とか聞いてみたいなぁーー
Discussion