よるあるWebのAWS
- #AWS
 - #Architecture
 - #Best Practices
 - #Scalability
 
- 2019/04/20
 
イメージ

AWSの各サービスについて
EC2
EC2とはサーバーのことです。
基本構成ではWebサーバー(アプリケーション)、batchサーバー(定期実行関連)、FTPサーバー(外部連携とか)とかを設定したいと思いますでのこれらのサーバーはEC2を使用して設定をします。
※ なおここではインスタンスクラスや料金、EBS, EFSに関しては触れないものとします。
RDS
RDSとはデータベースのことです。一般的に広く使用されているリレーショナルデータベースを使用することができます。(MySQL、PostgreSQL、Oracle等も使用することができます。)
RDSではマスターとリードレプリカ(スレーブとして使用)での運用を想定しています。
マスターで書き込まれたデータをスレーブに同期させる構成です。
※ こちらでもインスタンスクラスや料金に関して、DynamoDB等には触れません
S3
S3はストレージのことです。
画像や圧縮ファイルなどはこちらに配置して利用することを想定しています。
S3ではバケット単位で(ディレクトリのようなもの)ファイルを管理することができるため、オンプレのファイルサーバーとかと同様なイメージで使用することができます。
AWSのEC2を使用してアプリケーションを構築している場合、SDKを使用することでかんたんにS3にアップロードすることができます。
※ こちらでは料金、Glacier等については触れません。
VPC
VirtualPrivateCloudのことでネットワークを切り分けることができます。
今回はVPCは1つで設計したいと思います。
通常はFTPサーバーを使用する場合は外部からのアクセスがあるため、切り分けた方がいいかもしれません。
ELB
ロードバランサーのことです。
複数のWebサーバーに対してアクセスをバランシングしてリクエストの負荷を分散します。
ロードバランサーを設定する上でサブネット等が関連してくると思いますが今回は省略します。
ACM
無料でSSL化をすることができる、証明書のことです。
これを使用することでSSL化を実施する想定です。
CloudFront
CDNサーバーです。S3に直接アクセスが行くと、通信料金が莫大なものとなってしまうためCDN経由(CF経由)で通信を行います。
CFを経由させることでデータがキャッシュされ、通信速度の改善にもなります。
Route53
DNSサーバーの役割をするものです。こちらにAレコード、CNAMEレコード等を設定します。
今回はメール関連の情報は設定しないものとします。(AWSにはメールの送信サービスであるSESというサービスもあります。)
Lambda
トリガーを設定して関数を実行することができます。詳しい使用方法は他の記事を参考にしてください。
CloudWatch
各リソースの監視をすることができます。
例えばEC2のCPU使用率、メモリ使用率、RDSのメモリ使用率、SESのバウンス率、各死活監視関連などを設定し、通知設定をすることができます。
詳しい設定方法はこれも他の記事を参考にしてください。
CodeDeploy
GitのホスティングサービスのBitBucketやGitHubから設定をすることで、ボタン1つでデプロイができるようになるサービスです。
もちろん、DEV、STG、PRODのように切り分けを行うこともできます。
IAM
各サービスにアクセスの認可をするためにEC2やアプリケーション側でIAMの設定をする必要があります。
こちらは省略とします。需要があれば別途記事にします。