「AWS 初心者向けハンズオン」初心者なりの感想

#きっかけ
上長の勧めでQiitaに投稿することにしました！
初の投稿はAWSの初心者向けハンズオンで、未経験の僕がコケた箇所についてです。

[ハンズオン資料|AWS クラウドサービス活用資料集](https://aws.amazon.com/jp/aws-jp-introduction/aws-jp-webinar-hands-on/)

#ハンズオン資料一覧（21/05/16時点） 
この投稿執筆時点でのハンズオン資料は以下の通り。

 - ハンズオンはじめの一歩: AWS アカウントの作り方 & IAM 基本のキ
 - Security #1 アカウント作成後すぐやるセキュリティ対策
 - Network編#1 AWS上にセキュアなプライベートネットワーク空間を作成する
 - Network編#2 Amazon VPC間およびAmazon VPCとオンプレミスのプライベートネットワーク接続
 - スケーラブルウェブサイト構築編
 - AWS 上で静的な Web サイトを公開しよう！
 - 監視編 サーバーのモニタリングの基本を学ぼう
 - サーバーレスアーキテクチャで翻訳 Web API を構築する
 - AWS SAM を使ってテンプレートからサーバーレスな環境を構築する
 - AWS Lambda と AWS AI Services を組み合わせて作る音声文字起こし & 感情分析パイプライン
 - CloudEndure Migrationを使ってオンプレミスサーバーをAmazon EC2に移行する
 - AWS 環境のコード管理 AWS CloudFormationで Web システムを構築する
 - AWS Code サービス群を活用して、CI/CD のための構成を構築しよう！
 - AWS Managed AI/ML サービス はじめの一歩　　　⇦現在ここまで修了
 - 手を動かしなら学ぶ Analytics サービス入門
 - Amazon CloudFrontおよびAWS WAFを用いて エッジサービスの活用方法を学ぼう

修了したハンズオンに関して簡単に内容、初心者なりの感想と学びをまとめていきます。

#内容と感想
###ハンズオンはじめの一歩: AWS アカウントの作り方 & IAM 基本のキ
AWSアカウントの作成とIAM(グループ、ポリシー、ロール)について。
IAMユーザーについて、なぜ必要なのかを含めよく分かった。
IAMユーザーに関しては後で地獄を見たのでちゃんと理解しといたほうが良いです...

###Security #1 アカウント作成後すぐやるセキュリティ対策
AWSのセキュリティについてと、IAMユーザーの作成を行なった。
ここで作ったIAMユーザーを以降のハンズオンでずっと使っていける。
どのハンズオンをやるにしても、初心者なら一旦これと1つ前の「IAM 基本のキ」やっといた方が良さそう。

###Network編#1 AWS上にセキュアなプライベートネットワーク空間を作成する
VPCの作成、ルートテーブルの設定、ブライベートサブネットからインターネットへの接続。
前提条件として、ルーティング、ネットワークの基礎知識が必要と説明があったが、なくてもなんとかなった。

###Network編#2 Amazon VPC間およびAmazon VPCとオンプレミスのプライベートネットワーク接続
VPCについてもっと詳しく。
VPC同士、VPCとオンプレ環境の接続を行なった。
Network編#1に比べ構成が複雑で難しかった。

###スケーラブルウェブサイト構築編
WPをインストールしたサーバ2台用意し、ロードバランサーによって冗長化、負荷分散を行なった。
作成済みのサーバからAMIを作成し、2台目のwebサーバを作成した。
インスタンスのマルチAZ化を行い、片方のEC2を停止させてもページが閲覧できることを確認した。
Network編がタイポとの戦いだったのに比べ、こちらはコード記述が少なくスムーズだった。
こちらも構成する要素が多く全体を理解するのが難しかった。

###AWS 上で静的な Web サイトを公開しよう！
S3の静的ホスティング機能を使用した。
Cloud9環境で静的コンテンツを開発し、S3にアップロード。
CloudFrontを使い画像をキャッシュさせた。
構成が単純で分かりやすかった。
Cloud9を初めて使った、ブラウザでコードが書けるなんて、感動した。

###監視編 サーバーのモニタリングの基本を学ぼう
CloudWatchの使い方を学習した。
EC2一定以上の使用率でのアラート発報。
WPのアクセスログ、エラーログの確認、解析。
監視ダッシュボード作成。
メトリクス、ロググループなど概念は難しかったが、最終的に出力されるのはグラフなので、
概ね視覚的で分かりやすかった。
エラーログ読むの難しい...

###サーバーレスアーキテクチャで翻訳 Web API を構築する
Lambda, API Gateway, DynamoDBを使用。
サーバレスについて学習。
構成が単純でわかりやすかった、サーバレス便利やな。

###AWS SAM を使ってテンプレートからサーバーレスな環境を構築する
Lambda, SAM, DynemoDBを使用。
Cloud9でLambda関数の作成。
SAMでLambda関数、API Gatewayのリソース、DynamoDB TBLの作成、
構成は割と単純だったが、コードの記述パートが長いと難しく感じる。
各要素同士の繋がりを理解するのが難しかった。

###CloudEndure Migrationを使ってオンプレミスサーバーをAmazon EC2に移行する
CloudEndureを用いてサーバの移行を行なった。
とても単純で分かりやすい講座だった、ボリュームも他の半分ほどだった。
移行を行う際のCloudEndureの細かな設定以外は理解できた。

###AWS 環境のコード管理 AWS CloudFormationで Web システムを構築する
AWS環境をコードを用いて管理する方法について学んだ。
CloudFormationを用いてインスタンスの起動、設定の変更を行なった。
スタックの作成を行なった。
コードで環境を管理する方法の概要を掴めた。
タイポとエラーがしんどかった。

###AWS Code サービス群を活用して、CI/CD のための構成を構築しよう！
Pipelineの使い方について学んだ。
CodeBuild, CodeDeploy, CodePipelineを使用しEC2インスタンスをデプロイとした、CI/CD環境を構築した。
今のところ最もきつい講座だった、難度は他と変わらないが（多分）ハマりまくった。
特に時間がかかったポイントは3つ
1. IAMロールの消し忘れ : Pipeline作成時に自動で生成されるIAMポリシーをやり直すうちに消し忘れ、Buildでエラー。
2. タイポ : オプションの不足、パスのコピペミス、etc...
3. デプロイができない : 結局やり直し上手く行ったため、原因は分からなかった... デプロイが参照するS3が間違っており、appspec.ymlが見えないことが原因であることまでは判明。

###AWS Managed AI/ML サービス はじめの一歩
AI/MLサービスを体験した。
Personalize, Forecast, Transcribe, Comprehend, Rekognitionなど。
AI/MLサービスをかじるだけだったので、スムーズに終わったが内容は薄かった。
手軽に機械学習の技術を使えることはよく分かった。

#全体としての感想
AWSのサービスについて少しずつ分かってきた。
ハンズオンによく出てくる定番サービスに関しては概要がわかるようになってきた。

昨年〜今年にかけての割と最近公開されたものしかないので、情報が新しくて良い。
1つ1つの動画が短いのもとっつきやすくてめちゃありがたい。
あと、そもそも初心者向けに解説しているので、くどいくらいしっかり説明してくれるのも嬉しい。
ただ、動画がハンズオンのページ内で見るタイプと、Youtubeの限定公開の２パターンあるが前者がかなり使いづらい。
プレーヤーの大きさを自由に変えれない、数秒のスキップができない、の2点が特に辛い。できれば全部Youtubeで上げて欲しいなあ。