Amplifyでアプリ制作を通じて学んだAWSについてまとめてみました。
#そもそもAWSとは
AWSとはAmazon Web Servicesの略で、Amazonが提供している200以上のクラウドコンピューティングサービスの総称のことになります。
2020年時にクラウドマーケットは10兆円規模で、AWSはその中で33%のシェアとトップでした。
(2番目はAzure(18%)、3番目はGoogle Cloud(9%)、4番目はAlibaba Cloud(6%)...と続いていきます)
そもそものクラウドコンピューティングサービスはコンピューターの機能、サーバー、ソフトウェアを、ネットワーク上からダウンロードして利用することのできるサービスのことです。
初期投資が無料だったり、サーバーやストレージ、データベースを迅速に立ち上げて使用することができると言うメリットがあります。
大企業や公的機関がクラウドへの乗り換えは今後はますます増えています。なので今のうちにクラウドについて学ぶことは大切になってきます。
その中でトップシェアを誇るAWSを勉強しておけば、かなり市場価値は上げれるようになるので、何を勉強するべきか迷っている人にはAWSは良い選択肢だと思います。
#Amplifyとは
AmplifyはAWSを使用したスケーラブルなWeb・モバイルアプリ開発のためのフレームワークです。Amplifyを用いることで複雑なバックエンドの構築、アプリケーションとの結合、バックエンドとインフラをAWSにサーバーレスに任せることができます。インフラ構築からデプロイまでを一気通貫で行えます。
Amplifyは以下の三つの要素で構成されています。
・Amplify CLI
・Amplify Framework
・Amplify Console
Amplify CLI
コマンドベースで各種AWSサービスを対話式で設定や構築するツールのこと。
(CLIではAPI、Authentication、Storage、Functions、Hostingなどができます。)
Amplify Framework
クライアント側のフレームワークで、UIコンポーネントや各種JavaScriptライブラリのこと。
Amplify Console
静的なホスティング機能とCI/CD等のデプロイ機能を自動化したマネージドサービスのこと。
Amplifyの魅力はさまざまなAWSサービスとフロントエンドアプリケーションのつなぎこみが簡単に行えるのでスピード感を持ってアプリを作れることかなと思います。
#Amplifyを触って学ベるAWSサービス
Amplifyでアプリを作っているとたくさんのAWSサービス(Cognito、AppSync、DynamoDB、Lambda、S3、EC2など)が出てきます。
自分はAmplifyを触る前は全くAWSを触ったことがなかったので全てのサービスが新鮮でした。Amplifyを触るうちに理解できるようになりましたが、事前に知っておいた方が断然良いです。なので、AWSについて全く知らない方は少しインプットしてからAmplifyに挑むことをお勧めします。お勧めのUdemy講座を貼っておきます。
上記のサービスの中でかなりCognitoとAppsyncが好きになったので、最後にこの二つのサービスについて学んだことを書いて終わりにしたいと思います。
##Cognito
ウェブアプリケーションやモバイルアプリケーションの認証、許可、ユーザー管理をしてくれるサービスになります。
Cognitoの特徴としてユーザープールとIDプールが上げらるかと思います。
ユーザープールはアプリユーザーのサインアップとサインインオプションを提供するユーザーディレクトリで、IDプールはAWS の他のサービスに対するアクセスをユーザーに許可してくれます。
Amplifyでアプリを作っていく中で認証を実装時やGraphQLのスキーマを定義時にCognitoの知識が必要になります。ここの知識がないとDynamoDBにデータを取りに行く際に権限がないと怒られたり、ログインしていないユーザーが権限を持ってしまったりと意図した挙動をしなくなることがあるので、かなり大切になるかと思います。
##AppSyncとは
AppSyncはGraphQLのエンドポイントを提供してくれるサービスで、DynamoDB や Lambda、その他のデータソースとの安全な接続に必要な、面倒な作業を自動的に処理してくれます。
(AppSyncは直接DynamoDBの値を取得・更新・削除することができます)
従来のREST API 形式だとAWSではAppSyncではなくAPI Gatewayを提供しています。
AmplifyでCRUDアプリを作ったりと何をするにもAppSyncは必要になります。
個人的にはAmplifyを触っていれば自然と動きは理解できるのかなと思います。
#最後に
もっとAWSについては学んでクラウドに強いエンジニアを目指していきたいです。
Amplifyのドキュメンントに目を通しつつハンズオンチュートリアルをやるとかなり理解度が上がるので、Amplifyに挑戦したい方はぜひやってみて下さい。
参考記事