AWSと主要サービスについて

# AWS

AWS(Amazon Web Services)とはアマゾンが提供しているクラウドサービスのこと。

3 大クラウドサービスのうちの一つ。AWS の他には GCP(Google Cloud Platform)と(Microsoft の)Azure がある。

アマゾンが保有しているコンピュータリソースを使用量に応じた従量課金制で使用することが可能。

オンライン上でインフラ・システム機能を組み合わせて構成を実現する仕組みとなっている。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3763202/0c6a9ea2-2f8c-c2cd-74a6-eacf887a1817.png)

地理的に離れた領域のことを **リージョン** といい、各リージョン内の複数の独立した場所を **AZ(アベイラビリティゾーン)** という。

災害などの障害に備えて複数のリージョンを使い分けてシステム構築することができる。

日本国内のリージョンは「アジアパシフィック（東京）リージョン」が 4 つの AZ を持つリージョン、「アジアパシフィック（大阪）リージョン」が 3 つの AZ を持つリージョンである。

- 東京リージョン ap-northeast-1
- 大阪リージョン ap-northeast-3

東京リージョンは東京だけでなく、千葉・神奈川などを含む東京近郊に分散されているため、東京近郊がすべて被災しそれぞれのデータセンターが停止しない限りはシステムが稼働し続ける。

同一リージョン内の複数の AZ を使った構成のことを`マルチAZ構成`という。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3763202/3c54f94e-6f57-ea13-3799-20ce44fdc067.png)

AWS リージョンにより利用できるサービスは異なる。

## AWS の仕組み

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3763202/0fc42311-b154-b146-fda7-4a239e3b90d5.png)

EC2 を利用する際に VPC 及びサブネットを作成し、その中にいれることでセキュアな環境で EC2 を利用することができる。

- __VPC(Virtual Private Cloud)__：AWS アカウント専用のプライベートな仮想ネットワークでネットワーク制御を行うために必要。サブネットをいれるための箱。
- __サブネット__：VPC の IP アドレス範囲。サーバや DB など具体的な AWS サービスを入れるための箱で VPC を細かく区切ったネットワークのこと。
  - Public subnet：インターネットから直接アクセスさせたいものをいれる
  - Private subnet：インターネットから直接アクセスさせたくないものをいれる

Web サービスの場合ほとんどが Private subnet にいれることになる。

- __DNS__：IP アドレスとドメイン名を紐づけて IP ネットワーク上で管理するシステム。
- __Route53__：AWS が提供する DNS サービス。AWS で開発した Web サービスを任意の URL で公開することができる。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3763202/08542b5f-fe42-e297-7f63-b50a8472b065.png)

## AWS 主要サービスについて

2024.6 時点で 324 個に渡るサービスがある。



### クラウドコンピューティングサービス

- __[EC2](https://aws.amazon.com/jp/ec2/)__：仮想マシンをクラウド上に作成してその上でアプリケーションを実行できるサービス。
- __[ECS](https://aws.amazon.com/jp/ecs/)__：Docker コンテナで実行できる仮想単位ごとに管理ができるコンテナ管理サービス。
- __[Lambda](https://aws.amazon.com/jp/lambda/)__：コードが実行されているときのみ利用料金がかかるサーバーレスなサービス。コードさえアップロードしたらサーバー管理が不要で、トリガーされた回数に応じて課金される。

### ストレージとコンテンツ配信サービス

- __[S3](https://aws.amazon.com/jp/s3/)__：データをバケットと呼ばれるコンテナに格納して保存するクラウドストレージサービス。Dropbox みたいなものとして扱ったり、サイトを表示するためのクラウドサーバーのように扱うことも可能。
- __[EBS](https://aws.amazon.com/jp/ebs/)__：AWS 内で EC2 インスタンスと組み合わせて利用できるブロック型に分割されたストレージボリュームサービス。自動的に複製されるためバックアップも万全。
- __[EFS](https://aws.amazon.com/jp/efs/)__：AWS 内で EC2 や ECS と組み合わせて使用できるファイルストレージサービス。各ファイルシステムは AZ 内で自動的に複製される。
- __[Glacier](https://aws.amazon.com/jp/s3/storage-classes/glacier/)__：データのアーカイブと長期バックアップを行うサービス。データを凍結して保管する。

- __[CloudFront](https://aws.amazon.com/jp/cloudfront/)__：グローバルコンテンツ配信ネットワーク(CDN)サービス。各地域にキャッシュを作り接続パフォーマンスを高速化させたり、コンテンツ保管を分散してDDoS 攻撃などに対する耐性向上も期待できる。

### データベースサービス

- __[RDS](https://aws.amazon.com/jp/rds/)__：クラウド内で簡単に RDB を作成することができるサービス。MySQL などのデータベースエンジンから選択することが可能。
- __[DynamoDB](https://aws.amazon.com/jp/dynamodb/)__：SQL 言語を使用せずにデータベース操作が可能な NoSQL データベースサービス。

### アプリケーションサービス

- __[SES](https://aws.amazon.com/jp/ses/)__：アマゾンがカスタマーとのやり取りを行うために開発されたメール配信プラットフォーム。E メールを受信して S3 のバケットに保存したり、Lambda を使用して E メールを受け取った際に自動でプログラムを実行したりと汎用性が高い。
- __[SNS](https://aws.amazon.com/jp/sns/)__：モバイル向けの通知サービス。プッシュ通知や SMS メッセージを多くの国に簡単に配信することができる。
- __[Mobile Hub](https://aws.amazon.com/jp/products/frontend-web-mobile/)__：クラウドを利用した iOS、android 向けアプリケーションが簡単に構築できる総合環境。

### セキュリティサービス

- __[IAM](https://aws.amazon.com/jp/iam/)__：AWS リソースをセキュアに操作するために認証や認可の仕組みを提供するマネージドサービス。

  `認証`：サービスの利用者が本人であるかを確認する仕組み  
  `認可`：サービスの利用者が適切な権限を持っているかを確認するための仕組み

- __[WAF](https://aws.amazon.com/jp/waf/)__：Web アプリケーションのセキュリティを侵害したりリソースを過剰に消費したりの可能性がある攻撃から保護するサービス。
- __[CloudWatch](https://aws.amazon.com/jp/cloudwatch/)__：サーバーやアプリケーションといった各種サービスの状態を監視するサービス。障害が起こりそうなシステムをいち早く察知し予防することが可能になる。

### 管理サービス

- __[CodeCommit](https://aws.amazon.com/jp/codecommit/)__：ソース管理サービス。Git の標準機能がサポートされており、Git からの移行が容易。
- __[CLI](https://aws.amazon.com/jp/cli/)__：AWS のサービスを管理するための総合ツール。コマンドをスクリプトにまとめて実行することで処理や制御を自動化できる。

## AWS メリット・デメリット

### メリット

- `セキュリティ対策`  
  AWS は ISO27001 などの世界各国の様々なセキュリティ標準の要件を満たしており、金融機関も利用できるレベルの堅牢なセキュリティを備えている。
- `機能改善と新サービスの提供`  
  ユーザーのフィードバックを反映させて改善したりと、利用者はいつでも最新の機能を持ったサービスの利用が可能。
- `使用した分に応じての費用`  
  利用料金は従量課金制となっているため利用した分だけ支払えばよい。アクセスが集中する期間のみサーバー補強したりなどといったことも可能なため年間のコストを抑えながらサーバー利用することが可能になる。

### デメリット

- 勉強コスト  
  サービスの種類が多くサービスの選択を適切に行えるかなどの判断が必要なため、知識や経験が必要になる。
- 費用コスト  
  従量課金制のため使い方によっては高額になる可能性もあり、また毎月の費用も読みにくい。

### 参考サイト

- [AWS 公式サイト](https://aws.amazon.com/jp/)
- [AWS リージョンとは？わかりやすく解説](https://managed.gmocloud.com/knowledge/aws/awsregions.html)
- [【図解AWS】Route53とは？初心者にもわかりやすく解説！](https://en-junior.com/route53/)
- [「AWS」とは？「Amazon Web Services」（アマゾンウェブサービス）のメリットと主要サービスをわかりやすく解説](https://ferret-plus.com/8310)
- [AWSのサービス一覧表！代表的な製品や利用するメリットも解説](https://www.nplus-net.jp/knowledge/2023/20230117091033.html)