はじめに
こんにちは、nayaaaaです。
今回はペアプロ、EKSについてです。
どちらも初めてで良い学習機会だったので得た気づきや学びを書いていこうと思います。
ペアプロをやってみて
最近、業務で新機能の実装があり、フロントエンドの実装を担当することになりました。
今回の作業では、僕自身の開発言語の経験がほぼ初心者レベルだったため、ペアプロ形式で進めることになったのは、とても助けとなりました。
ペアプロから得た学び
一緒にペアプロを行った方は元プログラミングスクールの講師をされていたこともあり、説明が非常に分かりやすく、多くのことを学ぶことができました。
学べたのはプログラミング技術だけではなく、これまであまり活用できていなかったVSCodeの機能についても教えていただきました。
一方で実装作業の多くを相手に任せることののなってしまい、自分の技術力不足を痛感しました。実際に担当できたのはHTMLとCSSの修正、具体的にはモーダルやレイアウトの調整のみで、まだまだスキルアップが必要だと感じています。
ペアプロのメリット・デメリット
今回の経験を踏まえ、ペアプロのメリット・デメリットを整理してみました。
メリット
- 相手の理解度が自分より高い場合、学べることがとても多い
- 作業中の雑談を通じて相手のことを知り、人柄を知れる
- タスク分解の仕方や作業の進め方を見学することができる
デメリット
- 会話の際に相手に分かりやすく説明する必要があるため、疲労が大きい
- 経験差がある場合、一方に負担が偏ってしまう可能性がある
経験が浅い僕的にはメリットが多いので、ペアプロの経験ができたのはありがたいと思いました。
EKSハンズオン
EKSについては、AWS SAA資格の学習で基礎ぐらいは知っていたのですが、実際のハンズオン経験がなく、最近はインフラ業務から離れていたこともあり、今回実際に触ってみることにしました。
EKSでクラスターを作成する際は、裏でCloudFormationが動作し、VPCやNATGatewayなどの必要なリソースをスタックとして自動構築します。しかし、権限周りで何度かエラーが発生し、リソースの再作成を繰り返すことになりました。
こうした試行錯誤の過程で、権限不足により一部のスタックが正しく削除されずに残ってしまったりして、エラーの原因となってしまいました。
以下のようにスタックが作成され、CloudFormationが動作しているようです。
※画像ではアカウントIDが薄く表示されてしまうので塗りつぶしてます。
Nginx実行まで
今回はEKSクラスターにNginxを立てるところまでやってみます。
eksctlインストール
$ brew tap weaveworks/tap
$ brew install weaveworks/tap/eksctl
SSHキーの作成
$ ssh-keygen
クラスター作成コマンド例
$ eksctl create cluster --name eks-from-eksctl --version 1.30 --region {リージョン名} --nodegroup-name workers --node-type t3.medium --nodes 2 --nodes-min 1 --nodes-max 4 --ssh-access --ssh-public-key ~/.ssh/{公開鍵名} --managed
コンソールから確認
helmを使用してNginxを起動
$ brew install helm
$ helm create {chart名}
$ helm repo add bitnami https://charts.bitnami.com/bitnami
$ helm repo update
$ helm install nginx bitnami/nginx
AWSコンソールのEC2→ロードバランサーからDNS名を確認して、アクセスしてみましょう。
Nginxの画面が表示されればOKです。
学習後、EKSクラスターはちゃんと削除しましょう。
※コストが高いので消し忘れは要注意です。
$ eksctl get cluster --region {リージョン名}
NAME REGION EKSCTL CREATED
{クラスター名} {リージョン名} True
$ eksctl delete cluster --name {クラスター名} --region {リージョン名}
EKSクラスターと関連するリソースも削除することができます。
以下の出力が表示されればOKです。
yyyy-mm-dd HH:MM:SS [✔] all cluster resources were deleted
まとめ
今回、初めてペアプロを体験したのですが、技術面だけでなく、タスク分解の方法やVSCodeの機能についても学ぶことができました。
EKSについては、以前DockerDesktopでKubernetesの基礎を学んでいましたが、実際のクラウド環境では多くの違いがあることを実感しました。特にAWSの各種サービスとの連携や、権限管理の複雑さなど、EKS特有の特徴があるなと思いました。
以上、ありがとうございました!!


