【SAP試験対策】AWSのサービス名を形態素解析し、ややこしい名前のサービスを比較する
こんにちは。DA事業本部の春田です。
年々増加するAWSのサービス数。もはや自分の担当領域外のサービスに関しては、把握しきれていないものも多いのではないでしょうか?
しかし、AWS認定のSolution Architect Professionalを受験するとなると、担当外の範囲でも概要くらいは理解しておく必要があります。ただ如何せん、ややこしい名前が多いんですよね……。けれどその辺を手作業で整理するのはかなり面倒。
ということで今回は、サービス名を簡単に形態素解析して、似たサービス名を機械的にあぶり出してみました。(正規表現ベースです)
目次
準備
対象となるAWSサービスは、マネジメントコンソールのサービス一覧と、AWSのCloud Productsから、主観をまじえてチョイスした 196個 のサービスです。なお、何を持って「サービス」とするのかは、あまり気にしないでください。
カテゴリ | サービス名 |
---|---|
Compute | Amazon Elastic Compute Cloud (EC2) |
Amazon EC2 Auto Scaling | |
Amazon Elastic Container Registry (ECR) | |
Amazon Elastic Container Service (ECS) | |
Amazon Elastic Container Service for Kubernetes (EKS) | |
Amazon Lightsail | |
AWS Batch | |
AWS Elastic Beanstalk | |
AWS Fargate | |
AWS Lambda | |
AWS Outposts | |
AWS Serverless Application Repository | |
AWS Wavelength | |
VMware Cloud on AWS | |
EC2 Image Builder | |
Storage | Amazon Simple Storage Service (S3) |
Amazon Elastic Block Store (EBS) | |
Amazon Elastic File System (EFS) | |
Amazon FSx for Lustre | |
Amazon FSx for Windows File Server | |
Amazon S3 Glacier | |
AWS Backup | |
AWS Storage Gateway | |
Database | Amazon Aurora |
Amazon DynamoDB | |
Amazon DocumentDB (with MongoDB compatibility) | |
Amazon ElastiCache | |
Amazon Managed Apache Cassandra Service | |
Amazon Neptune | |
Amazon Quantum Ledger Database (QLDB) | |
Amazon Relational Database Service (RDS) | |
Amazon RDS on VMware | |
Amazon SimpleDB | |
Amazon Timestream | |
Migration & Transfer | AWS Migration Hub |
AWS Application Discovery Service | |
AWS Database Migration Service | |
AWS DataSync | |
AWS Import/Export | |
AWS Schema Conversion Tool | |
AWS Server Migration Service | |
AWS Snowball | |
AWS Snowball Edge | |
AWS Snowmobile | |
AWS Transfer for SFTP | |
CloudEndure Migration | |
Networking & Content Delivery | Amazon Virtual Private Cloud (VPC) |
Amazon API Gateway | |
Amazon CloudFront | |
Amazon Route 53 | |
AWS PrivateLink | |
AWS App Mesh | |
AWS Cloud Map | |
AWS Direct Connect | |
AWS Global Accelerator | |
AWS Transit Gateway | |
Elastic Load Balancing | |
Analytics | Amazon Athena |
Amazon CloudSearch | |
Amazon Elasticsearch Service | |
Amazon Elastic MapReduce (EMR) | |
Amazon Kinesis | |
Amazon Managed Streaming for Kafka (MSK) | |
Amazon Redshift | |
Amazon QuickSight | |
AWS Data Exchange | |
AWS Data Pipeline | |
AWS Glue | |
AWS Lake Formation | |
Security, Identity, & Compliance | AWS Identity and Access Management (IAM) |
Amazon Cognito | |
Amazon Detective | |
Amazon GuardDuty | |
Amazon Inspector | |
Amazon Macie | |
AWS Artifact | |
AWS Certificate Manager | |
AWS CloudHSM | |
AWS Directory Service | |
AWS Firewall Manager | |
AWS Key Management Service | |
AWS Resource Access Manager | |
AWS Secrets Manager | |
AWS Security Hub | |
AWS Shield | |
AWS Single Sign-On | |
AWS Web Application Firewall (WAF) | |
Management & Governance | Amazon CloudWatch |
AWS Auto Scaling | |
AWS Chatbot | |
AWS CloudFormation | |
AWS CloudTrail | |
AWS Compute Optimizer | |
AWS Config | |
AWS Control Tower | |
AWS Health | |
AWS License Manager | |
AWS Managed Services | |
AWS OpsWorks | |
AWS Organizations | |
AWS Personal Health Dashboard | |
AWS Service Catalog | |
AWS Service Quotas | |
AWS Systems Manager | |
AWS AppConfig | |
AWS Trusted Advisor | |
AWS Well-Architected Tool | |
AWS Launch Wizard | |
Application Integration | AWS Step Functions |
Amazon EventBridge | |
Amazon MQ | |
Amazon Simple Notification Service (SNS) | |
Amazon Simple Queue Service (SQS) | |
AWS AppSync | |
Amazon Simple Workflow Service (SWF) | |
Developer Tools | Amazon Correto |
AWS Cloud Development Kit | |
AWS Cloud9 | |
AWS CodeBuild | |
AWS CodeCommit | |
AWS CodeDeploy | |
AWS CodePipeline | |
AWS CodeStar | |
AWS X-Ray | |
Machine Learning | Amazon SageMaker |
Amazon Augmented AI (Amazon A2I) | |
Amazon CodeGuru | |
Amazon Comprehend | |
Amazon Elastic Inference | |
Amazon Forecast | |
Amazon Fraud Detector | |
Amazon Kendra | |
Amazon Lex | |
Amazon Machine Learning | |
Amazon Personalize | |
Amazon Polly | |
Amazon Rekognition | |
Amazon Textract | |
Amazon Transcribe | |
Amazon Translate | |
AWS Deep Composer | |
AWS DeepLens | |
AWS DeepRacer | |
Apache MXNet on AWS | |
TensorFlow on AWS | |
AWS Cost Management | AWS Cost Explorer |
AWS Budgets | |
AWS Cost & Usage Report | |
Reserved Instance (RI) Reporting | |
AWS Marketplace Subscriptions | |
Savings Plans | |
Customer Enablement | AWS IQ |
AWS Support | |
Mobile | AWS Amplify |
AWS Mobile Hub | |
AWS Device Farm | |
Customer Engagement | Amazon Connect |
Amazon Pinpoint | |
Amazon Simple Email Service (SES) | |
Contact Lens for Amazon Connect | |
Business Applications & End User Computing | Alexa for Business |
Amazon Chime | |
Amazon WorkDocs | |
Amazon WorkMail | |
Amazon WorkSpaces | |
Amazon WorkSpaces Application Manager (WAM) | |
Amazon WorkLink | |
Amazon AppStream 2.0 | |
Internet of Things | AWS IoT Core |
Amazon FreeRTOS | |
AWS IoT Greengrass | |
AWS IoT 1-Click | |
AWS IoT Analytics | |
AWS IoT Button | |
AWS IoT Device Defender | |
AWS IoT Device Management | |
AWS IoT Events | |
AWS IoT SiteWise | |
AWS IoT Things Graph | |
Media Services | Amazon Elastic Transcoder |
Amazon Kinesis Video Streams | |
AWS Elemental MediaConnect | |
AWS Elemental MediaConvert | |
AWS Elemental MediaLive | |
AWS Elemental MediaPackage | |
AWS Elemental MediaStore | |
AWS Elemental MediaTailor | |
AWS Elemental Elemental Appliances & Software | |
Game Development | Amazon GameLift |
Amazon Lumberyard | |
AR & VR | Amazon Sumerian |
Robotics | AWS RoboMaker |
Blockchain | Amazon Managed Blockchain |
Satellite | AWS Ground Station |
Quantum Technologies | Amazon Braket |
Crowdsourcing | Amazon Mechanical Turk |
まずは簡単に頻出単語を可視化したいと思います。Python3.7でテキストマイニング・ライブラリのWordCloud をインストールします。
pip3 install wordcloud
WordCloudクラスはかなり細かくパラメータを設定できます。今回肝となるパラメータは、正規表現の regexp
ですね。大文字から始まる単語で分割し、想定通り分割できない一部の単語は例外にするため、 r'IoT|FSx|A2I|MXNet|[A-Z0-9][a-z0-9]+|[A-Z0-9]+|[a-z0-9]+'
という形になりました。画像の出力は generate
と to_image
メソッドでできます。
from wordcloud import WordCloud text = """ Amazon Elastic Compute Cloud (EC2) Amazon EC2 Auto Scaling Amazon Elastic Container Registry (ECR) Amazon Elastic Container Service (ECS) Amazon Elastic Container Service for Kubernetes (EKS) Amazon Lightsail AWS Batch AWS Elastic Beanstalk AWS Fargate AWS Lambda AWS Outposts AWS Serverless Application Repository AWS Wavelength VMware Cloud on AWS EC2 Image Builder Amazon Simple Storage Service (S3) Amazon Elastic Block Store (EBS) Amazon Elastic File System (EFS) Amazon FSx for Lustre Amazon FSx for Windows File Server Amazon S3 Glacier AWS Backup AWS Storage Gateway Amazon Aurora Amazon DynamoDB Amazon DocumentDB (with MongoDB compatibility) Amazon ElastiCache Amazon Managed Apache Cassandra Service Amazon Neptune Amazon Quantum Ledger Database (QLDB) Amazon Relational Database Service (RDS) Amazon RDS on VMware Amazon SimpleDB Amazon Timestream AWS Migration Hub AWS Application Discovery Service AWS Database Migration Service AWS DataSync AWS Import/Export AWS Schema Conversion Tool AWS Server Migration Service AWS Snowball AWS Snowball Edge AWS Snowmobile AWS Transfer for SFTP CloudEndure Migration Amazon Virtual Private Cloud (VPC) Amazon API Gateway Amazon CloudFront Amazon Route 53 AWS PrivateLink AWS App Mesh AWS Cloud Map AWS Direct Connect AWS Global Accelerator AWS Transit Gateway Elastic Load Balancing Amazon Athena Amazon CloudSearch Amazon Elasticsearch Service Amazon Elastic MapReduce (EMR) Amazon Kinesis Amazon Managed Streaming for Kafka (MSK) Amazon Redshift Amazon QuickSight AWS Data Exchange AWS Data Pipeline AWS Glue AWS Lake Formation AWS Identity and Access Management (IAM) Amazon Cognito Amazon Detective Amazon GuardDuty Amazon Inspector Amazon Macie AWS Artifact AWS Certificate Manager AWS CloudHSM AWS Directory Service AWS Firewall Manager AWS Key Management Service AWS Resource Access Manager AWS Secrets Manager AWS Security Hub AWS Shield AWS Single Sign-On AWS Web Application Firewall (WAF) Amazon CloudWatch AWS Auto Scaling AWS Chatbot AWS CloudFormation AWS CloudTrail AWS Compute Optimizer AWS Config AWS Control Tower AWS Health AWS License Manager AWS Managed Services AWS OpsWorks AWS Organizations AWS Personal Health Dashboard AWS Service Catalog AWS Service Quotas AWS Systems Manager AWS AppConfig AWS Trusted Advisor AWS Well-Architected Tool AWS Launch Wizard AWS Step Functions Amazon EventBridge Amazon MQ Amazon Simple Notification Service (SNS) Amazon Simple Queue Service (SQS) AWS AppSync Amazon Simple Workflow Service (SWF) Amazon Correto AWS Cloud Development Kit AWS Cloud9 AWS CodeBuild AWS CodeCommit AWS CodeDeploy AWS CodePipeline AWS CodeStar AWS X-Ray Amazon SageMaker Amazon Augmented AI (Amazon A2I) Amazon CodeGuru Amazon Comprehend Amazon Elastic Inference Amazon Forecast Amazon Fraud Detector Amazon Kendra Amazon Lex Amazon Machine Learning Amazon Personalize Amazon Polly Amazon Rekognition Amazon Textract Amazon Transcribe Amazon Translate AWS Deep Composer AWS DeepLens AWS DeepRacer Apache MXNet on AWS TensorFlow on AWS AWS Cost Explorer AWS Budgets AWS Cost & Usage Report Reserved Instance (RI) Reporting AWS Marketplace Subscriptions Savings Plans AWS IQ AWS Support AWS Amplify AWS Mobile Hub AWS Device Farm Amazon Connect Amazon Pinpoint Amazon Simple Email Service (SES) Contact Lens for Amazon Connect Alexa for Business Amazon Chime Amazon WorkDocs Amazon WorkMail Amazon WorkSpaces Amazon WorkSpaces Application Manager (WAM) Amazon WorkLink Amazon AppStream 2.0 AWS IoT Core Amazon FreeRTOS AWS IoT Greengrass AWS IoT 1-Click AWS IoT Analytics AWS IoT Button AWS IoT Device Defender AWS IoT Device Management AWS IoT Events AWS IoT SiteWise AWS IoT Things Graph Amazon Elastic Transcoder Amazon Kinesis Video Streams AWS Elemental MediaConnect AWS Elemental MediaConvert AWS Elemental MediaLive AWS Elemental MediaPackage AWS Elemental MediaStore AWS Elemental MediaTailor AWS Elemental Appliances & Software Amazon GameLift Amazon Lumberyard Amazon Sumerian AWS RoboMaker Amazon Managed Blockchain AWS Ground Station Amazon Braket Amazon Mechanical Turk """ regex = r'IoT|FSx|A2I|MXNet|[A-Z][a-z]+|[A-Z0-9]+|[a-z0-9]+' wordcloud = WordCloud(background_color="white", width=1200, height=600, regexp=regex, collocations=False) image = wordcloud.generate(text).to_image() image.show() wordcloud.to_file('./aws_name1.png')
わずか数行でおしゃれに可視化できます。非常に簡単ですね。
次に、頻出度を数値で見るためにグラフ化してみます。 process_text
メソッドを使うと、内部でPythonの標準ライブラリの collections
と re
がよしなに動き、単語別にカウントしてくれます。グラフ化ツールには bokeh
を使ってみました。
pip3 install bokeh
from bokeh.plotting import figure, show, output_file word_freq = wordcloud.process_text(text) word_freq = { k: v for k, v in word_freq.items() if v > 1} # 2以上のみ描写 word_freq = sorted(word_freq.items(), key=lambda x: x[1]) # 値でソート p = figure(y_range=[v[0] for v in word_freq], plot_width=500, plot_height=1500, x_range=(0, 120), title="Word Frequency", toolbar_location=None, tools="") p.hbar(y=[v[0] for v in word_freq], right=[v[1] for v in word_freq], height=0.9) p.text(x=[v[1] for v in word_freq], y=range(len(word_freq)), text=[v[1] for v in word_freq]) show(p)
結果は以下のとおりです。
AWSのサービス名は、冠詞に AWS か Amazon のどちらかがつくことがほとんどですが、今のところ"AWS"とつくサービス名の方が多いみたいですね。また、案の定それ以外の単語も結構な数が重複していました。上から順に比較していきたいと思います。
同じ単語を持つサービス比較
※一部、上の正規表現ではカバーしきれなかったサービスを含めたりしています。
Service
Service がつくAWSサービスは、全部で18個ありますが、あまり中身のない単語なので端折ります。
Cloud
クラウドサービスなので Cloud とつくサービス名は多かったです。全13個。違いはわかりますか?
- Amazon Elastic Compute Cloud (EC2)
- VMware Cloud on AWS
- CloudEndure Migration
- Amazon Virtual Private Cloud (VPC)
- Amazon CloudFront
- AWS Cloud Map
- Amazon CloudSearch
- AWS CloudHSM
- Amazon CloudWatch
- AWS CloudFormation
- AWS CloudTrail
- AWS Cloud Development Kit (CDK)
- AWS Cloud9
Elastic
次に多かったのが Elastic 。日本語では、「伸縮性・弾力性」と訳されます。ElastiCacheとElasticsearchも入れると全部で13個ですね。なお、Elasticが付くサービスは略されがちです。
- Amazon Elastic Compute Cloud (EC2)
- Amazon Elastic Container Registry (ECR)
- Amazon Elastic Container Service (ECS)
- Amazon Elastic Container Service for Kubernetes (EKS)
- AWS Elastic Beanstalk
- Amazon Elastic Block Store (EBS)
- Amazon Elastic File System (EFS)
- Amazon ElastiCache
- Elastic Load Balancing
- Amazon Elasticsearch Service
- Amazon Elastic MapReduce (EMR)
- Amazon Elastic Inference
- Amazon Elastic Transcoder
IoT & Elemental & Media
IoT はその名の通りIoT系のサービス、 Elemental と Media はメディア系のサービスに対してついている名前です。SAPには滅多に出てこないので端折ります。にしても、こんなニッチなサービスがこんな数あったんですね……。
Manager & Management
SAP試験でかなり重要度が高い Manager と Management 。いつかこれらのManagerをManagementするManagerが出てきそうですね。その後、そのManagerをManagementするManagerが(ry
- AWS Certificate Manager
- AWS Firewall Manager
- AWS Resource Access Manager
- AWS Secrets Manager
- AWS License Manager
- AWS Systems Manager
- Amazon WorkSpaces Application Manager (WAM)
- AWS IoT Device Management
- AWS Identity and Access Management (IAM)
- AWS Key Management Service (KMS)
Work
同じ Work という単語でも、サービス毎にニュアンスが異なってます。OpsWorksとSWFは頻出、Business Apps系も特徴を問われたりするので、全て理解が必要です。
- AWS OpsWorks
- Amazon Simple Workflow Service (SWF)
- Amazon WorkDocs
- Amazon WorkMail
- Amazon WorkSpaces
- Amazon WorkSpaces Application Manager (WAM)
- Amazon WorkLink
Code
おなじみCI/CDの Code ファミリー。各サービスがCI/CDのどこを担当しているのかしっかり理解しておきたいです。今気づいたのですが、最新サービスのCodeGuruだけ冠詞が "Amazon" なんですね。なぜこれだけ仲間はずれにされてしまったのでしょうか。
Simple
どんなサービスも Simple さは大事かと思います。汎用性の高いサービスにつけられているようですね。なお、Simpleが付くサービスも略されがちです。
- Amazon Simple Storage Service (S3)
- Amazon SimpleDB
- Amazon Simple Notification Service (SNS)
- Amazon Simple Queue Service (SQS)
- Amazon Simple Workflow Service (SWF)
- Amazon Simple Email Service (SES)
Connect
オンプレとクラウドをつなぐDirect Connect 、顧客とカスタマーサポートをつなぐAmazon Connect 、何と何を繋ぐかによって役割もかなり変わってきますね。SAPではDirect Connectがかなり重要です。
App & Application
同意の App と Application はまとめると8サービスもあります。サービス名だけでは内容がわからないものが多い、曲者揃いな単語ですね。ほとんどが頻出度高めです。
- AWS Serverless Application Repository
- AWS Application Discovery Service
- AWS App Mesh
- AWS Web Application Firewall (WAF)
- AWS AppConfig
- AWS AppSync
- Amazon WorkSpaces Application Manager (WAM)
- Amazon AppStream 2.0
Migration
超重要単語 Migration 。サービス名で違いがわからなくなることはないと思いますが、それぞれを深く理解しておく必要があります。
Managed
AWSといったら Managed 。サードパーティをマネージド化したサービスに対して付けられるのでしょうか。
- Amazon Managed Apache Cassandra Service
- Amazon Managed Streaming for Kafka (MSK)
- AWS Managed Services
- Amazon Managed Blockchain
DB & Database & Data
DB か Database か Data がついたサービスは9つありました。現在はあまり使われていないサービスもありますが、概要は抑えておきたいところです。
- Amazon DynamoDB
- Amazon DocumentDB (with MongoDB compatibility)
- Amazon Quantum Ledger Database (QLDB)
- Amazon Relational Database Service (RDS)
- Amazon SimpleDB
- AWS Database Migration Service
- AWS DataSync
- AWS Data Exchange
- AWS Data Pipeline
Device
モバイルやIoTのサービスに付いている Device 。端折ります。
Deep
Deep Learningの Deep 。こうして見ると、AWSのガジェットに対して付く単語みたいですね。ビデオカメラ、ラジコン、鍵盤と来たので、今年はDeepCookerとか?(適当)
Hub
数は少ないけど重要単語 Hub 。上のリストには入れてなかったのですが AWS VPN CloudHub や、まさにHub的な役割をしているAWS Transit Gatewayも重要ですね。
Gateway
これまた重要単語 Gateway 。SAPでは全て頻出です。そういえば他にも、Internet GatewaysやNat Gateawaysもありましたね。
Container
その名の通り、コンテナ系のサービスに付く単語の Container 。こちらも深い理解が必要です。
- Amazon Elastic Container Registry (ECR)
- Amazon Elastic Container Service (ECS)
- Amazon Elastic Container Service for Kubernetes (EKS)
EC2
EC2 の名をもったサービス。名前の意味もわかりやすいですし、こちらは大丈夫でしょう。
残りは重要そうなサービスだけピックアップしてご紹介します。
Cost
Cost 最適化は重要な観点でしょう。 AWS Budgets も合わせて理解したいところです。
Config
AWS Config なのか、AWS AppConfig なのか、違いはしっかり理解しておきたいですね。
Access
管理系重要単語の Access。どちらも深めに理解したいです。
Formation
Cloud Formation と Lake Formation。モダンな環境構築で活躍するサービス群。
Pipeline
どんな内容なのか理解しやすい名前ではありますが、念のため。
Link
AWS PrivateLink と Amazon WorkLink は結構混同してしまいそうな印象。
Sync
どこの何を Sync しているのか、違いをしっかり理解しておきたいところです。
Auto Scaling
AWSの Auto Scaling は2種類あり、どちらもSAP試験でもよく問われますね。
感想
結果、個人的には Manager か App が付くサービスの理解が不十分だったなと感じました。本当は単語の綴りが似ているとか、最初の3文字が同じとかでもやりたかったのですが、かなりのボリュームになってしまうので今回は見送りました。
こう改めて整理してみると普段気づかない発見もあって面白かったです。次回はまた別の観点からまとめてみます。