概要
AWSの主要な各サービスを一行でまとめてみました。全てのサービスを網羅しているわけではないです。
AWS認定資格試験テキスト AWS認定 ソリューションアーキテクト-アソシエイトの本の復習がてらです。
読んだら何のサービスか聞かれて答えられるようになるかも。
ちなみにアイコンは公式のAWS アーキテクチャアイコンから取得できます。
ネットワークとコンテンツ配信
全ての始まりはネットワーク構築から。
リージョン・・・AWSがサービスを提供している国と地域のこと。
アベイラビリティーゾーン(AZ)・・・データセンターの集まり。リージョン内に複数のAZが含まれている。
VPC (Virtural Private Cloud)
プライベートなネットワークを構成するサービス。ゲートウェイ、サブネット、ルートテーブルなどを利用する。
CloudFront
サーバのキャッシュを配信するCDN(Contents Delivery Network)サービス。
Route 53
ドメイン管理とDNSを行うサービス。ドメインの取得や更新をしたり、ドメインとIPアドレスの名前解決をしたりする。
コンピューティングサービス
EC2 (Elastic Compute Cloud)
ELB (Elastic Load Balancing)
ロードバランサ。負荷分散することで障害を防いだり、Auto Scaling機能でインスタンスの台数を増減できる。
ECS (Elastic Container Service)
Dockerコンテナの実行環境を提供。サーバの設定なしでDockerを利用できる。
Lambda
サーバなしでプログラム実行する環境を提供。サーバレスアーキテクチャの中核。
運用支援サービス
CloudWatch
運用監視を支援するサービス。CPU使用率などのリソース状態やログを取得できる。
CloudTrail
AWSマネジメントコンソールやCLIにおける操作ログを監査するサービス。誤操作や不正アクセスの早期発見・追跡などに利用する。
ストレージサービス
ストレージの種類の違いは以下。
ブロックストレージ・・・データを物理的なディスクにブロック単位で管理するストレージ。
ファイルストレージ・・・ファイルシステムを構成してデータをファイル単位で管理するストレージ。
オブジェクトストレージ・・・ファイルにメタデータを追加してオブジェクトとして管理するストレージ。直接操作はできずHTTP経由で登録・削除・参照の操作が可能。更新頻度の少ないデータや大容量のコンテンツを保存する用途で使う。
EBS (Elastic Block Store)
ブロックストレージサービス。EC2のOS領域、追加ボリューム、RDSのデータ保存領域などに使用する。
EFS (Elastic File System)
ファイルストレージサービス。容量無制限で複数のEC2インスタンスから同時アクセスが可能。
S3 (Simple Storage Service)
オブジェクトストレージサービス。高耐久性&容量無制限で様々な用途に利用できる。
Glacier
オブジェクトストレージサービス。高耐久性&安価な費用&データの取り出しに時間がかかるため、アーカイブ用途で利用される。
Storage Geteway
オンプレミスにあるデータをクラウドへ連携するためのインターフェースを提供。独自のストレージは持たない。
データベースサービス
データベースの種類の説明は以下。
RDB (Relational Database)・・・データを表形式で表す。SQLを用いて操作する。
NoSQL・・・SQLを使わないデータベースアーキテクチャの総称。RDBのパフォーマスやデータモデルの問題に対処するために作られた。RDSを完全に置き換えるものではなくユースケースに応じて使い分ける。
RDS (Relational Database Service)
RDBサービス。エンジンはMySQL/MariaDB/PostgreSQL/Oracleなどがあり、クラウドの特性を生かしたAWS独自のAuroraも選択可能。
Redshift
データウェアハウス向けのRDB。列指向型データベース&分散並行実行により、素早く安価にビッグデータ解析を行える。
DynamoDB
NoSQLデータベースサービス。Key-Value型のデータベースで拡張性が高い。
ElasticCache
NoSQLデータベースサービス。インメモリ型のデータベースでパフォーマンスが高い。エンジンはMemcachedやRediesを選択できる。
セキュリティとアイデンティティ
IAM (Identity and Access Management)
AWSアカウント利用の権限を管理するサービス。IAMポリシー、IAMユーザ、IAMグループ、IAMロールなどの機能がある。
KMS (Key Management Service)
鍵管理とデータ暗号化を行う鍵管理サービス。キーを階層構造にすることにより高セキュリティを保つ。
AWS Certificate Manager
AWS自身が認証局となり、RSA鍵とサーバの証明書の作成・管理を行う。AWSのサービスから無料で利用できる。
アプリケーションサービス
用途に合ったアプリケーションサービスを利用することで効率的にシステムを構築運用できる。
いわゆるSaaS型のサービス群。
SQS (Simple Queue Service)
キューとメッセージを管理するキューイングサービス。キューを介することにより疎結合なシステム構成にできる。
Step Function
ワークフローを制御するサービス。ワークフローを可視化して編集することができる。
SNS (Simple Notification Service)
システムイベントの通知を行うプッシュ型の通知サービス。様々な通信プロトコルに対応している。
開発者ツール
以下のサービス群を利用することによりCI/CD環境を構築することができる。
メリットとしては他のAWSサービスとシームレスに連携できる。
CodeCommit
ソースコードを管理するGitリポジトリサービス。GitHub的なやつ。
CodeBuild
ソースコードのビルドやテスト実行するサービス。JenkinsやCircleCI的なやつ。
CodeDeploy
ビルドされたモジュールをデプロイするサービス。JenkinsやCircleCI的なやつ。
CodePipeline
上記3つのサービスを連携し、一連の開発プロセスを自動化するサービス。
CodeStar
上記4つのサービスを利用したCI/CD環境を自動構築するサービス。
プロビジョニングサービス
インフラの環境構築作業を自動化するサービス群。
Elastic Beanstalk
インフラ構成を自動構築するサービス。インフラに詳しくなくても素早く定番のWebサーバやBatchワーカー構成などの環境を構築できる。
OpsWorks
Chef環境を提供し、OSより上のレイヤーの自動構築をサポートする。Ansible的なやつ。
CloudFormation
JSONやYAMLのテンプレートを作成し、OSより下のレイヤーの自動構築をサポートする。Terraform的なやつ。
分析サービス
EMR (Elastic MapReduce)
分散処理フレームワーク。スポットインスタンスと併用することで低コストが実現できる。
Kinesis
ストリーミング処理プラットフォーム。データをリアルタイムで処理・可視化・分析できる。
Data Pipline
データ処理やデータ移動を支援するサービス。バッチ処理のELT操作などに使う。
おまけ:アーキテクト設計のコツ
信頼性・回復性
・障害をシミュレーションして復旧手順をテストする。
・障害から自動復旧できるようにする。
・スケーラブルなシステムにする。
・キャパシティ推測を不要にする。
・変更管理を自動化する。
パフォーマンス
・リソースを適切に選択する。
・リソースを継続的にモニタリングする。
・キャッシュを活用する。
セキュリティ
・IAMを活用して、AWS利用時のセキュリティを高める。
・セキュリティグループ、ネットワークACL、バックアップ、バージョニング、暗号化などを利用して、システムのセキュリティを高める。
コスト
・リソースの需要を一致させる。
・適切なインスタンスを購入する。
・アーカイブストレージを活用する。
運用
・各種サービスを利用して運用を自動化する。(Insfrastructure as Code)
・障害への検知と対応方法を理解する。
・リリース方法の種類を理解する。
最後に
記事に間違いや不明な点があれば遠慮なくご指摘ください!