AWS Amplify

最初の5件

AWS Amplify(アプリケーションの構築とデプロイ)| AWS
1.
AWSマンガ 第3話「高負荷に強いサイトを構築しろ!」(1/5) | AWS
AWS Amplify は、クラウドベースの Web アプリケーションおよびモバイルアプリケーションを開発するための、高機能な宣言型 JavaScript ライブラリです。Amplify を通じて、オブジェクトストレージの Amazon S3 とCDN (コンテンツ配信ネットワーク)の Amazon CloudFront を利用したスケーラブルな Web サイトホスティングを始め、ユーザー認証機能や RESTful API や GraphQL API の作成・管理など、豊富な機能を簡単に利用できます。また、Amplify CLI (Command Line Interface) ツールチェーンも併せて提供されており、様々なバックエンドコンポーネントをコマンドラインで一元的な操作、管理することも可能です。
いろいろ凄そう。S3(ストレージ)、CloudFront(CDN)が自動で設定されるのが一番の特徴。

AWS Amplifyとは何か?利点や特徴についてもあわせて解説
2.
AWS Amplifyとは、モバイルアプリケーションやウェブアプリケーションを構築するための開発プラットフォームのことです。
AWS Amplifyのツール3つ
1. Amplify CLI
Amplify CLIは、各種AWSサービスを簡単に利用できる、コマンドベースのツールチェーンです。
2. Amplify Console
Amplify Consoleは、サーバーレスウェブアプリケーションを公開するための環境を、自動で構築してくれるサービスです。
3. Amplify SDK
Amplify SDKは、フィックスターズのクラウドサービス「Fixstars Amplify」に向けたSDK(ソフトウェア開発キッド)で、量子アニーリングマシンをクラウドで手軽に実行することが可能です。
9つの利点
(2)成長速度による環境変化に強くできている
AWS AmplifyにはMulti Environmentという機能が存在します。
そのため、ユーザーがいくつかのコマンドを発行することにより、本番環境、ステージング環境、テスト環境といった環境ごとのバックエンド構築が必要なく、全て本番環境と同じバックエンドを少ない工数で構築することが可能です。
(3)柔軟な開発フロー
Amplify Consoleを用いることにより、ブランチごとのテスト環境を自動で構築できるほか、特定の環境のみのBasic認証の付与など、柔軟な開発を可能にしてくれます。
(4)AWSサービスで簡単に開発可能
AWS AmplifyはAWSの豊富なサービスを使用し、アプリケーションを簡単に開発できます。
(7)スケーラビリティ
AWS Amplifyは、サーバーレスのバックエンドを基盤にすることにより、スケールすることを前提に構築されているため、バックエンドの再構築が不要となります。
(8)ユーザーのエンゲージメント確認
AWS Amplifyは、Amazon Pinpointを統合することにより、アクティブデバイス数やユーザーが使用しているOS、プラットフォームの情報などといった、ユーザーのエンゲージメントを簡単に可視化できます。
6つの特徴
RDB関連については触れられていない??
利用料金
AWS Amplifyの利用料金形態は、2種類に分けられます。まず、Amplifyフレームワークを使用する場合は、基盤となるAWSサービスに対してのみ料金の支払いが必要です。Amplifyフレームワークの使用に追加料金は発生しません。
AWS Amplifyコンソールを使用する場合は、ビルド&デプロイおよび、ホスティングの2つの機能に対して料金が設定されています。

AWS Amplify はじめてみる編 - Qiita
3.簡単に言えば、AWSでもFirebaseみたいにバックエンドはお任せでフロントだけ開発できるようにしてくれるフレームワークみたいなやつです。
Amplifyファミリー
- Fraework
ライブラリ、UIコンポーネント、CLIを含むOSSのクライアントフレームワーク。SDKとコンポーネントが一緒になったみたいなものです。
- CLI
AWSでサーバーレスなバックエンドを構築・管理するためのCLIツール。コマンドを実行して対話的に質問に回答するだけで、サーバーレスなバックエンドを構築することができます。
- Developer Tools
フロントエンドとバックエンドに対してビルド、テスト、デプロイ、ホスティングを容易に実現できるAWSサービス群のことです。

Amplify Studio起動 前半
GitHubに接続でamplify-homes
というリポジトリが出来る。(名前変更可能)
Amplify 用のロールを「新しいロールを作成」で作る。画面移動するが全て自動で指定してくれているのでずんずん次へを押していく
ロール作成後は元のデプロイ画面に戻って「既存のロールを更新」してからサービスロールで先程作成したロールを指定。その後「保存してデプロイ」を選択
デプロイ完了後は下記の画面に。
この後はGitHubのリポジトリにpushするとデプロイが行われるようになる。

Amplify Studio起動 後半
masterに表示されるURL先のサイトはこんな感じに表示される。
「Backend environments」から「Get Started」をクリックして、Amplify Studio を起動
起動後

データモデルの確認
左のナビの「Data」を選択
デフォルトで作成されているHomeモデルを確認
テストデータの追加
同じく左ナビの「Content」を選択。「Actions」から「Auto-generate data」を選択
この時、自動生成するデータの意味を正しく反映させるため、住所であることを制約として設定します。
ダイアログ内では、生成数を5に設定し、Add constraintをクリックして、Field Nameでaddress, Range/settingでStreet addressを選択し、最後にGenerate Dataをクリックしてランダムデータを生成します。
わーい出来た
「image_url」は自動生成出来ないっぽい?ので自分で指定してやる
画像はこちらからunsplash

Figma とAmplify 前半
左のナビから「UI LIbrary」を選択。
右上の「sync with Figma」を選択で出てくるモーダルの①の「Use our Figma template」の方を選ぶ。
上記の画面の右上の「Get a copy」を選択。
Figmaの方の画面に。
右上の「Share」の「copy link」からAmplify と Figma を連携させるための URL を取得出来る。
Amplify側のモーダルに戻りコピーしたリンクを貼り付けて次へ。アクセス許可も出す。
右上の「Accept All」でテーマの同期が完了する。

Figma とAmplify 中盤
コンポーネント作成
左上の「#」からフレームを追加。名前変更は左側のナビをダブルクリック。(ユニーク名にすること)
右クリックして「Create component(コンポーネントの作成)」で、フレームをコンポーネントにする。
border-radiusの調整なども自由自在。
コンポーネント設定
コンポーネントに、データモデルを紐づける。
先程作ったカードをデータモデルのHomeと紐付ける作業を行う。
「Configure」を選択して「Component properties」にデータモデルを、「Child properties」に項目を当てはめていく。
Child propertiesはコンポーネント内の各要素をクリックしてからset出来る。
コレクション
コレクションはコンポーネントを複数束ねたもの
右上の「Create collections」から作成する。
作成後は「Get component code」からコードを入手(後ほど使う)

Amplifyのローカル設定 前半
$ npm install -g @aws-amplify/cli
$ amplify configure
AWS Amplify CLIの使い方〜インストールから初期セットアップまで〜 - Qiita
Amplifyが使用するIAMユーザーを新規作成するために、ブラウザが起動してAWSのログイン画面が表示されます。ログイン出来たら何もせずにコンソール画面に戻りましょう。
ユーザーネームの入力の際は何も入力せずエンターでデフォルトのネームに。
新しいIAMユーザーを作成するための画面が開きます。
しかも必要な情報があらかじめ設定されています。
ユーザー名「amplify-XXXXX(ランダム文字列)」
アクセスの種類「プログラムによるアクセスのみ許可」
特にこだわりが無ければ、そのまま「次のステップ:アクセス権限」をクリックしてください。
下記の「ユーザーを追加画面」まで来たら画面を閉じずにターミナルに戻る
[kumamoto ~]$ amplify configure
Follow these steps to set up access to your AWS account:
Sign in to your AWS administrator account:
https://console.aws.amazon.com/
Press Enter to continue
Specify the AWS Region
? region: ap-northeast-1
Specify the username of the new IAM user:
? user name: amplify-fx3d7
Complete the user creation using the AWS console
Press Enter to continue
エンターで次へ。
Enter the access key of the newly created user:
? accessKeyId: ****
? secretAccessKey: ****
This would update/create the AWS Profile in your local machine
? Profile Name: amplify-test
Successfully set up the new user.
アクセスキーとシークレットアクセスキーは先程の画面のものをコピー&ペースト。

Amplifyのローカル設定 中盤 TODO
AWSバックエンドのセットアップ
今回のプロジェクトで各種AWSのサービスを利用するために、AWS側に必要なリソースをセットアップして、その設定ファイルをプロジェクト内に作成します。
こちらの手順を実行することでバックグラウンドでCloudFormationテンプレートが生成されます。

Amplifyのローカル設定 終盤
まずはclone。
git clone git@github.com:{ユーザー名}/amplify-homes.git
// ghqユーザーなら
$ ghq get git@github.com:{ユーザー名}/amplify-homes.git
amplify-homes
ディレクトリに移動したら、npm install
を行う。
Amplify Studio に戻り、「Get component code」の「Use this component」の「amplify pull」コマンドをコピーしてきて実行。
[kumamoto amplify-homes]$ amplify pull --appId d1zjw2cncc7igs --envName devq
Opening link: https://ap-northeast-1.admin.amplifyapp.com/admin/d1zjw2cncc7igs/devq/verify/?loginVersion=1
⠙ Confirm login in the browser or manually paste in your CLI login key:
✔ Successfully received Amplify Studio tokens.
Amplify AppID found: d1zjw2cncc7igs. Amplify App name is: amplify-homes
Backend environment devq found in Amplify Console app: amplify-homes
? Choose your default editor: None
? Choose the type of app that you're building javascript
Please tell us about your project
? What javascript framework are you using vue
? Source Directory Path: src
? Distribution Directory Path: dist
? Build Command: npm run-script build
? Start Command: npm run-script serve
✅ GraphQL schema compiled successfully.
Edit your schema at /home/kumamoto/Documents/gohomequickly/github.com/Kumamoto-Hamachi/amplify-homes/amplify/backend/api/amplifyhomes/schema.graphql or place .graphql files in a directory at /home/kumamoto/Documents/gohomequickly/github.com/Kumamoto-Hamachi/amplify-homes/amplify/backend/api/amplifyhomes/schema
Successfully generated models. Generated models can be found in /home/kumamoto/Documents/gohomequickly/github.com/Kumamoto-Hamachi/amplify-homes/src
? Do you plan on modifying this backend? Yes
⠇ Building resource api/amplifyhomes✅ GraphQL schema compiled successfully.
Edit your schema at /home/kumamoto/Documents/gohomequickly/github.com/Kumamoto-Hamachi/amplify-homes/amplify/backend/api/amplifyhomes/schema.graphql or place .graphql files in a directory at /home/kumamoto/Documents/gohomequickly/github.com/Kumamoto-Hamachi/amplify-homes/amplify/backend/api/amplifyhomes/schema
✔ Successfully pulled backend environment devq from the cloud.
✅
✅ Successfully pulled backend environment devq from the cloud.
Run 'amplify pull' to sync future upstream changes.

スクリプト書き換え
import './App.css';
import { PhotoCardCollection, NavBar, MarketingFooter } from './ui-components'
function App() {
return (
<div className="App">
<NavBar />
<PhotoCardCollection />
<MarketingFooter />
</div>
);
}
export default App;
yarn start
する(package.json
を見れば分かるがreact-scripts start
が実行される)

デプロイ
修正した App.js や「amplify-homes/src/ui-components」をコミットしてGitHubにpushしてマージすると自動でデプロイされる。
デプロイの状況は、Amplify コンソールの「Hosting environments」から確認出来る