AWSでよく利用されるサービス上位50選
EC2 (Elastic Compute Cloud)
- 仮想サーバーを提供するIaaSサービス
- ブラックボックス化しがち
- オンプレ→クラウド化する場合の第一候補
- セキュリティグループのインバウンド・アウトバウンド全開放はやめよう
S3 (Simple Storage Service)
- オブジェクトストレージ。静的ファイルやバックアップ用途に最適。
- バケットポリシーが便利
- ストレージクラスでコスト最適化が可能
- パブリックアクセスはSCPなど上位の制御でそもそも行えないようにしよう(インシデント率大抵1位)
RDS (Relational Database Service)
- マネージドなリレーショナルデータベース。
- 常時起動の従量課金(停止しても1週間で自動起動)
- RIやサーバレスの採用でコストを抑えることも可能
-> サーバレスの場合はメトリクス取得のアクセスで最小ACU:0にならない場合も - メンテナンスやバージョンアップ、バックアップなどオペレーションが発生しがち
Lambda
- イベント駆動型のサーバーレス実行環境
- ランタイムなどの管理もアプリ側に寄る
- SAMや3rdParty製のSeverlessFrameworkなども併せて採用される場合も多い
- サーバレス構成の場合によく採用されるが複数のlambdaで処理する構成となることが多いため処理フローがやや複雑化しがち
VPC (Virtual Private Cloud)
- AWS上の仮想ネットワークを構成
- コスト算出が難しいサービスの一つ
- エンドポイントで意外に費用がかかる(無料のタイプもあるがInterface型などが1つにつき1kかかったりする)
-> VPCをTGWで繋げてインターネット通信を統合し、安くさせるなども可能
IAM (Identity and Access Management)
- ユーザーとアクセス権限を管理。
- 呼び方がブレやすい、IAM、SSO、IdC、IICなど
- IAMユーザーの払い出しやアクセストークンの利用はしないようにしよう(インシデント率2位)
- 複数アカウントでの運用やSTSなどの一時クレデンシャルの発行、IAMロールでの認証など仕組みは複雑だが有用なものも多い
- アクセス権限管理は終わりのない仕事
- ポリシーサイズなどの上限に意外に引っかかるので頭にいれておくこと
- 承認フローで権限付与する仕組みを構築・運用できるとベストか
CloudWatch
- 監視、メトリクス収集、アラーム設定。
- ロググループに設定するメトリクスフィルターが見落としやすい -> !sfnの削除でロググループが削除されメトリクスフィルターをトリガーにしていたCWアラームが動かなくなるなど
CloudFormation
- インフラ構成のコード化(IaC)。
- いつも現行との差分(ドリフト)やIaCから外れたリソースとの闘い
- CDKと重なる部分もあるが、それぞれメリットがあるので状況、ケースに応じて使い分けれるとベスト
ECS (Elastic Container Service)
- EC2と並んで起動時の費用で課金されるので高くなりがち
- Dockerコンテナの実行・管理。
- 大抵ECRも合わせて運用することになる→ただエンドポイント費用もかかるのでレジストラはまとめるほうが吉
- lambdaで賄えるなら運用コストはそっちのほうがコスパはいい。
- セキュリィ対策のためコンテナ用のエージェントを付与することも可
EKS (Elastic Kubernetes Service)
- Kubernetesのマネージドサービス。
DynamoDB
- スケーラブルなNoSQLデータベース。
- ElastiCacheと違って永続性を担保しているのが大きな違い
Route 53
- DNSサービス。ドメイン管理と名前解決。
- DNS Firewallなどのクエリに対してのセキュリティサービスもあり
- 登録費用、更新費用などは随時確認すべき。またコスト面であればCloudFlareRegistrationの方が原価のため安い。
- Route53のホストゾーンであればエイリアスレコードなどが利用できる
CloudFront
- グローバルCDNサービス。
- システム構成によって接続元IPがクライアントIPではなくクラウドフロントのIPになるため注意
- キャッシュなどの特性上、反映までのタイムラグや手動キャッシュ削除も考慮することが求められる場合も
- キャッシュのTTLを0にして実質的にWAFやhttpsなどのセキュリティ担保に利用される場合もある
SNS (Simple Notification Service)
- Pub/Sub型の通知サービス。
- 通知先をサブスクリプションで管理する
- 通知時にUnSubscriptionリンクが含まれ、通知先が多いと意図せず外れていることがあるのでその場合はConfirmationWasAuthenticated属性をtrueにして対策しておくほうがよい
SQS (Simple Queue Service)
- 分散アプリ間の非同期通信。
Elastic Beanstalk
- アプリケーションデプロイのPaaS。
ElastiCache
- RedisやMemcachedによるインメモリキャッシュ。
- 主にキャッシュやセッションなどの揮発性のKeyValue形式のデータ保持に用いられる
- 永続性は担保されない(最悪クリアされても問題ない構成にすること)のが注意点
- ValKeyなどの後発互換ElastiCacheが発表されたので同じ要件であればそちらの方がコスパはいい
ELB(ALB,NLB)
- ロードバランサー(負荷分散する仕組み)。 ALBはL7、NLBはL4。
CodePipeline
- CI/CDパイプラインの構築。
- ビルド結果の通知などもできる(slackやlambdaなどへも)
- Pipeline、CodeBuildで構築する場合、デプロイ用の一時バケット、ロールなども合わせて一度に作る必要があるため注意
CodeBuild
- ビルド自動化サービス。
- AssumeRoleも内部で可能なので権限(信頼関係)ロールを用意して他システムの情報を一度に集約して保持することも可能
CodeDeploy
- デプロイメント自動化。
Systems Manager (SSM)
- インスタンス管理と自動化操作。
- 比較的よく使うことになるのはParameterStore
- ただし機密情報を扱う場合はSecretMangerに入れるべき
- パラメータストアの参照上限(レート制限)や、構成によっては構築時に読み込まれ、値を更新しても反映されないことがあるので注意
KMS (Key Management Service)
- 暗号鍵の管理サービス。
- RDSやS3レプリケーションなどにも使われる際のキーペア管理サービス
- 情報の暗号化/複合化に利用されるため権限管理も重要
Secrets Manager
- 認証情報の安全な保管・取得。
- 権限があれば任意の情報が管理コンソール上から取得できるので管理コンソール上での権限管理すべき対象の中では優先度が高い
Step Functions
- ワークフローの状態管理サービス。
- jsonで定義が可能
Glue
- ETL処理のためのサーバーレスデータ統合サービス。
- 接続情報がGlueConnectionに保存している場合がある→SecretMangerからの参照という形で一元化・管理としてほうがよい
Athena
- S3上のデータを直接SQLでクエリ。
- S3などイベントは事前に必要に応じて出力などしておかないと取れないものも
- 統合されたCloudTrail logなどを使って調査する時などに利用する
- 全件走査にならないよう、アカウント名や日付などでパーティションを区切っておいたほうがよい
Redshift
- データウェアハウス(DWH)サービス。
- Serverlessもある
- 中身はほぼAuroraPostgreSQL
Cognito
- ユーザー認証と認可を簡単に実装。
- CSVでのインポート機能もある
- 認証にシンプルなものから他認証サービスとの連携、MFAなど色々使える
- クライアントはS3の静的ファイル+Cognitoで認証サイトも作成できる
CloudTrail
- AWS APIコールの監査ログ記録。
- 業務で利用する場合はいざという時のため、証跡の保存もしっかりすべき
EFS (Elastic File System)
- 複数インスタンス間で共有可能なファイルシステム(主にLinux形)
- windows向けのサービスもある
EventBridge
- サーバーレスイベントバス。マイクロサービス連携に活用。
- スケジュール、イベント駆動型がある
- 配置検知や特定のサービス状況を検知して実現するトリガー機能になりがち
QuickSight
- BIツール。データ可視化とダッシュボード作成。
- SSOユーザーベースでも使えるが、ユーザー管理も含めAWS内に存在する別サービスと認識しておいた方がよい
- レスポンス改善などに利用できる、キャッシュを付与するSPICEなどもある
Config
- リソース構成変更の記録と監査。
- 費用がECSばりにかかることがあるため注意
Backup
- マネージドバックアップサービス。スナップショットや復元対応。
Organizations
- 複数AWSアカウントの統合管理。
- 採用する場合はOU含めたアカウント設計も必要
SSM パラメータストア
- 設定情報・シークレットの安全な保管。
Cost Explorer
- コスト分析と可視化。
Inspector
- 脆弱性診断サービス。
- SecurityHubと合わせてセキュリティ対策として機能させた方がよい
WAF (Web Application Firewall)
- Webアプリへの攻撃を防ぐ。
- IPベースのシンプルな制御から、ラベル付与やレートに応じて挙動を変えるなど複雑な制御も可能
- 管理コンソール上だけでは設定しきれない(cfn必須の)箇所もある
API Gateway
- REST / WebSocket API のフロントエンド。
- https用のものも作成できるようになった
- Rest用のログを別途出力できたりする→Get/Post時の値がClouldFrontやALBとは別に出力、保持されるため会社によっては個人情報の扱いとなり問題となることも
Amplify
- モバイル/Webアプリのホスティングと認証統合。
SageMaker
- 機械学習の構築・学習・推論を統合的に提供。