【AWS】無料枠を使ってみる②
前回の続きです。
今回は、公式サイトを参考に、AWSのAmplifyを使ってみます。Appsyncとの接続は次の記事で実施したいと思います。
そもそもAmplifyとは、アプリ開発を手軽に実施できるように、いろんな機能を搭載したプラットフォームです。
Amplifyを使って作ったアプリは、数コマンド打つだけで、外から接続が可能になります(デプロイできます)。
つまり、Amplifyを使えばWebサーバ(Apache等)とかOSサーバ(Linux等)とかネットワークの知識とか、そいういったものが不要なんです!
アプリ開発者はアプリを開発することだけに集中できるんですね。
さっそく、Cloud9でAmplify環境を構築してみましょう。
Cloud9の画面の下に、コマンドを打つことができるターミナルがあります。

以下のコマンドを順番に打っていきましょう。1つ目のコマンドを実行すると、Cloud9が勝手にいろいろ準備します。
文字が表示されては消えて、、となりますが、慌てずに完了するのを待ちましょう。

「Happy hacking!」が表示されればOKです!
npx create-react-app amplifyapp cd amplifyapp npm start
上記コマンドは、AmplifyでReactのアプリケーションを作成しますよという意味です。
Reactとは…
javascriptのライブラリです。UI(ユーザインタフェース)を作ることに特化したjavascriptで、
Node.jsというjavascript環境で動かせたりします。
Node.jsは、javascriptを動かすための環境というイメージで良いと思います。
「You can now view amplifyapp in the browser.t」と表示されているかと思います。
Cloud9の「Preview」タブから、「Preview Running Aplication」をクリックしてみましょう。

Preview用のブラウザが開かれます。Reactのシンボル?みたいなものが表示されていればOKです。

続いて、AmplifyのCLIをインストールします。「You can now view amplifyapp in the browser.t」が表示されている場合は
Ctl+cで解除できます。
npm install -g @aws-amplify/cli
続いて、Amplifyの設定をしていきます。
amplify configure
「Press Enter to continue」が出た場合はEnterキーを押しましょう。
そうするとRegionの選択画面がでます。DrupalだとRegionは画面上の領域ですが、AWSではどの国の資源を使用するかという意味になります。
AWSは世界各国に大規模な基盤施設を建てており、私たちはその施設の資源(基盤)を利用してAWSを使用しています。
ここでは東京リージョン(ap-northeast-1)を選択しましょう。
Specify the AWS Region ? region: eu-west-1 eu-west-2 eu-central-1 ❯ ap-northeast-1 ap-northeast-2 ap-southeast-1 ・・・
「Specify the username of the new IAM user:」と聞かれますので、IAMで作成したユーザ名を入れましょう。
ユーザが作成され、「Press Enter to continue」と表示されるので、Enterを押します。
「Enter the access key of the newly created user:」でAccess keyを入力してもEnterを押します。
「secretAccessKey」も聞かれるので、入力しましょう。
「? Profile Name: (default) 」ではEnterで良いと思います。
「Successfully set up the new user.」が表示されれば成功です。
secretAccessKey等の情報は、IAMユーザを作成した際にダウンロードしたcsvファイルに記載されています。
続いて、Amplifyの初期化を行いましょう。
amplify init
「? Enter a name for the project (amplifyapp)」では、特にプロジェクト名はつけないのでEnterを押します。
「? Initialize the project with the above configuration? (Y/n) 」は、初期化しますか?と聞かれているのでYを入力してEnterを押します。
「? Select the authentication method you want to use: (Use arrow keys)」では、「❯ AWS access keys 」を選択してEnterを押します。
「accessKeyId」と「secretAccessKey」が聞かれるので、IAMユーザの情報を入力しましょう。
「? region: (Use arrow keys)」では「ap-northeast-1」を入力します。するといろいろ準備されます。
「Try “amplify add api” to create a backend API and then “amplify publish” to deploy everything」が表示されれば成功です!
ここまでで、Amplify上にアプリが作成されました。AWSでAmplifyと検索し、Amplifyのメイン画面に行ってみてください。
amplifyappというアプリが作成されているはずです。

では、以下でデプロイしてみましょう。
amplify publish
あれ、「 Please add hosting to your project before publishing your project」と出てしまいました。
ホスティングしてくださいとのことです。
ホスティングとは…
「サーバを借りる」という意味のようですが、AWSではどのような意味なのか、という情報は見つけられていません。
Amplifyのアプリをどのサーバにおくかを設定するという意味だと思っています。
ではホスティングしてみましょう。
amplify add hosting
なにやら2つから選べるようです。
❯ Hosting with Amplify Console (Managed hosting with custom domains, Continuous deployment) Amazon CloudFront and S3
S3はストレージサービスとのことで、S3のストレージ上にアプリが配置されるのかーと推測できます。
無料利用枠では15Gまで使用可能とのこと。
Hosting with Amplify Consoleは、Amplify用のストレージで、これも5Gまで使用できるらしいです。
Amplify用だということもあり、今回は「Hosting with Amplify Console」を選択したいと思います!
以下が表示されます。
Continuous deployment (Git-based deployments) ❯ Manual deployment Learn more
デプロイは主導で実施するので、そのままEnterです。
「You can now publish your app using the following command:」が表示されれば成功です。
では、あらためてデプロイしてみましょう。
amplify publish
設定に間違いないか聞かれるので、Yを入力してEnterを押しましょう。
| Category | Resource name | Operation | Provider plugin | | -------- | -------------- | --------- | ----------------- | | Hosting | amplifyhosting | Create | awscloudformation | ? Are you sure you want to continue? (Y/n)
設定に間違いないか聞かれるので、Yを入力してEnterを押しましょう。
問題がなければ以下のような文字が表示され、その下にhttps://~amplifyapp.comと表示されるので、そのURLにアクセスしましょう。
✔ Zipping artifacts completed. ✔ Deployment complete! https://~amplifyapp.com
reactの画面が表示できれば成功です!

デプロイすると誰でもアクセスできる状態になります。
今回、デプロイしたアプリを停止する方法が見つからなかったので、デプロイされている状態が嫌な方は残念ですがAmplify画面からアプリの削除をお願いします。。
どうやって制御するんだろう。。今後はデプロイせず、「Preview Running Aplication」で確認していきたいと思います!