🚴🏻‍♀️

【Amplify/Admin UI】AWSの基礎を学ぼう 特別編

2021/04/25に公開

概要

「AWS エバンジェリストシリーズ AWSの基礎を学ぼう」で”AWSの基礎を学ぼう 特別編 最新サービスをみんなで触ってみる Amplify + Admin UI”というイベントに参加した感想ページです。

「AWS エバンジェリストシリーズ AWSの基礎を学ぼう」とは

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