会社でAWSを使い始めてはいます。
しかし、いわゆるモダンアプリケーション開発(今流行りの、サービスを色々組み合わせて、活かしたシステム開発)は全く素人です。
そこで、チュートリアルを通して、AWSでのモダンアプリ開発を実際に肌で感じました。
学んだことを、自分の視点でまとめておきます・・
今回行ったAWSモダンアプリ開発チュートリアル
過去にAWSで公開されていたものですが、現在はWebアーカイブになっているものです。
アーカイブが消される可能性もあるので、画像を貼っておきます↓
- 静的ウェブサイトの作成
- 動的ウェブサイトの構築
- データの保存
- ユーザーの登録
- ユーザーの分析
チュートリアルを行うことで、今まであまり触れたことがないAWSサービスに触れられます。
レベルはAWS初心者向きとなっていますが、初心者にはきつめの内容だったと感じます。
・・つまり私は初心者以下、AWSのスタートラインに立ててないということですね。
頑張ろう。
チュートリアルで注目のAWSサービス
今回のチュートリアルではじめて触れた、私の注目するAWSサービスをメモしておきます。
ちなみに、以下のようにAWSブックマークが埋まりました。
IAM、EC2、S3、VPCといった基本的なもの触ったことがあります。
それ以外の、Cloud9、ECS、DynamoDB、CodePipeline、Cognite、API Gateway、CloudFormation、Lambda、Kinesisといったサービスは初めて触れました。
私見での簡単にまとめると以下のとおり↓
- Cloud9…開発環境
- ECS…コンテナ
- DynamoDB…データベース
- CodePipeline…コード反映自動化
- Cognite…ユーザID管理
- API Gateway…API
- CloudFormation…システムまとめ(スタック)
- Lambda…コード実行
- Kinesis…分析
ざっくりしすぎですかね・・ このくらいの感覚です。
個人的に難しいと感じたのは、コンテナ/コード反映自動化の流れの部分です。
チュートリアルでいうと2つ目ですね。2つ目ですでに躓き、涙目になります。
デプロイの自動化という図で紹介されているものです↓
開発環境でコードを修正して、Gitコマンドを実行してリポジトリに反映したら、本番システムにも自動でコミットされる、という仕組みを作ったのですがかなり難解でした。
チュートリアルでの躓きポイント
チュートリアルに沿って進めると、ひととおりモダンアプリケーション開発を学べるのですが、一筋縄ではいきませんでした。
私かひっかかった箇所をちょっと紹介します。
1.AWS環境にデプロイするサンプルのコードが古くて動かない箇所あり(モジュール2)
⇒依存環境ファイル(requirements.txt)の、Flaskのバージョンを書き換えたら解消。
2.Dockerのビルドが失敗してコード自動反映ができなかった(モジュール2)
⇒DockerFileに指定したubuntuのバージョンをLatestから数値指定に変更したら解消。
3.CodePipelineで謎の失敗(回数制限にかかったらしい)(モジュール2)
⇒何回かリトライで進めた。
※これはAWS側ではなく、DockerHub側の制限のようです。
ちゃんと、DockerHubのアカウントを登録して、そのアカウントを使うようにすれば出なくなりそうですが、私はリトライで乗り切りました。
4.CloudFormationのスタックデプロイでエラー(モジュール5)
⇒ymlファイル内のPythonランタイムのバージョンを新しく書き換えたら解消
5.作成したリソースが消せない(モジュール5)
⇒依存関係をひとつひとつ消していき解消。
取りあえずエラーが出まくるので、エラー原因を調べつつ消していきました。
一番引っかかったのは、ロードバランサーが消せないこと。
結論として、API Gatewayのリンクでロードバランサを指定していたため、APIGateway側のリンクを削除すれば消せました。
チュートリアルにかかったAWS費用
3週間くらいでチュートリアルを終え、$39(日本円で5,000円くらい)でした。
しかし、AWSのセミナーに参加した時にもらった$50分のクレジットがあったので、0円の支払いで済みました。
クレジットが適用された後で、内訳を後から見ることができないようですが、主にEC2の利用料金がほとんどを占めていたと思います。
まあ、チュートリアルは早く終わらせて早めにサービスを消すのが良いと思います。
まとめ
1.AWSでのモダンアプリ開発のチュートリアルを試してみました。
2.AWS初心者向けとのことですが、難度は高く感じました。AWS以外にもDockerやGitも当たり前のように出てきます。
3.触れたことのないAWSサービスを使ったことで、モダンアプリ開発のイメージが少し明確になりました。
※中身のプログラムは全く理解できていませんが
4.エラーに遭遇した時の調査、対応は良い経験になったと思います。
5.各AWSサービスを使い、おおよその費用感もつかめました。
こういった開発を当たり前のように(歯を磨くように)できないといけない時代がくるのでしょうか。引き続き精進します。
コメント