会社での社内ツールを開発する際にAWSを参考にすることが多いので, AWS認定 ソリューションアーキテクト[アソシエイト] という本を使って一通り勉強してみた。
内容
VPC (Virtual Private Cloud)
利用者ごとのプライベートなネットワークを作成できる。セキュリティグループやネットワークACL(Access Control List)を使って通信制御を行う。
CloundFront
HTMLファイルやCSS, 画像, 動画といった静的コンテンツをキャッシュし, オリジンサーバーの代わりに配信するCDN(Contents Delivery Network)サービス。ELBやEC2だけでなくS3をオリジンサーバにすることもできる。
Route53
ドメイン管理機能と権威DNS機能を持つサービス。以下のような自由なトラフィックルーティングが可能
- シンプルルーティング
- フェイルオーバールーティング
- 位置情報ルーティング
- 地理的近接性ルーティング
- レイテンシールーティング
- 複数値回答ルーティング
- 加重ルーティング
EC2 (Elastic Compute Cloud)
仮想サーバーを必要な数だけすぐに立てることができるIaaS型サービス。AMI(Amazon Machine Image)を選んでインスタンスを生成する。スポットインスタンスというAWSが余らせているEC2リソースを入札形式で安く利用する方式なんかもある。
ELB (Elastic Load Balancing)
ロードバランサーを提供するサービス。Auto Scalingという, システムの利用状況に応じて自動的にELBに紐づくインスタンスの台数を増減させる機能がある。
ECS (Elastic Container Service)
Dockerコンテナの実行環境を提供するサービス。
AWS Fargate
ECSのCluster用のEC2インスタンスを使わずにコンテナを動かすことのできるサービス。
EKS (Elastic Container Service for Kubernetes)
Kubernetesを利用する際のmasterを提供するサービス。
ECR (Elastic Container Registry)
コンテナイメージを管理するレジストリを提供するサービス。
Lambda
サーバーを用意しなくてもプログラムを実行できる環境を提供するサービス。
CloudWatch
定期的にAWSリソースの状態を取得し, 問題がある場合はそれを運用者に通知するサービス。CPU使用率などの基本的なログをモニタリングするだけでなく, CloudWatch Logsを使ってアプリケーションログをモニタリングしたり, CloudWatch Eventsを使って独自のトリガーと何かしらの後続のアクションとの組み合わせを定義したりできる。
CloudTrail
AWSリソースの作成やマネジメントコンソールへのログインなどの操作を記録するサービス。マネジメントコンソールの操作や, CLIやSDKを用いたAPIによる操作を記録する。
EBS (Elastic Block Store)
ブロックストレージサービス。EC2のOS領域として利用したり, 追加ボリュームとして複数のEBSをEC2にアタッチすることもできる。
EFS (Elastic File System)
容量無制限で複数のEC2インスタンスから同時にアクセスが可能なファイルストレージサービス。
S3 (Simple Storage Service)
非常に優れた耐久性(99.999999999%, イレブンナイン)を持つ, 容量無制限のオブジェクトストレージサービス。REST APIとしてアクセスすることができる。
Glacier
S3と同様の耐久性を持ちながら, 容量あたりの費用を抑えたアーカイブストレージサービス。データの取り出しに時間がかかる。
Storage Gateway
オンプレミスにあるデータをクラウドへ連携するための受け口を提供するサービス。
Snowball
ペタバイトを超えるような大容量のデータを転送するサービス
RDS
マネージドRDBサービス。MySQL, MariaDB, PostgreSQL, Oracle, Microsoft SQL Server, Amazon Auroraなどのデータベースエンジンから好きなものを選択できる。
DynamoDB
マネージドNoSQLデータベースサービス。
Redshift
データウェアハウス向けのデータベースサービス。
ElasticCache
インメモリ型データベースサービス。MemcachedとRedisの2種類のエンジンをサポートしている。
IAM (Identity and Access Management)
以下の4つの機能がある。
- IAMポリシー
- Action (どのサービスの), Resource(どういう機能や範囲を), Effect(許可/拒否)という3つの大きなルールに基づく
- IAMユーザー
- AWSを利用するために各利用者に1つずつ与えられる認証情報
- IAMグループ
- 同じ権限を持ったグループの集まり
- IAMロール
- 一時的にAWSリソースへのアクセス権限を付与する場合に使用する
KSM (Key Management Service)
暗号化鍵の作成と管理のためのマネージドサービス
CloudHSM
VPC内で専有のハードウェアを利用して鍵を管理するサービス
ACM (Amazon Certificate Manager)
AWS自身が認証局となってDV証明書を発行するサービス。無料。
SQS (Simple Queue Service)
メッセージキューイングサービス
SWF (Simple Work Flow)
ワークフローサービス。
Step Functions
ワークフローサービス。可視化の機能がある。
SNS (Simple Notification Service)
プッシュ型の通知サービス。
SES (Simple Email Service)
Eメール送信のサービス。
CodeCommit
ソースコードを管理するGitリポジトリサービス
CodeBuild
ソースコードのビルド/テスティングサービス
CodeDeploy
ビルドされたモジュールのデプロイサービス
CodePipeline
上記3つを束ねて一連の開発プロセスを自動化するサービス
CodeStar
上記4つを利用したCI/CD環境を自動構築するサービス
Elastic Beanstalk
定番のインフラ構成を自動構築するサービス
OpeWorks
Chef環境を提供し, OSより上のレイヤーの自動構築をサポート
CloudFormation
テンプレートを作成し, OSより下のレイヤーの自動構築をサポート
EMR (Elastic MapReduce)
分散処理フレームワーク。Hadoopに止まらずに様々な分散処理のアプリケーションをサポート。
Kinesis
ストリーミング処理プラットフォーム
Data Pipeline
データ処理やデータ移動を支援するサービス。
感想
AWS全般を程よい広さかつ程よい深さで学ぶことができた。その反面とても難しいわけではないので,
試験をうけるのはもったいない気もする…