aws主要サービス まとめ(資格試験対策)

どんな人向けの内容?

サービス紹介

筆者の好きな(興味のある)サービス順に紹介  
AWS クラウドサービス活用資料集から引用が多いです

 Lambda

  • コード(関数)を書いてアップロードするだけで実行できる(インフラを一切気にすることない)
  • AWSの各種サービスからトリガー起動が出来る(S3に画像ファイルをアップロードしたらサムネイル画像を生成して他のS3バケットに保存する等)
  • 100msごとの実行時間課金(実行されてない時は料金が発生しない)

Fargate

  • フルマネージドなコンテナサービス
  • クラスタスケジューリングやスケーリングはAWSが管理してくれる
  • Docker定義とCPUやメモリ、ネットワーク定義のみ考えるだけでアプリケーション起動

 Elastic Beanstalk

  • コード(jar等)をアップロードするだけで、インフラストラクチャの準備/運営からアプリ ケーションスタックの管理まで自動化
  • ロードバランサーやスケーリング設定/管理を行ってくれる
  • 環境変数の変更やアプリケーションの各種設定を簡単に行える

Cloud9

  • ブラウザのみでコードを記述、実行、デバッグできるクラウドベースの統合開発環境 (IDE)
  • Lambda関数をローカルでテストおよびデバッグするための環境を提供
  • EC2インスタンスへのターミナルアクセスが可能

 DynamoDB(Streams)

  • フルマネージドなNoSQLデータベースで容量無制限
  • ソートキー(レンジキー)を設定することでソートできる
  • LSIやGSIで工夫すればRDSの様な柔軟な検索条件等にも対応できる

 S3

  • 高い耐久性(99.999999999%)のストレージサービス
  • 静的なWebサイトをS3のみでホスティング可能
  • ACLやバケットポリシー、署名付きURL等で細かいアクセス制限が可能

 X-Ray

  • マイクロサービスアプリケーションの各リソース関係をグラフィカルに表示
  • 各リソース間のパフォーマンスやエラーを分析し、根本原因を特定できる
  • 簡単に組み込める(Springライブラリ提供、EC2にエージェントあり)

 Cognito(Identity/Sync)

  • フルマネージドな数億ユーザまでスケールするセキュアなユーザー管理サービス
  • ユーザー名・パスワード認証以外にも外部認証(Facebook/Twitter/SAML…etc)をサポート
  • ユーザーの複数デバイス間でデータの同期をサポート

 CloudFront

  • コンテンツをキャッシュしてユーザーへ高速に届ける
  • キャッシュの活用によりアプリサーバーへのトラフィックを軽減できる(約7分の1に減少した事例あり)
  • カスタムエラーページ(4xx,5xxの場合にsorryページ等)を定義できる

 API Gateway

  • 簡単にAPIのエンドポイントを定義できる(Swaggerからのインポートもあり)
  • 既存サービスの前に置く(Proxy)することでコードの修正なくRestfulなエンドポイントを定義
  • Lambdaをバックエンドに置くことでサーバーなしでAPIを実行

 RDS

  • フルマネージドなリレーショナルデータベース(Oracle,MySQL,PostgreSQL…etc)
  • 選択するだけで自動フェイルオーバーやリードレプリカ等の高度な設定を行える
  • 安全性・堅牢性に関わるソフトウェアパッチを自動適用

 Aurora

  • クラウド時代にAmazonが再設計したRDBMS(MySQL5.6と互換があり)
  • 高いクエリ実行並列度・データサイズが大きい環境で性能を発揮(MySQLと比較して、5倍高いスループットを計測)
  • 自動で再ストライピング、ミラー修復、ホットスポット管理、暗号化

 Auto Scaling

  • 需要に応じて自動的にサーバを増減しコスト削減できる
  • 障害発生時にインスタンスを切り離し、自動的に新しいインスタンスを立ち上げる
  • 予測できない見積もりに対する時間を削減できる(成長してきたら台数やキャパ変更の戦略が建てられる)

 CodeDeploy

  • AutoScalingと連動して複数台のインスタンスへ自動的にデプロイ
  • 複数台にデプロイする場合に1度にどれだけデプロイするか定義できる(全部、半分、1つ)
  • Blue/Greenデプロイを選択するだけで設定できる

 ELB(ALB/NLB/CLB)

  • 複数のEC2インスタンス/ECS Service に負荷分散(ELB自体も負荷に応じて自動増減)
  • SSLやスティッキーセッションのサポート
  • ヘルスチェックにより異常検知した場合はトラフィックを割り当てない(処理中のリクエスト終わるまで一定時間待つ)

 CodeStar

  • アプリケーションの構成(テンプレート)を選択するだけで、Code4兄弟(Pipeline/Commit/Build/Deploy)の設定とCloudFormationによるインフラ構築を行ってくれる
  • 最速でアプリケーション開発をスタートでき、継続的(CI/CD)インテグレーションの環境も整う
  • Wikiやコミットログ、アプリケーションの状態(CloudWatch)、CI/CD(CodePipeline)を1画面内で確認できる(ダッシュボード)

 Route 53

  • ポリシーベースの柔軟なトラフィックルーティング、フェイルオーバー、トラフィックフロー等に基づくルーティングが可能
  • 100%の可用性で提供(SLA)
  • フルマネージドサービス(DNSサーバーの設計・構築・維持・冗長性・性能・セキュリティ等の管理が不要)

 CloudFormation(SAM)

  • AWSリソースの環境構築を、設定ファイル(テンプレート)を元に自動化できるサービス(JSONやYAMLフォーマット)
  • ベストプラクティスが盛り込まれたテンプレートが使用可能(再利用が可能)
  • テンプレートをバージョン管理=インフラストラクチャをバージョン管理

 Kinesis Streams

  • ストリームデータ(ログ/メトリクス/センサーデータ…etc)を処理するためのフルマネージドサービス
  • 数多くのツールがデータ送信(CloudWatch/Fluentd…etc)とデータ受信(Lambda/Get* API…etc)をサポートしている
  • Pull型のデータ取得なため受信側が取得制御しやすい(自身のキャパで処理できる分を取れる)

 CloudWatch(Logs/Events)

  • AWS上で稼働するシステム監視サービス(死活監視/性能監視/キャパシティ監視)
  • 取得メトリックスのグラフ化(可視化)やログの参照/検索が可能
  • CloudWatch Eventsによりスケジュール(Cronっぽく)でLambdaを実行

 SNS

  • マルチプロトコルに対応したフルマネージド通知サービス
  • 様々なモバイル端末に同じ操作でプッシュ通知を送信
  • フィルタポリシーによりメッセージの送信を絞れる

 SES

  • REST API/SMTPでメールを送信できる
  • ウイルスやマルウェアが含まれるメッセージを検出するとブロックし、送信されるのを未然に防止
  • メール受信機能を使って、他のAWSサービスと連携可能