はじめに
つい先日、AWS Hands-on for BeginnersにAWSの入門者向けECSコンテナハンズオンが追加されました!(2022年6月末)
https://t.co/RIhTYFngCI
今回はその概要と感想を書きたいと思います。
AWS Hands-on for Beginnersシリーズはわかりやすい解説動画と手順書はAWSによって用意されていますが、AWSアカウントは自分で用意する必要があります。
ハンズオンの概要
概要は以下の公式ブログにまとめられています。
https://aws.amazon.com/jp/blogs/news/aws-hands-on-for-beginners-21/
このハンズオンの対象者は以下のように記載されてます。
- コンテナに今まで触れたことが無く、新たに学習したい方
- Amazon ECS を使って、インターネットにコンテナを公開する方法を知りたい方
- ステップバイステップの説明を動画で確認しながら、ハンズオンを進めていきたい方
つまり、以下のような内容についてはあまり言及されていません。
- Dockerfileのベストプラクティス的な話
- EKS(Kubernetes)
- コンテナセキュリティ
上記の内容はNext StepとしてAWS サービス別資料が紹介されているので、観てみると良いかと思います。
中身に関しては手順書と動画が充実しすぎているため、スクリーンショット等を貼って補足する必要がないです!!
詰まったところ
- サービスデプロイに失敗する
- タスク定義でイメージURLを入力する際、手順書に記載のパラメータを一部書き換える必要がある
- 手順書に記載のパラメータをそのまま入れてしまいサービスデプロイに失敗する
- 停止されたタスクでのエラーの確認の手順でエラー内容を確認し、「CannotPullContainerError」が発生していたため、タスク定義に問題があると判明
- クラスター、タスク定義、サービス間の依存関係のせいか、タスク定義だけを修正しても上手くデプロイできなかったため、クラスターの作成からやり直して、どうにか完遂。
- サービスのDNS名をクリックし、コンテナにアクセスしようとしたところ503エラーが出る
- 停止されたタスクでのエラーの確認の手順でエラー内容を確認し、「Task failed ELB health checks in」とエラーが出ていた。
- 「Fargate での Amazon ECS タスクのヘルスチェックの失敗をトラブルシューティングするにはどうすればよいですか?」を参考にタスク定義のコンテナポートを確認したところ、ポートが76になっていた。
- ポートを修正して再デプロイしたらヘルスチェック が通った。
結論:手順書をちゃんと読め!
感想
- 書籍やネットの記事等、テキストと画像の無料ハンズオン資料はたくさんあります.
- しかし、分かりづらかったり、読むのが面倒だったりで途中で自分は挫折することがあります。
- そう考えると動画でハンズオンで手元を映してくれているだけで、ハンズオンが捗ると思いました!
余談
- ハンズオンが終わった後に気づいたのですが、コンソール上からポチポチとECSリソースを作成している裏で、実はCloudFormationのスタックが作成されていました。
AWS CLIとかを使ってECS関連のリソースを作成した方が理解が深まりそうに感じます。
↓クラスター、タスク定義、サービスでスタックが作成されている。
おわりに
最近、コンテナに関するAWSトレーニングが充実してきている気がします!
それだけ需要があるということなので、このコンテナの波に個人として乗り遅れないために、
「まだコンテナを触ったことがない」
「コンテナに関しては自信がない...」
という方はこの機会にぜひハンズオンをやってみてください!!