Megu
バックエンドエンジニアがインフラを学ぶ①:一般構成編

バックエンドエンジニアがインフラを学ぶ①:一般構成編

2023.10.22

AWS
日記

はじめに

私自身、日頃はLaravelやコンテナを用いてWebアプリケーションの開発を行っている。
諸々アプリのユーザー数や規模がスケールするに連れてインフラ面の課題が見え隠れしてきたのでインフラ面を学びたいというのが課題意識の始まりである。

ざっとしか分からないインフラ

現在はインフラエンジニアが構築したECS,EC2,ECRの環境で開発を行っている。運用やリリースなどで必要な操作や知識はあるのだがそもそものネットワーク部分やVPC,ALB,EC2などの部分がふわっとしか理解できていないので内容を深掘りしていく。

参考著書

実際に利用した本は「AWSではじめるインフラ構築入門 第2版 安全で堅牢な本番環境のつくり方」。
ハンズオン形式で実際に手を動かしながら学ぶことができる。

学べた内容

●AWSアカウントとは
●IAMとは
●仮想ネットワーク(VPC, サブネット, アベイラビリティゾーン, NATゲートウェイ, ルートテーブル, セキュリティグループ)
●踏み台サーバーとキーペア
●EC2とwebサーバー
●ロードバランサーと負荷分散
●RDSと耐障害性
●S3
●Route53,独自ドメイン,DNS
●メールサーバーとAmazonSES
●ElastiCacheとRedis
●監視とCloudWatch

気づき

日頃はローカルではDockerを用いして開発をし、ECRとECSでコンテナをもとにステージングや本番環境を構築している。
コンテナ化されていることでブラックボックス化されている内容やインフラエンジニアがCircleCIを持ちしたリソースの更新で何をしているかずっと疑問だった。
一つずつ操作することで「この操作はあそこで自動がしている内容と同じだ」といった気づきが得られたと同時に実際に運用するには今回の愚直にリソースを作る方法ではなく、コンテナ化やCI,CDを用いた開発が必要だなと強く実感した内容だった。

今後試したいこと

内容はまとめると以下になる。
●複数人で開発する実際のプロジェクトではコンテナ化は必須にように感じた
●CI,CDを用いたリソースの管理方法やデプロイの自動化などをより深く把握したい
●個人開発などでAWSを使うには割高に感じた
●個人、スモールな機能、マイクロサービスなどはLambda, API Gateway, CloudFrontなどを用いたサーバーレス構成が向いてそう
なので次は実際に触った内容をコンテナ化する方法を行ってみたい。