アプリエンジニアのためのAWS入門 概要編
はじめに
アプリエンジニアとして日々アプリ側の開発をしていると、いざ自分で開発からデプロイまでやらなければならなくなった時にインフラの知識が足りずに困ったということになりがちではないだろうか。
ここではそんな諸兄(というか自分)のためにアプリエンジニアが0からAWSを学んでいく際の手順をまとめていきたいと思う1。ちなみに筆者はもともとAndroidメインのスマホアプリエンジニアで現在は業務系ウェブアプリエンジニア(サーバサイド含む)なので、ここでのアプリエンジニアとは「主にバックエンドよりも上のレイヤーで開発するエンジニア」ぐらいの広義の意味合いで捉えてほしい。
AWSについての知識はなくても問題ないが、基本的なネットワークやサーバサイドアーキテクチャの知識はあった方がわかりやすいと思われる。サーバサイドの基礎知識を手っ取り早く身につけたいなら一例として以下の本でもさらっと見ておくと有用かもしれない2。
- 作者: きはしまさひろ
- 出版社/メーカー: SBクリエイティブ
- 発売日: 2016/03/29
- メディア: Kindle版
- この商品を含むブログを見る
なお本シリーズはQiitaの以下の超人気シリーズを参考にさせていただいた(ありがとうございますありがとうございます)。
続編はこちら
AWSの主要サービス
AWSの新参者が避けて通れないものとして「AWSサービス多すぎ問題3」があるが、Amazonの中の人による以下のスライド14枚目を見ると、それぞれの主要サービスの位置付けを把握する参考になった。
とりあえずサーバ立ててアプリを動かすという基本的なユースケースのためには以下のサービスについて概要を把握しておけばよさそうということがわかった。
EC2
Elastic Compute Cloudの略。いわゆる仮想サーバのこと。スケールアップ・スケールダウンが容易で何でも自由に動かせるレンタルサーバみたいなもの。
RDS
Relational Database Serviceの略。RDB用のDBサーバでMySQL、Oracle、PostgreSQL、Microsoft SQL Serverが使える。
Dynamo DB
RDSのNoSQL版。
S3
Simple Storage Serviceの略。読んで字の如くストレージを提供するサービス。HTML等を配置して静的なサイトをホスティングすることも出来るらしい。
VPC
Virtual Private Cloudの略。AWS内に仮想的なプライベートネットワークを構築する。 複数のサブネットを構築することによる可用性の向上、プライベートサブネットを構築することによるセキュリティの向上等が実現できる。
ALB(ELB)
Application Load Balancerの略。旧バージョンはElastic Load BalancerだがALBの登場によってClassic Load Balancer(CLB)に名称変更された模様。
これは各EC2インスタンスへのアクセスを振り分けるロードバランサーで、ALBになって高機能化されHTTP/2対応やパフォーマンス改善などがなされた。 詳細は以下の記事を参照。
【新機能】新しいロードバランサー Application Load Balancer(ALB)が発表されました | Developers.IO
Route53
AWSのDNSサービス。EC2インスタンスやロードバランサのIPアドレスにドメイン名を紐付ける。
Elastic Beanstalk
上記の各サービスを一括で諸々設定してくれるもの。本番環境のプリセットを提供してくれるものと思っておけばよさそう。 詳細は以下の記事を参照。
AWS再入門 AWS Elastic Beanstalk編 | Developers.IO
参考
各サービスの概要把握には以下の公式ガイドが便利だった。