以下为AWS所使用的开源技术
首先
当我们学习AWS时,我们会注意到通过利用开源软件(OSS),有许多服务得以实现。
许多用户希望在云上使用经过验证和具有经验的OSS,因此AWS根据这些需求提供服务。
如果对于前提的开源软件了解不多,可能会很难理解AWS服务,也难以确定在类似的服务中应该选择哪一个。要了解AWS,也需要了解开源软件。
因此,本次我們將整理並分享在AWS中使用的開放源碼軟體(OSS)。希望這能成為對於只聽過這些詞語但不太熟悉的人更深入了解的契機。
前提条件
-
- 今回はなるべく網羅的に、AWS関連のOSSを列挙することを目的にしました。各々の詳細な説明はリンク先にお任せすることにし、本文では基本的な特徴を記載します。
-
- AWSの場合、OSSそのものをマネージドで提供しているサービスと、OSS互換の機能を持つが中身はOSSとは異なるサービスがありますが、本文では特に区別しておりません。後者の場合は、AWSの公式ページで「互換」という言葉で表現されているようです。
- リンク先は原則AWSの公式サイト、もしくは、NRI OpenStandiaの公式サイトとしています。(2022/12/20時点のものなります。)
数据库 ku)
AWSサービス名説明関連OSSAmazon AuroraリレーショナルDBPostgreSQL、MySQLAmazon RDSリレーショナルDBPostgreSQL、MySQL、MariaDBAmazon RedshiftデータウェアハウスPostgreSQLAmazon DocumentDBドキュメントDBMongoDBAmazon ElastiCacheインメモリデータストアRedis、MemcachedAmazon MemoryDB for RedisインメモリデータストアRedisAmazon KeyspacesNoSQL分散データベースCassandra
-
- AuroraとRDSはどちらもリレーショナルDBですが、基本的にはAuroraの方が性能や可用性等の様々な面で優れており推奨されます。ただし、利用できるDBエンジンの選択肢はRDSの方が多く、Auroraを利用する場合は、選択肢はPostgreSQLとMySQLに限られます。PostgreSQLは商用DBと比較しても遜色ない豊富な機能や信頼性を持っていること、MySQLはOSSのDBとしては最も普及しているため情報を集めやすいこと、などが特徴として挙げられます。
-
- Amazon Redshiftは、PostgreSQLをベースとしていますが、サポートしている機能や関数に相違があるため注意が必要です。(Amazon Redshift および PostgreSQL)
-
- MariaDBは、オラクル社がMySQLを買収したことをきっかけに派生したOSSで、MySQLと基本的には互換性を持っています。後発ながら開発コミュニティが活発で、性能などの機能強化が行われています。
-
- MongoDBは、JSONドキュメント形式のデータを保存する際に有用なDBで、リレーショナルDBのようにテーブル定義をする必要がありません。
-
- RedisとMemcachedは、ともにインメモリデータストアで、高いパフォーマンスが求められるシステムのキャッシュ用途に使用されます。Memcachedは、機能がシンプルで扱いやすい一方で、Redisは高機能で多くのユースケースに対応可能です。(Redis と Memcached の比較)
-
- Amazon ElastiCacheとAmazon MemoryDB for Redisは類似のサービスですが、ElastiCacheの弱点であるデータ耐久性を強化したのがMemoryDBです。(ただし、書き込み性能は低下します。)
- Cassandraは、パーティションキーに基づいてデータを分散配置するNoSQLデータストアで、Amazon KeyspacesとしてCassandraをサーバーレスで利用できます。AWSには類似の主要サービスであるDynamoDBがあるため出番が少ないかもしれませんが、既にオンプレミスでCassandraを利用していて、AWSへの移行が必要な場合などはAmazon Keyspacesの方が移行が容易となります。
数据分析
AWSサービス名説明関連OSSAmazon EMRビッグデータ処理Hadoop、Spark、PrestoAmazon AthenaクエリサービスPrestoAmazon Managed Streaming for Apache Kafka (MSK)ストーリーミング送受信処理Apache KafkaAmazon OpenSearch Service検索サービスOpenSearch
-
- ビッグデータ処理は多数のリソースが必要となるため、スケーリングが容易なクラウドとの相性がよく、AWSではEMRとしてサービス提供されています。EMRは、HadoopやSparkといった分散処理フレームワークが利用されています。
-
- HadoopとSparkは類似のOSSですが、後発のSparkはデータをインメモリにキャッシュすることで、Hadoopよりも高速の処理が可能となっています。しかし、データサイズがメモリに乗り切らない処理は、依然としてHadoopが有用であり、両者は組み合わせて利用されます。
-
- Hadoopとセットで利用されるOSSとしてApache HBase、Apache Hive、Hueなどがあります。それぞれ、ビッグデータ処理に適したDB、データウェアハウス、GUIとなります。(余談ですがこの辺り、OSSが多用されているため、整理したくなり、この記事のテーマを思い至りました。)
-
- Prestoは、高性能分散型クエリエンジンで大量データに対するクエリを行う際に有用です。EMRに組み込まれている他、クエリサービスであるAthenaとしてインタラクティブかつ手軽に利用できます。
-
- データ分析の最初のステップに大量データ取込みがあります。Kafkaは、リアルタイムでストリーミングデータの取込みを行うことができるOSSです。AWSには、類似サービスとして、Amazon Kinesis Data Streamsが存在しています。他のAWSサービスとの親和性や導入のし易さは、Kinesis Data Streamsが優位ですが、処理可能なメッセージのサイズや保持期間においてはKafkaが優位であるなど様々な相違点があります。既にオンプレミスでKafkaを利用されている場合はAWSへの移行が容易です。
- Amazon OpenSearch Serviceは、大量データを扱うことができる検索・分析のサービスです。従来、Amazon Elasticsearchとして存在していましたが、Elasticsearchのライセンス体系変更に伴い、名称が変更となりました(Elasticsearchのライセンス変更にともなう AWS の対応方針)。OpenSearchは、ライセンス体系変更前のElasticsearchを元に派生した、AWS提供のOSSとなります。
组织管理
-
- Chef、Puppetは、コードを使用してサーバーの構成を管理・自動化できるようにするためのOSSです。これにより、複数台のサーバに同じ設定作業を行うことによる労力や人的ミスを減らすことが可能です。
- OpsWorksには、AWS OpsWorks for Chef Automate、AWS OpsWorks for Puppet Enterprise、AWS OpsWorks スタックの3つの選択肢がありますが、Chef、Puppetの経験がなければ、AWS OpsWorks スタックを選択します。AWS OpsWorks スタックは、Chef レシピ(Chefにおける構成管理の記述方法)がサポートされています。
OpenJDK是一个开源的Java开发工具集,它为用户提供了一个免费且可定制的Java开发环境。
AWSサービス名説明関連OSSAmazon CorrettoOpenJDKディストリビューションJava
- OpenJDKをAmazon Correttoとして利用する場合、無償で長期サポート(LTS)が受けられることが特長となります。また、AWSサービスですが、オンプレミスで利用することも可能です。
容器
AWSサービス名説明関連OSSAmazon Elastic Container Service (ECS)コンテナDockerAmazon Elastic Kubernetes Service (EKS)コンテナオーケストレーションKubernetesRed Hat OpenShift Service on AWS (ROSA) コンテナオーケストレーションOpenShift
-
- AWSには様々なコンテナ関連のサービスが存在していますが、どれもDocker、Kubernetesがベースのものです。
-
- OpenShiftはKubernetesをベースに、RedHat社がエンタープライズ向けの機能拡張を加えたものになります。これにより、Kubernetesがより扱いやすくなります。
- AWSの最近の注目の取り組みとして、コンテナ開発用のオープンソースクライアント「Finch」があります。これはAWS発のOSSであり、2021年に有料化が開始されたDocker Desktopの代替となる可能性があります。
目录服务
- Sambaは、UNIXおよびUNIX互換コンピュータを、Windowsのドメインコントローラーとして使用するためのOSSです。Simple ADは、AWS Directory Serviceの1形態として提供されています。
最後
通过将云和开源技术结合在一起的服务是一个有效构建系统的良好组合,并且预计将继续增加。我希望能够继续关注。
希望这篇文章能够成为了解某些内容的开端,正如我之前所说的一样。