作成背景
もくもく会のアウトプットです。
当日のTwitter
右上のTwitterマークで当日イベント内で触れられていたキーワードをもとに検索したページをぶら下げています
その他 #jawsugchiba で他の方のTweetも閲覧できるので、覗いてみてください
教材
https://jawsug-chiba.connpass.com/event/230717/
本日は、アマゾン ウェブ サービス ジャパン
のエンジニアも特別枠で参加頂いています🙌
🚨アマゾン
ウェブ
サービス
ジャパンが正しい表記らしいです🚨
☝App Runnerと同じと覚えましょう
検証する構成
Workshop - documents
https://dcj71ciaiav4i.cloudfront.net/3AD39960-4385-11EC-9B45-B775B6BEFB9F/
構成
EKSを取り扱う上での注意事項
Workshopには次の解説が書いてあります
Cloud9 では、AWS が管理する一時的なクレデンシャル (認証情報) を利用する機能がありますが、この機能は現在、EKS の IAM 認証と互換性がありません。そのため、本ワークショップではこの機能を無効にして手順を進めていきます。
- Cloud9上で一時的なクレデンシャルを削除します
$ rm -vf ${HOME}/.aws/credentials
$
$ aws sts get-caller-identity --query Arn | grep eksworkshop-admin -q && echo "IAM role valid" || echo "IAM role NOT valid"
IAM role valid
$
aws-auth ConfigMapを利用
私は個人で、AWS SSO + AWS Organizationsを利用しているのですが、
AdministratorAccessの権限を持っているロールで設定まで完了したものの、
EKSコンソールだと権限がないというエラーが表示されるので、こちらは後日確認してみます。
==========================-
$ kubectl describe configmap -n kube-system aws-auth
Name: aws-auth
Namespace: kube-system
Labels: <none>
Annotations: <none>
Data
====
mapRoles:
----
- groups:
- system:bootstrappers
- system:nodes
rolearn: arn:aws:iam::****:role/eksctl-eksworkshop-eksctl-nodegro-NodeInstanceRole-1I86XJGQ2L6K1
username: system:node:{{EC2PrivateDNSName}}
- groups:
- system:masters
rolearn: arn:aws:iam::::****::role/aws-reserved/sso.amazonaws.com/ap-northeast-1/AWSReservedSSO_AdministratorAccess_66f5415ccdd212c3
username: admin
mapUsers:
----
[]
Events: <none>
==================
実際に確認してみる
出来上がるサンプルアプリケーション
AWS X-Ray - Service Map
Amazon CloudWatch Container Insight
Amazon CloudWatch Log Insight
実際に追ってみた
調査の足がかり(トレース)
Frontend
多少の遅延はあれど遅くはない
Product-Catalog
このブロックが一番時間が掛かっているのでこの処理から優先度を高く確認する
Product-Detail
全く遅くはない
問題箇所のあたり(メトリクス)
Amazon CloudWatch Container Insightを使って、
CPUやメモリを確認したところ、不自然に跳ね上がる様子もなし
コンテナ内部(ログ)
ログを確認していったところ、よく開発でありがちな「とりあえずデバッグ用に入れておいたTODO残しておく」感じで分かりやすく記録されています
一通り終わってから
- Observabilityとして、どうアプローチを行うのかの練習をワークショップで訓練するといい
- AWS re:Invent後に英語中心ではあるがワークショップが増える傾向あり
- kubernetes(k8s)に慣れていない場合は、Pod/Nodeや各種YAMLの構成を今回の サンプルアプリケーションをもとにどのように作っているのかを見るといい
(個人的な)まとめ
今回実施したワークショップは、最近AWS公式に実施されていたイベントで公開されていたんですが、
業務都合で参加できず今回実施できてよかったです。
また、マイクロサービスのログを調査する経験も足りておらず、イベント中に気づけなかったものの、
実際にどのように追うのか学ぶことができてよかったです。