会社での社内ツールを開発する際に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全般を程よい広さかつ程よい深さで学ぶことができた。その反面とても難しいわけではないので,
試験をうけるのはもったいない気もする…