メインコンテンツまでスキップ

「Python」タグの記事が8件件あります

全てのタグを見る

· 約31分
moritalous
お知らせ

過去にQiitaに投稿した内容のアーカイブです。

2019年1月13日現在、AWSのサイトの上部メニューの「製品」からサービスが確認できますが 作りがおしゃれすぎて、見づらいですよね。

なので、一覧を作りました。 また参考までに一覧をどうやって作ったかも書いておきます。

更新履歴は一番末尾に移動しました。

AWSサービス一覧

分析

サービス名説明
Amazon AthenaSQL を使用して S3 でデータをクエリ
Amazon CloudSearchマネージド型検索サービス
Amazon OpenSearch Service (Amazon Elasticsearch Service の後継サービス)ペタバイト規模のテキストと非構造化データを検索、視覚化、および分析
Amazon EMRビッグデータフレームワークを簡単に実行
Amazon FinSpace金融サービス業界向けの分析
Amazon Kinesisリアルタイムの動画と Data Streams を分析
Amazon Managed Streaming for Apache Kafkaフルマネージド型 Apache Kafka サービス
Amazon Redshift高速、シンプル、費用対効果の高いデータウェアハウジングサービス
Amazon QuickSight高速ビジネス分析サービス
AWS Data Exchangeクラウド上でサードパーティのデータを検索、購読、および使用
AWS Data Pipeline定期的なデータ駆動型ワークフローに対するオーケストレーションサービス
AWS Glueシンプルでスケーラブルなサーバーレスデータ統合
AWS Lake Formation安全なデータレイクを数日で構築

アプリケーション統合

サービス名説明
AWS Step Functions分散型アプリケーションの調整
Amazon AppFlowSaaS アプリと AWS のサービス向けにコード統合が不要
Amazon EventBridgeSaaS アプリと AWS のサービス向けサーバーレスイベントバス
Amazon Managed Workflows for Apache Airflow可用性に優れたセキュアなマネージドワークフローオーケストレーション
Amazon MQマネージド型メッセージブローカーサービス
Amazon Simple Notification Service (SNS)Pub/sub、SMS、E メール、およびモバイルプッシュ通知
Amazon Simple Queue Service (SQS)マネージド型メッセージキュー
AWS AppSync多くのソースから適切なデータを使用して、大規模にアプリを強化

ブロックチェーン

サービス名説明
Amazon Managed Blockchainスケーラブルなブロックチェーンネットワークを作成および管理
Amazon Quantum Ledger Database (QLDB)フルマネージド型台帳データベース

コミュニケーションデベロッパーサービス

サービス名説明
Amazon Connectオムニチャネルのクラウドコンタクトセンター
Amazon Pinpointマルチチャネルマーケティングコミュニケーション
Amazon Honeycode (ベータ)プログラミングなしでモバイルおよびウェブアプリケーションを構築
Amazon Chimeフラストレーションフリーの会議、ビデオ電話、チャット
Amazon WorkDocs安全なエンタープライズドキュメントのストレージおよび共有
Amazon WorkMailセキュリティに優れた E メールとカレンダー
Alexa for Business組織に Alexa の力を
Amazon Chime SDKリアルタイムメッセージング、オーディオ、動画、および画面共有
Amazon Simple Email Service (SES)大規模なインバウンドおよびアウトバウンドメール
Amazon Pinpoint API柔軟なモバイル SMS とプッシュ通知
Amazon Chime Voice ConnectorSIP トランキングと高度なテレフォニー機能
Amazon WorkDocs SDKセキュアなファイルのコラボレーションおよび管理

クラウド財務管理

サービス名説明
AWS Cost ExplorerAWS のコストと使用状況を分析
AWS Budgetsカスタムコストと使用予算を設定
AWS のコストと使用状況レポート包括的なコストと使用状況の情報にアクセス
リザーブドインスタンスレポートリザーブドインスタンス (RI) の詳細を把握する
Savings Plans柔軟な料金設定でコンピューティング使用コストを最大 72% 節約

コンピューティング

サービス名説明
Amazon EC2クラウド内の仮想サーバー
Amazon EC2 Auto Scaling需要に合わせてコンピューティング性能をスケール
Amazon Lightsail仮想プライベートサーバーを起動および管理
AWS App Runnerコンテナ化されたウェブアプリを大規模に構築・実行
AWS Batchあらゆる規模で Batch ジョブを実行
AWS Elastic Beanstalkウェブアプリケーションを実行および管理
AWS Lambdaサーバーに煩わされずにコードを実行
AWS OutpostsAWS インフラストラクチャをオンプレミスで実行
AWS Serverless Application Repositoryサーバーレスアプリケーションの検索、デプロイと公開
AWS Snow ファミリーエッジロケーションでデータを集約および処理して AWS に転送するデバイス
AWS Wavelength5G デバイスのための超低レイテンシーアプリケーションを提供
VMware Cloud on AWSカスタムハードウェアを使用せずにハイブリッドクラウドを構築

コンタクトセンター

サービス名説明
Amazon Connectオムニチャネルのクラウドコンタクトセンター

コンテナ

サービス名説明
Amazon Elastic Container Registryコンテナイメージを簡単に保存、管理、デプロイ
Amazon Elastic Container Service (ECS)コンテナを実行するためのきわめて安全で信頼性と拡張性が高い方法
Amazon ECS Anywhere顧客が管理するインフラでコンテナを実行
Amazon Elastic Kubernetes Service (EKS)信頼性が最も高い Kubernetes の実行方法
Amazon EKS Anywhereインフラストラクチャでの Kubernetes
Amazon EKS Distro一貫した Kubernetes クラスターの実行
AWS App2Container既存のアプリケーションのコンテナ化と移行
AWS App Runnerコンテナ化されたウェブアプリを大規模に構築・実行
AWS Copilotコンテナ化されたアプリケーションを簡単にデプロイして運用する
AWS Fargateコンテナ向けサーバーレスコンピューティング
AWS での Red Hat OpenShift サービスマネージド Red Hat OpenShift クラスター

データベース

サービス名説明
Amazon Aurora高性能マネージド型リレーショナルデータベース
Amazon Aurora Serverless V2 (プレビュー)毎秒 100,000 件を超えるトランザクションに瞬時にスケール
Amazon DocumentDB (MongoDB 互換)フルマネージド型ドキュメントデータベース
Amazon DynamoDBマネージド型 NoSQL データベース
Amazon ElastiCacheメモリ内キャッシュサービス
Amazon Keyspaces (Apache Cassandra 向け)マネージド型の Cassandra 対応データベース
Amazon MemoryDB for Redis超高速なパフォーマンスを実現する Redis 互換性と耐久性のあるインメモリデータベース
Amazon Neptuneフルマネージドグラフデータベースサービス
Amazon Quantum Ledger Database (QLDB)フルマネージド型台帳データベース
Amazon RDSMySQL、PostgreSQL、Oracle、SQL Server、MariaDB 向けのマネージド型リレーショナルデータベースサービス
Amazon RDS on VMwareオンプレミスデータベースの管理を自動化
Amazon Redshift高速、シンプル、費用対効果の高いデータウェアハウジングサービス
Amazon Timestreamフルマネージド型の時系列データベース
AWS Database Migration Service最小限のダウンタイムでデータベースを移行できるサービス
AWS Glueシンプルでスケーラブルなサーバーレスデータ統合

デベロッパーツール

サービス名説明
Amazon CodeGuru最もコストがかかるコード行を見つける
Amazon Corretto本番環境に向けて OpenJDK を配信
AWS クラウドコントロール API統合された API を使用してクラウドインフラストラクチャを管理する
AWS Cloud Development Kit (CDK)コードを使用してクラウドインフラストラクチャをモデル化する
AWS Cloud9Cloud IDE でコードを記述、実行、デバッグ
AWS CloudShellブラウザベースのシェル環境
AWS CodeArtifactソフトウェア開発のためのセキュアかつスケーラブルでコスト効率性に優れたアーティファクト管理
AWS CodeBuildコードを構築およびテスト
AWS CodeCommitプライベート Git リポジトリにコードを保存
AWS CodeDeployコードデプロイの自動化
AWS CodePipeline継続的デリバリーを使用したソフトウェアのリリース
AWS CodeStarAWS アプリケーションを開発およびデプロイ
AWS コマンドラインインターフェイスAWS のサービスを管理するための統合ツール
AWS Device FarmAWS クラウド内の実際のデバイスを使った Android、iOS、ウェブアプリケーションのテスト
AWS Fault Injection Simulatorフルマネージド型フォールト挿入サービス
AWS ツールと SDKAWS のためのツールと SDK
AWS X-Rayアプリケーションの分析とデバッグ

エンドユーザーコンピューティング

サービス名説明
Amazon WorkSpacesクラウド内の仮想デスクトップ
Amazon AppStream 2.0デスクトップアプリケーションを安全にブラウザへストリーミングするサービス
Amazon WorkLink社内のウェブサイトへのモバイルアクセスを可能にする

ウェブとモバイルのフロントエンド

サービス名説明
AWS Amplifyモバイルおよびウェブアプリケーションの構築とデプロイ
Amazon API GatewayAPI を構築、デプロイ、管理
Amazon Location Serviceアプリケーションにロケーションデータをセキュアかつ簡単に追加
Amazon Pinpointチャネル間でのパーソナライズされたユーザーエンゲージメント
AWS AppSync多くのソースから適切なデータを使用して、大規模にアプリを強化
AWS Device FarmAWS クラウド内の実際のデバイスを使った Android、iOS、ウェブアプリケーションのテスト

Game Tech

サービス名説明
Amazon GameLiftシンプルで高速な費用対効果の高い専用ゲームサーバーホスティング
Amazon LumberyardAWS や Twitch と統合された完全なソースを利用できる、無料のクロスプラットフォーム 3D ゲームエンジン

IoT

サービス名説明
AWS IoT 1-ClickAWS Lambda トリガーのワンクリック作成
AWS IoT AnalyticsIoT デバイスの分析
AWS IoT ボタンクラウドのプログラミング可能なダッシュボタン
AWS IoT Coreデバイスをクラウドに接続
AWS IoT Device DefenderIoT デバイスのセキュリティ管理
AWS IoT Device ManagementIoT デバイスのオンボード、編成、リモート管理
AWS IoT EduKit簡単な IoT アプリケーションの構築方法を学習
AWS IoT EventsIoT イベントの検出と応答
AWS IoT ExpressLink (プレビュー)セキュアな IoT デバイスを迅速かつ簡単に開発
AWS IoT FleetWise (プレビュー)車両データをほぼリアルタイムで簡単に収集し、変換して、クラウドに転送
AWS IoT Greengrassデバイスのためのローカルでのコンピューティング、メッセージング、および同期
AWS IoT RoboRunnerロボットフリートがシームレスに連携するためのアプリケーションを構築
AWS IoT SiteWiseIoT データコレクターおよびインタプリタ
AWS IoT Things Graphデバイスおよびウェブサービスを簡単に接続
AWS IoT TwinMaker (プレビュー)実世界システムのデジタルツインを簡単に作成して業務を最適化
AWS Partner Device CatalogAWS 対応 IoT ハードウェアのキュレートされたカタログ
FreeRTOSマイクロコントローラ向けリアルタイムオペレーティングシステム

Machine Learning

サービス名説明
Amazon SageMaker機械学習モデルを大規模に構築、トレーニング、デプロイ
Amazon Augmented AIML 予測のヒューマンレビューを簡単に導入
Amazon CodeGuru最もコストがかかるコード行を見つける
Amazon Comprehendテキスト内でインサイトや関係性を検出
Amazon DevOps GuruML 駆動のクラウドオペレーションサービス
Amazon Elastic Inference深層学習推論の高速化
Amazon Forecast機械学習を使用して予測の精度を向上させる
Amazon Fraud Detectorオンライン詐欺をより素早く検知
Amazon HealthLakeHealth データの解明
Amazon KendraML を利用してエンタープライズ検索を刷新する
Amazon Lex音声やテキストに対応するチャットボットを構築
Amazon Lookout for Equipmentセンサーデータの分析による異常動作の検知
Amazon Lookout for Metricsメトリクスの異常を検知
Amazon Lookout for Visionコンピュータビジョンを使用した製品欠陥の検出
Amazon Monitron機器モニタリングのためのエンドツーエンドシステム
Amazon Personalizeアプリケーションへのリアルタイムレコメンデーションの構築
Amazon Pollyテキストを生きた話し声に変換
Amazon Rekognition画像と動画を分析
Amazon Textractドキュメントからテキストとデータを抽出
Amazon Translate自然で流ちょうな言語翻訳
Amazon Transcribe自動音声認識
AWS 深層学習 AMIAmazon EC2 での深層学習
AWS Deep Learning Containers深層学習向け Docker イメージ
AWS DeepComposer機械学習が有効化されたミュージカルキーボード
AWS DeepLens深層学習に対応したビデオカメラ
AWS DeepRacer機械学習による 18 分の 1 のスケールでの自律走行型レースカー
AWS Inferentia機械学習インファレンスチップ
AWS Panorama (プレビュー)エッジに設置したコンピュータビジョンによる運営改善
AWS での Apache MXNetスケーラブルなオープンソースの深層学習フレームワーク
AWS での PyTorch柔軟なオープンソースの機械学習フレームワーク
AWS での TensorFlowオープンソースのマシンインテリジェンスライブラリ

マネジメントとガバナンス

サービス名説明
Amazon CloudWatchリソースとアプリケーションのモニタリング
Amazon Managed Service for Grafana強力でインタラクティブなデータ視覚化
Amazon Managed Service for Prometheus (プレビュー)コンテナのためのセキュアで高可用性のモニタリング
AWS Auto Scaling需要に合わせて複数のリソースをスケール
AWS ChatbotChatOps for AWS
AWS CloudFormationテンプレートを使用してリソースを作成および管理
AWS CloudTrailユーザーアクティビティと API 使用状況の追跡
AWS コマンドラインインターフェイスAWS サービスを管理するための統合ツール
AWS Compute Optimizer最適な AWS コンピューティングリソースを特定
AWS Configリソースのインベントリと変更の追跡
AWS Control Tower安全かつ基準に準拠した複数のアカウント環境をセットアップおよび管理
AWS コンソールモバイルアプリリソースの状態を外出先で確認
AWS Distro for OpenTelemetry (プレビュー)相関するメトリクスとトレースの収集
AWS Launch WizardAWS 上でサードパーティーのアプリケーションを簡単にサイジング、構成、デプロイできます
AWS License Managerライセンスの追跡、管理、制御
AWS マネジメントコンソールウェブベースのユーザーインターフェイス
AWS Managed ServicesAWS のインフラストラクチャ運用管理
AWS OpsWorksChef や Puppet を使った運用の自動化
AWS OrganizationsAWS アカウント全体の一元管理
AWS Personal Health DashboardAWS のサービス状態のパーソナライズされた表示
AWS Protonコンテナとサーバーレスデプロイメントのための自動化された管理
AWS Resilience Hubアプリケーションを中断から保護する
AWS Service Catalog標準化された製品を作成および利用する
AWS Systems Manager運用時のインサイトに基づいて改善する
AWS Trusted Advisorパフォーマンスとセキュリティを最適化
AWS Well-Architected Toolワークロードの見直しと改善

メディアサービス

サービス名説明
Amazon Elastic Transcoder使いやすいスケーラブルなメディア変換サービス
Amazon Interactive Video Serviceマネージド型のライブ動画ソリューション
Amazon Kinesis Video Streams動画ストリームの処理と分析
Amazon Nimble Studioデジタルコンテンツ作成スタジオを構築する
AWS Elemental MediaConnect高い信頼性を安全性を持つライブ動画転送
AWS Elemental MediaConvertファイルベースの動画コンテンツを変換
AWS Elemental MediaLiveライブビデオコンテンツを変換
AWS Elemental MediaPackage動画を発信およびパッケージ化
AWS Elemental MediaStoreメディアストレージとシンプルな HTTP オリジン
AWS Elemental MediaTailor動画のパーソナライズと収益化
AWS Elemental アプライアンスとソフトウェアオンプレミスメディアソリューション

移行と転送

サービス名説明
AWS Migration Hub複数の移行の追跡を 1 か所から実行
AWS Application Discovery Serviceオンプレミスのアプリケーションを検出して合理的に移行
AWS Application Migration Service (CloudEndure Migration)自動化されたリフトアンドシフト移行
AWS Database Migration Service最小限のダウンタイムでデータベースを移行できるサービス
AWS DataSyncシンプルかつ高速なオンラインデータ転送
AWS Mainframe Modernization (プレビュー)メインフレームワークロードの移行、モダナイゼーション、運用、および実行
AWS Server Migration Serviceオンプレミスサーバーを AWS に移行
AWS Snow ファミリーAWS との間でデータを移行するためのデバイス
AWS Transfer Familyフルマネージド SFTP、FTPS、および FTP サービス
Migration Evaluator (旧 TSO Logic)クラウド移行のビジネスケースを作成

ネットワーキングとコンテンツ配信

サービス名説明
Amazon VPC独立したクラウドリソース
Amazon API GatewayAPI の構築、デプロイ、管理
Amazon CloudFrontグローバルなコンテンツ配信ネットワーク
Amazon Route 53スケーラブルなドメインネームシステム (DNS)
AWS App Meshマイクロサービスをモニタリングおよびコントロール
AWS Cloud Mapクラウドリソースのサービス検出
AWS Cloud WAN (プレビュー)グローバル広域ネットワークの簡単な構築、管理、およびモニタリング
AWS Direct ConnectAWS への専用ネットワーク接続
AWS Global Acceleratorアプリケーションの可用性とパフォーマンスを向上
AWS Private 5G (プレビュー)プライベートセルラーネットワークの簡単なデプロイ、管理、およびスケーリング
AWS PrivateLinkAWS でホストされているサービスへのセキュアなアクセス
AWS Transit GatewayVPC およびアカウント接続を簡単にスケール
AWS VPNネットワークリソースに安全にアクセス
Elastic Load Balancing (ELB)複数のターゲットにわたる着信トラフィックの分配

量子テクノロジー

サービス名説明
Amazon Braket量子コンピューティングを探索して実験
Amazon Quantum Solutions Lab量子コンピューティングの専門家と協力する

ロボット工学

サービス名説明
AWS RoboMakerロボット工学アプリケーションの開発、テスト、デプロイ

人工衛星

サービス名説明
AWS Ground Stationサービスとしてのフルマネージド型地上局

セキュリティ、アイデンティティ、コンプライアンス

サービス名説明
AWS Identity and Access Management (IAM)サービスとリソースへのアクセスを安全に管理
Amazon Cognitoアプリケーションの ID 管理
Amazon Detective潜在的なセキュリティ問題を調査
Amazon GuardDutyマネージド型脅威検出サービス
Amazon Inspector脆弱性管理を自動化
Amazon Macie大規模な機密データを検出して保護する
AWS ArtifactAWS のコンプライアンスレポートへのオンデマンドアクセス
AWS Audit ManagerAWS 利用状況の継続的な監査
AWS Certificate ManagerSSL/TLS 証明書のプロビジョニング、管理、およびデプロイメント
AWS CloudHSMコンプライアンスのためのハードウェアベースキーストレージ
AWS Directory ServiceActive Directory をホスティングおよび管理
AWS Firewall Managerファイアウォールルールの一元管理
AWS Key Management Serviceマネージド型の暗号化キーの作成と管理
AWS Network FirewallVPC 保護のためのネットワークセキュリティ
AWS Resource Access ManagerAWS のリソースを共有するためのシンプルでセキュアなサービス
AWS Secrets Manager機密情報のローテーション、管理、取得
AWS Security Hub統合された AWS セキュリティ & コンプライアンスセンター
AWS ShieldDDoS 保護
AWS Single Sign-Onクラウドシングルサインオン (SSO) サービス
AWS WAF悪意のあるウェブトラフィックのフィルタリング

サーバーレス

サービス名説明
AWS Lambdaサーバーに煩わされずにコードを実行
Amazon API GatewayAPI を構築、デプロイ、管理
Amazon DynamoDBマネージド型の NoSQL データベース
Amazon EventBridgeSaaS アプリと AWS のサービス向けサーバーレスイベントバス
Amazon Simple Notification Service (SNS)Pub/sub、SMS、E メール、およびモバイルプッシュ通知
Amazon Simple Queue Service (SQS)マネージド型メッセージキュー
Amazon Simple Storage Service (S3)クラウド内のスケーラブルなストレージ
AWS AppSync多くのソースから適切なデータを使用して、大規模にアプリを強化
AWS Fargateコンテナ向けサーバーレスコンピューティング
AWS Step Functions分散型アプリケーションの調整

ストレージ

サービス名説明
Amazon Simple Storage Service (S3)クラウド内のスケーラブルなストレージ
Amazon Elastic Block Store (EBS)EC2 ブロックストレージボリューム
Amazon Elastic File System (EFS)EC2 用フルマネージド型ファイルシステム
Amazon FSx for LustreS3 と統合されたハイパフォーマンスファイルシステム
Amazon FSx for NetApp ONTAPNetApp の人気ファイルシステムである ONTAP 上に構築された、フルマネージド型ストレージ
Amazon FSx for Windows ファイルサーバーフルマネージド型 Windows ネイティブのファイルシステム
Amazon S3 Glacier ストレージクラスクラウド内の低コストなアーカイブストレージ
AWS BackupAWS のサービス全体を対象とする一元的なバックアップ
AWS Elastic Disaster Recovery (CloudEndure Disaster Recovery)スケーラブルでコスト効率性に優れたアプリケーションリカバリ
AWS Snow ファミリー険しい環境、または切り離された環境のための物理的なエッジコンピューティングおよびストレージデバイス
AWS Storage Gatewayハイブリッドストレージの統合

AR と VR

サービス名説明
Amazon SumerianAR および VR アプリケーションの構築と実行

スクレイピング方法

Pythonでやりました。

import requests
from bs4 import BeautifulSoup,NavigableString
import re
import json

def parse_html():

url = 'https://s0.awsstatic.com/ja_JP/nav/v3/panel-content/desktop/index.html'
response = requests.get(url)

soup = BeautifulSoup(response.text, 'html.parser')
category = soup.select('div[id^=products-]')

groups = []

for c in category:
if c['id'] == 'products-featured':
continue

col_1 = c.select_one('div[class=m-nav-col-1]')

group = {}
service = []
groups.append(group)

for cc in col_1.find_all('div', recursive=False):

a = cc.find('a')
span = a.find('span')

service_url = a['href']
service_name = a.get_text('', strip=True)
service_description = ''
if span is not None:
service_description = span.get_text('', strip=True)
service_name = service_name.replace(service_description, '')
s = {
'name': service_name,
'description': service_description,
'href': service_url
}
service.append(s)
else:
group['genre'] = service_name
group['service'] = service

return groups

def print_markdown(services):
base_url = 'https://aws.amazon.com'

for s in services:
# print('----------')
print ('### %s' % (s['genre']))
# print('----------')

print()
print('| サービス名 | 説明 |')
print('| --- | --- |')

for service in s['service']:
name = service['name']
description = service['description']
if (service['href'].startswith('/')) :
href = base_url + service['href']
else:
href = service['href']

print('| [%s](%s) | %s |'% (name, href, description))
print()


print_markdown(parse_html())

参考サイト

https://qiita.com/h1na/items/d305d49b5a27e92d132a https://qiita.com/itkr/items/513318a9b5b92bd56185

更新履歴

2019/1/20更新 たくさんのいいねをいただきましたので、第2段を書きました

AWSのサービスの東京リージョン、大阪ローカルリージョンの対応状況


2019/3/31更新 最新の内容に更新しました。

  • 翻訳が結構変わってる
  • 追加サービス
    • Amazon DocumentDB (MongoDB 互換)
    • Amazon WorkLink
    • AWS Backup
    • AWS 予算がAWS Budgetsに
    • Amazon GlacierがAmazon S3 Glacierに
  • Amazon RDSの説明のPostgresSQLPostgreSQL
    ※ @shge さんに編集リクエスト頂いていた件、本家が修正されてました。
  • デスクトップとアプリケーションのストリーミングのグループがなくなってエンドユーザーコンピューティングが新設

2019/6/9更新

  • AWS AppSyncの説明文が変更
  • Elastic Load Balancing (ELB)がコンピューティングからネットワークとコンテンツ配信に移動
  • AWS 深層学習コンテナが新規追加
  • AWS Organizationsがセキュリティ、アイデンティティ、コンプライアンスからマネジメントとガバナンスに移動
  • CloudEndure 移行が新規追加
  • Amazon VPC PrivateLinkがAWS PrivateLinkに名称変更、説明文が変更
  • AWS Secrets Managerの説明文が変更
  • Amazon FSx for Lustreの説明文が変更

2019/7/7更新

  • メディアサービスにAWS Elemental アプライアンスとソフトウェアが追加
  • セキュリティ、アイデンティティ、コンプライアンスにAWS Resource Access Managerが追加

2019/8/12更新

  • Amazon Managed Streaming for KafkaがAmazon Managed Streaming for Apache Kafkaにサービス名変更
  • Amazon Redshiftの説明文が微妙に変更
  • アプリケーション統合にAmazon EventBridgeが追加
  • Amazon MQの説明文が微妙に変更
  • Amazon WorkDocsがエンドユーザーコンピューティングからビジネスアプリケーションに移動
  • Amazon Elastic Container Service for KubernetesがAmazon Elastic Kubernetes Serviceにサービス名変更
  • 開発者用ツールの並びが変更
  • 開発者用ツールにAWS クラウド開発キットが追加
  • AWS コマンドラインインターフェイスの説明文が微妙に変更
  • マネジメントとガバナンスにAWS Chatbotが追加
  • セキュリティ、アイデンティティ、コンプライアンスからAmazon Cloud Directoryが削除(減ることもあるんですね)

2019/10/12更新

  • 分析のAmazon EMRとAmazon Elasticsearch Serviceの並びが変更
  • 開発者用ツールにAWS Device Farmが追加

2020/1/3更新

あけましておめでとうございます。 re:Invent 2019があったため、更新が多めです。

  • 分析にAWS Data Exchangeが追加
  • AWS コスト管理にSavings Plansが追加
  • コンピューティングにAWS Wavelengthが追加
  • カスタマーエンゲージメントにContact Lens for Amazon Connectが追加
  • データベースにAmazon Managed Apache Cassandra サービスが追加
  • 開発者用ツールのAWS クラウド開発キットがAWS Cloud Development Kit (CDK)に名称変更
  • 機械学習にAmazon Augmented AI、Amazon CodeGuru (プレビュー)、Amazon Fraud Detector、Amazon Kendra、AWS DeepComposerが追加
  • 機械学習のAWS 深層学習コンテナがAWS Deep Learning Containersに名称変更
  • マネジメントとガバナンスにAWS Compute Optimizerが追加
  • マネジメントとガバナンスのAWS マネージドサービスがAWS Managedに名称変更
  • 移行と転送のAWS Transfer for SFTPの説明文が変更
  • 移行と転送のCloudEndure 移行のURLが変更
  • 量子テクノロジーにAmazon Braketが追加(量子テクノロジーカテゴリも追加)
  • セキュリティ、アイデンティティ、コンプライアンスにAmazon Detectiveが追加
  • ストレージにCloudEndure の災害対策が追加

2020/4/26更新

  • コンテナカテゴリが増え、ECRECSEKSFargateコンピューティングから移動
  • Amazon Managed Apache Cassandra サービスAmazon Managed Apache Cassandra Serviceに名称変更
  • Amazon FreeRTOSFreeRTOSに名称変更
  • Amazon Fraud Detector(プレビュー)の文字が追加
  • Amazon Kendraの説明文が少し更新
  • AWS Identity and Access Management (IAM)の説明文がユーザーアクセスと暗号化キーを管理からサービスとリソースへのアクセスを安全に管理に更新
  • CloudEndure の災害対策CloudEndure Disaster Recoveryに名称変更

2020/9/5更新

  • アプリケーション統合カテゴリにAmazon AppFlowが追加
  • ビジネスアプリケーションカテゴリにAmazon Honeycode (ベータ)が追加
  • Amazon WorkDocsの説明が変更
  • コンピューティングカテゴリにAWS Snow ファミリーが追加(AWS Snow ファミリーは他のカテゴリにもあります)
  • コンテナカテゴリにAWS App2Containerが追加
  • データベースカテゴリのAmazon Managed Apache Cassandra ServiceAmazon Keyspaces (Apache Cassandra 用)に名称変更
  • 開発者用ツールカテゴリの名称がデベロッパー用ツールに変更
  • デベロッパー用ツールカテゴリにAWS CodeArtifactAmazon CodeGuruが追加
  • 機械学習カテゴリのAmazon CodeGuruの名称からプレビューが消えて、説明が変更
  • 機械学習カテゴリにAWS での PyTorchが追加
  • メディアサービスカテゴリにAmazon Interactive Video Serviceが追加
  • メディアサービスカテゴリのAmazon Kinesis Video Streamsの説明が変更
  • 移行と転送カテゴリのAWS Transfer for SFTPAWS Transfer Familyに名称変更
  • 移行と転送カテゴリのCloudEndure 移行CloudEndure Migrationに名称変更
  • 移行と転送カテゴリにMigration Evaluator (旧 TSO Logic)が追加
  • セキュリティ、アイデンティティ、コンプライアンスカテゴリのAmazon Macieの説明が変更
  • ストレージカテゴリのAWS Snow ファミリーの説明が変更

久しぶりの更新なので多かったです。


2021/2/20更新

  • アプリケーション統合カテゴリのAmazon AppFlowの説明が変更
  • アプリケーション統合カテゴリにAmazon Managed Workflows for Apache Airflowが追加
  • アプリケーション統合カテゴリのAmazon MQの説明が変更
  • アプリケーション統合カテゴリのAmazon Simple Notification Service (SNS)の説明が変更
  • コンピューティングカテゴリのAWS Elastic Beanstalkの説明が変更
  • コンピューティングカテゴリのAWS Serverless Application Repositoryの説明が変更
  • コンピューティングカテゴリのAWS Snow ファミリーの説明が変更
  • コンテナカテゴリにAmazon ECS Anywhere (近日公開)Amazon EKS DistroAWS での Red Hat OpenShiftが追加
  • コンテナカテゴリAWS App2Container`の説明が変更
  • カスタマーエンゲージメントカテゴリのContact Lens for Amazon Connectの説明が変更
  • データベースカテゴリにAmazon Aurora Serverless v2 (プレビュー)が追加
  • データベースカテゴリのAmazon Keyspaces (Apache Cassandra 向け)の名称が変更
  • デベロッパー用ツールカテゴリにAWS CloudShellが追加
  • デベロッパー用ツールカテゴリのAWS CodeArtifactの説明が変更
  • デベロッパー用ツールカテゴリにAWS Fault Injection Simulator (近日公開)が追加
  • エンドユーザーコンピューティングカテゴリのAmazon AppStream 2.0の説明が変更
  • モバイルカテゴリがウェブとモバイルのフロントエンドに名称変更
  • ウェブとモバイルのフロントエンドカテゴリのAWS Amplifyの説明が変更
  • ウェブとモバイルのフロントエンドカテゴリにAmazon Location Service (プレビュー)が追加
  • 機械学習カテゴリがMachine Learningに名称変更
  • Machine LearningカテゴリにAmazon DevOps Guruが追加
  • Machine LearningカテゴリのAmazon Elastic Inferenceの説明が変更
  • Machine LearningカテゴリのAmazon Kendraの説明が変更
  • Machine LearningカテゴリにAmazon Lookout for Equipment (プレビュー)Amazon Lookout for Metrics (プレビュー)Amazon Lookout for Vision (プレビュー)Amazon MonitronAmazon SageMaker Data WranglerAWS Panorama (プレビュー)が追加
  • Machine LearningカテゴリのAmazon Personalizeの説明が変更
  • Machine LearningカテゴリのAWS DeepComposerの説明が変更
  • Machine LearningカテゴリのAWS Inferentiaの説明が変更
  • マネジメントとガバナンスカテゴリのAWS コンソールモバイルアプリの説明が変更
  • マネジメントとガバナンスカテゴリにAWS Distro for OpenTelemetry (プレビュー)Amazon Managed Service for Grafana (プレビュー)Amazon Managed Service for Prometheus (プレビュー)AWS Proton (プレビュー)が追加
  • マネジメントとガバナンスカテゴリのAWS OpsWorksの説明が変更
  • マネジメントとガバナンスカテゴリのAWS Service Catalogの説明が変更
  • マネジメントとガバナンスカテゴリのAWS Systems Managerの説明が変更
  • メディアサービスカテゴリのAWS Elemental MediaConnectの説明が変更
  • 移行と転送カテゴリのAWS Snow ファミリーの説明が変更
  • ネットワークとコンテンツ配信カテゴリがネットワーキングとコンテンツ配信に名称変更
  • セキュリティ、アイデンティティ、コンプライアンスカテゴリのAmazon Cognitoの説明が変更
  • セキュリティ、アイデンティティ、コンプライアンスカテゴリにAWS Audit ManagerAWS Network Firewallが追加
  • セキュリティ、アイデンティティ、コンプライアンスAWS Certificate Managerの説明が変更
  • セキュリティ、アイデンティティ、コンプライアンスAWS Resource Access Managerの説明が変更
  • サーバーレスカテゴリが追加
  • サーバーレスカテゴリにAWS LambdaAmazon API GatewayAmazon DynamoDBAmazon EventBridgeAmazon Simple Notification Service (SNS)Amazon Simple Queue Service (SQS)Amazon Simple Storage Service (S3)AWS AppSyncAWS FargateAWS Step Functionsが追加
  • AR と VRカテゴリがVR および ARに名称変更

サボってたので、すごい数でした。


2021/05/11更新

  • AWS Data Exchangeの説明が変更
  • コンテナカテゴリにAWS Copilot追加
  • AWS Managed ServicesAWS マネージドサービスに名称変更
  • Migration Evaluator(旧 TSO Logic)Migration Evaluator (旧 TSO Logic)に名称変更
  • Amazon FSx for Windows File ServerAmazon FSx for Windows ファイルサーバーに名称変更

2021/12/27更新

スクレイピングするスクリプトを更新しました。

· 約4分
moritalous
お知らせ

過去にQiitaに投稿した内容のアーカイブです。

前回「GoogleアシスタントをAlexa Skillにして「アレクサ、オーケーグーグルで天気を調べて」を実現する」という投稿をしました。

少し改良し、Googleアシスタントの声で応答を返すように改良しました。

こんな感じです。

処理の流れ

  1. Echoに話しかける
  2. Skill Kit(AWS Lambda)にリクエストが来る
  3. Googleアシスタントにリクエストを投げる
  4. Googleアシスタントからレスポンス(音声・テキスト)が返却される
  5. 音声を一度tmp領域にファイル出力する
  6. ffmpegでAlexaのフォーマットに変換する
  7. 変換した音声ファイルをS3にアップロードする(バケットはパブリック公開しておく)
  8. S3にアップロードした音声ファイルのURLをaudioタグに入れたSSMLレスポンスを返却する
  9. EchoがGoogleアシスタントの声で返事をする

長くなりそうなので、要点だけ解説します。 ソースコードはこちら

Googleアシスタントからのレスポンスをファイルに出力する

Googleアシスタントのレスポンス中のresp.audio_out.audio_dataが複数に分割されて取得されるので、連結してファイルに出力します。

response_audio_data = b''
for resp in self.assistant.Assist(iter_assist_requests(),
self.deadline):
if resp.audio_out.audio_data:
response_audio_data += resp.audio_out.audio_data
def save_file(output_path, binary):
with open(output_path, "wb") as fout:
fout.write(binary)

音声ファイルをAlexaのフォーマットに変換する

Googleアシスタントのレスポンスは、mp3で取得できますが、Alexaが求める要件は以下の用になっています。

音声ファイルをAlexaに適した形式に変換する

必要に応じて、変換ソフトウェアを使用してMP3ファイルを必要なコーデックバージョン(MPEGバージョン2)とビットレート(48 kbps)に変換してください。

丁寧にffmpegのパラメーターの記述もあります。

ffmpeg -i <input-file> -ac 2 -codec:a libmp3lame -b:a 48k -ar 16000 <output-file.mp3>

ffmpegはLambdaの環境には準備されていないので、デプロイパッケージに含める必要があります。 ffmpegは ここ の「Linux Static Builds」のリンク先からx86_64 buildのものを取得しました。 取得したファイルの中にある、ffmpegバイナリーのみを、デプロイパッケージのルートに格納されるように圧縮します。

Pythonのプログラム中でffmpegを呼び出す部分はこんな感じです。

def convert(input_path, output_path):
try:
command = './ffmpeg -i '+input_path+' -ac 2 -codec:a libmp3lame -b:a 48k -ar 16000 -af volume=2.0 ' + output_path
output = subprocess.check_output(
command, stderr=subprocess.STDOUT, shell=True, timeout=3,
universal_newlines=True)
except subprocess.CalledProcessError as exc:
print("Status : FAIL", exc.returncode, exc.output)
else:
print("Output: \n{}\n".format(output))

つづく

· 約10分
moritalous
お知らせ

過去にQiitaに投稿した内容のアーカイブです。

Amazonさんから招待が来たのでecho dotが手に入りました。 でもGoogle Homeも気になりますよね。 ということで、GoogleアシスタントをAlexa Skillにしてしまうことにしました。

12/20にGoogle Assistant SDKが0.4.0にバージョンアップし、日本語にも対応しています。

Alexa Skill Kitのセットアップ

細かい手順は他に任せるとして、要点を抜粋して紹介。

スキル情報

呼び出し名
オーケーグーグル

対話モデル

カスタム対話モデル

Sample UtterancesSlot Type
{q}qSlot (後述のカスタムスロット)

カスタムスロットタイプ

VALUEID (OPTIONAL)SYNONYMS
今日の天気は

あまり理屈はわかりませんが、これで「今日の天気は」はもちろん、 その他の発話に対してもこの対話モデルが選択されます。

リクエストのJSONはこんな感じになります。

{
"session": {
// 省略
},
"request": {
"type": "IntentRequest",
"requestId": "XXXXXXXXXX",
"intent": {
"name": "NewIntent",
"slots": {
"q": {
"name": "q",
"value": "こんにちは"
}
}
},
"locale": "ja-JP",
"timestamp": "XXXXXXXXXX"
},
"context": {
// 省略
},
"version": "1.0"
}

以上でAlexa Skillの設定は完了です。

CentOSとPython環境の構築

MacのVirtualBox上にCent OS 7の環境を構築しました。

Python 3.6のインストールとvirtualenv環境のセットアップ

Lambdaのデプロイパッケージ作成の手順を参考にしました。 https://docs.aws.amazon.com/ja_jp/lambda/latest/dg/with-s3-example-deployment-pkg.html

[centos@localhost ~]$ sudo yum install -y gcc zlib zlib-devel openssl openssl-devel
[centos@localhost ~]$ wget https://www.python.org/ftp/python/3.6.1/Python-3.6.1.tgz
[centos@localhost ~]$ tar -xzvf Python-3.6.1.tgz
[centos@localhost ~]$ cd Python-3.6.1 && ./configure && make
[centos@localhost ~]$ sudo make install
[centos@localhost ~]$ /usr/local/bin/virtualenv ~/shrink_venv
[centos@localhost ~]$ source ~/shrink_venv/bin/activate
(shrink_venv) [centos@localhost ~]$

Google Assistant SDKのセットアップ

公式ドキュメントにそって進めます。

Set Up Hardware and Network Access

https://developers.google.com/assistant/sdk/guides/library/python/embed/setup →省略。

Configure and Test the Audio

https://developers.google.com/assistant/sdk/guides/library/python/embed/audio →今回は音声の入出力は必須ではないので、省略します。

Configure a Developer Project and Account Settings

https://developers.google.com/assistant/sdk/guides/library/python/embed/config-dev-project-and-account →ドキュメントに沿って実施。

あとで以下のものが必要になります。

  • 作成したプロジェクト名
    以下の説明ではAlexa-GoogleAssistant-Skillがプロジェクト名となります。
  • client_secret_<client-id>.json ファイル
    Do not rename this file. とあるのでファイル名もダウンロードしたままで維持する必要があるようです。
    CentOS環境上にコピーしてください。

Install the SDK and Sample Code

https://developers.google.com/assistant/sdk/guides/library/python/embed/install-sample →ドキュメントに沿って実施。ただし、Pythonの環境構築はすでに実施していますので、その部分は飛ばします。

必要なライブラリーの導入

(shrink_venv) [centos@localhost ~]$ python -m pip install --upgrade google-assistant-library
(shrink_venv) [centos@localhost ~]$ python -m pip install --upgrade google-assistant-sdk[samples]

credentialsの生成

(shrink_venv) [centos@localhost ~]$ google-oauthlib-tool --scope https://www.googleapis.com/auth/assistant-sdk-prototype \
--save --headless --client-secrets [client_secret_client-id.json]

client_secret_client-id.jsonは、Google Assistant SDKのセットアップの手順で作成したものです。ファイルパスを指定してください。 コマンドを実行すると以下のように入力待受状態になりますので、メッセージ中のURLにアクセスしてコードを取得してください。

Please visit this URL to authorize this application: https://accounts.google.com/o/oauth2/auth?xxxxxxxxxx
Enter the authorization code:

コード入力後、以下のメッセージが表示されます。

credentials saved: /home/ubuntu/.config/google-oauthlib-tool/credentials.json

保存されたファイルの中身は以下のような形です。この文字列が後で必要になります。

credentials.json (整形済み)
{
"token_uri": "XXXXXXXXXX",
"client_id": "XXXXXXXXXX",
"refresh_token": "XXXXXXXXXX",
"scopes": [
"XXXXXXXXXX"
],
"client_secret": "XXXXXXXXXX"
}

Register the Device

https://developers.google.com/assistant/sdk/guides/library/python/embed/register-device →ドキュメントに沿って実施。 SDKのバージョン0.4.0から追加された手順と思います。

(shrink_venv) [centos@localhost ~]$ googlesamples-assistant-devicetool register-model --manufacturer "Assistant SDK developer" \
--product-name "Alexa-GoogleAssistant-Skill" --type LIGHT --model Alexa-GoogleAssistant-Skill-Model

--manufacturerはサンプルのまま、--product-nameはなんでもOK?、--typeは必須なのでとりあえずLIGHT--modelはグローバルユニークな文字列である必要があるようです。

モデル名について

Note that this name must be globally unique so you should use your Google Developer Project ID as a prefix to help avoid collisions (for example, my-dev-project-my-model1).

Run the Sample Code

https://developers.google.com/assistant/sdk/guides/library/python/embed/run-sample サンプルを実行します。

(shrink_venv) [centos@localhost ~]$ googlesamples-assistant-hotword --project_id Alexa-GoogleAssistant-Skill --device_model_id Alexa-GoogleAssistant-Skill-Model
device_model_id: Alexa-GoogleAssistant-Skill-Model
device_id: XXXXXXXXXX

...

--project_idはGoogle Developer上で作成したプロジェクト名、--device_model_idは先程決めたモデル名です。 初回実行時にデバイスIDが自動生成されるようです。 このデバイスIDは後ほど必要になります。

マイクに向かってOK Googleというと反応すると思います。 今回はLambda化が目的なので、Ctrl+cで抜けて問題ありません。

Google Assistant SDKの日本語対応

https://developers.google.com/assistant/sdk/guides/assistant-settings ドキュメントが上の手順からの続きではありませんのでご注意。

デバイス登録がうまくできると、AndroidアプリのGoogleアシスタントの設定に登録したデバイスが表示されます。 そのデバイスの設定で、言語設定ができます。 たぶん。

また、SDKの呼び出しパラメーターにlang設定があるので、ja-JPを設定すると、日本語で返事をしてくれます。

以上でGoogle Assistant SDKのセットアップは完了です。

Lambdaファンクションの作成

Google Assistant SDKのサンプル

ドキュメントには記載がないのですが、サンプルの中に、音声ではなくテキストを入力してテキストを返すものが含まれていました。

(shrink_venv) [centos@localhost ~]$ python -m googlesamples.assistant.grpc.textinput --device-model-id [デバイスモデルID] --device-id [デバイスID]
E1230 11:54:46.796841462 2399 ev_epollex_linux.cc:1482] Skipping epollex becuase GRPC_LINUX_EPOLL is not defined.
E1230 11:54:46.796894329 2399 ev_epoll1_linux.cc:1261] Skipping epoll1 becuase GRPC_LINUX_EPOLL is not defined.
E1230 11:54:46.796909730 2399 ev_epollsig_linux.cc:1761] Skipping epollsig becuase GRPC_LINUX_EPOLL is not defined.
INFO:root:Connecting to embeddedassistant.googleapis.com
: Hello
Hello
<@assistant> What can I do for you?
: What time is it now
What time is it now
<@assistant> It's 11:55.
: Good bye
Good bye
<@assistant> Goodbye
: ^CAborted!
(shrink_venv) [centos@localhost ~]$

ソースはGitHubにありましたので、これを改良してLambda化を目指します。 https://github.com/googlesamples/assistant-sdk-python/blob/master/google-assistant-sdk/googlesamples/assistant/grpc/textinput.py

textinputサンプルからの変更点

以下の点を変更します。

  • サンプルではCtrl+cで抜けるまでやり取りが続けられましたが、1回の応答で処理を終了するように変更
  • デバイスモデル名、デバイスIDを環境変数で指定できるように変更
  • credentials.jsonについてはファイルパスではなくてjson文字列を環境変数で指定できるように変更
  • (当然ですが)Lambdaの作法に合わせる対応
  • (当然ですが)Alexaからのリクエストを受けれるように、また、Alexaの求めるレスポンスが返せるように変更

Lambdaファンクション

出来上がったソースがこちら。 ソース全体はこちら

---省略---
credentials_json = os.getenv('GA_CREDENTIALS','{"token_uri": "token_uri", "client_id": "client_id", "refresh_token": "refresh_token", "scopes": ["scopes"], "client_secret": "client_secret"}')
lang = os.getenv('GA_LANG', 'en-US') # en-US, ja-JP
device_model_id = os.getenv('GA_DEVICE_MODEL_ID', 'XXXXX')
device_id = os.getenv('GA_DEVICE_ID', 'XXXXX')
error_msg=os.getenv('GA_ERROR_MSG', 'No Response')
---省略---

def assist(text_query):
credentials = google.oauth2.credentials.Credentials(token=None,
**json.loads(credentials_json))
http_request = google.auth.transport.requests.Request()
credentials.refresh(http_request)

# Create an authorized gRPC channel.
grpc_channel = google.auth.transport.grpc.secure_authorized_channel(
credentials, http_request, api_endpoint)

with textinput.SampleTextAssistant(lang, device_model_id, device_id,
grpc_channel, grpc_deadline) as assistant:
text_response = assistant.assist(text_query=text_query)
return text_response

---省略---

def lambda_handler(event, context):
text_query=text_query=event['request']['intent']['slots']['q']['value']
logging.info('Query text is %s', text_query)

text_response = assist(text_query=text_query)
if text_response == None:
logging.info('Response text is None')
text_response = error_msg

logging.info('Response text is %s', text_response)

session_attributes={}
card_title=text_query+' -> ' + text_response
speech_output=text_response
reprompt_text=text_response
should_end_session=True

return build_response(session_attributes, build_speechlet_response(
card_title, speech_output, reprompt_text, should_end_session))

---省略---

デプロイパッケージの作成

AWSのドキュメントを参考にしました。 https://docs.aws.amazon.com/ja_jp/lambda/latest/dg/with-s3-example-deployment-pkg.html

(shrink_venv) [centos@localhost ~]$ cd $VIRTUAL_ENV
(shrink_venv) [centos@localhost shrink_venv]$ cd lib/python3.6/site-packages/
/home/ubuntu/env
(shrink_venv) [centos@localhost site-packages]$ zip -r9 ~/DeployPackage.zip *
(shrink_venv) [centos@localhost site-packages]$ cd ~
(shrink_venv) [centos@localhost ~]$ zip -g ~/DeployPackage.zip lambda_function.py

作成したzipファイルをマネジメントコンソールからアップロードし、Lambdaファンクションとして登録します。

終わりに

  • 複数回の会話のやり取りはできません。改良の余地あり
  • 応答が複数に別れる場合に最後の部分しか返答がありません。SDKの仕様?
  • となりにおいていたAndroidスマホも「オーケーグーグル」に反応して同じ答えを返します(声は違うけど)。😀
  • 結局、天気を聞くぐらいしか用途がありません。😀