LoginSignup
25
14

More than 5 years have passed since last update.

[AWS re:Invent 2018] バックエンドエンジニア必見の新発表27選

Last updated at Posted at 2018-12-03

はじめに

AWS最大の年次カンファレンスイベント「AWS re:Invent 2018」が2018年11月26日〜11月30日に渡って米国ラスベガスで開催されました。re:Inventの一週間程度前からイベント終了までの間に100を超える新サービス・新機能が発表されました。
あまりにも多いため追い切れていないという方もいらっしゃると思います。そこで本記事ではバックエンドエンジニアが押さえるべき新サービス・新機能に絞って紹介したいと思います。
なお、記載している情報は2018年12月4日時点での情報です。最新の情報はAWS公式サイトをご覧ください。

じっくり見たい方は

以下のAWS公式サイトとクラスメソッドのサイトにほぼ全ての新サービス・新機能がまとまっています。本記事はこれらのサイトを大いに参考にさせて頂きました。

EC2

新しいインスタンスタイプ - A1インスタンス (ARMベースのAWS Gravitonプロセッサーを搭載)

ARMベースのAWS独自開発の「AWS Graviton」プロセッサーを搭載したインスタンスタイプです。
小さなインスタンスのグループにまたがるような、スケールアウト型のワークロードに最適とのこと。例として、コンテナ化されたマイクロサービス、ウェブサーバー、開発環境、キャッシュ層などが挙げられています。
a1.mediumからa1.4xlargeまでの5種類のインスタンスタイプが用意されており、バージニア北部、オハイオ、オレゴン、アイルランドで利用できます。
AWSはとうとうプロセッサーまで自分たちで作ってしまいました。AWSとIntelは蜜月の関係でしたが、これからどうなるんでしょうか。

新機能 – EC2 A1インスタンス – ARMベースのAWS Gravitonプロセッサーを搭載 _ Amazon Web Services ブログ

新しいインスタンスタイプ - C5nインスタンス (100Gbpsのネットワーク帯域に対応)

C5インスタンスファミリーに追加された次世代のインスタンスで、100Gbpsのネットワークのスループットを提供します。ハイパフォーマンスコンピューティングやデータレイク、ネットワーク集中型アプリケーションに適しています。c5n.largeからc5n.18xlargeまでの6種類のインスタンスタイプが用意されており、バージニア北部、オハイオ、オレゴン、アイルランド、AWS GovCloudで利用できます。
A1と違ってGovCloudが対象に入っているので、米国政府とかから要望があったんですかね(勝手な想像)。

新機能 – 100Gbpsのネットワーク帯域に対応するC5nインスタンス _ Amazon Web Services ブログ

S3

S3 Intelligent-Tiering (自動的なコスト最適化)

Standard/Standard-IA/OneZone-IA/Glacierに続く新しいストレージクラスです。S3 INTは高頻度アクセス階層と低頻度アクセス階層から構成されます。S3 INTは、S3オブジェクトのアクセスパターンをモニタし、連続30日間アクセスされていないデータを低頻度のアクセス階層に移動し、データが後でアクセスされた場合は高頻度アクセス階層に自動的に戻します。ストレージ料金は高頻度アクセス階層はStandardと、低頻度アクセス階層はStandard-IAと同じレートになります。
S3オブジェクトのアクセスパターンが予測できない場合や変わりうる場合はS3 INTが特に有効です。Standardのまま全然変更していないという方はとりあえずS3 INTにしておければ手間なくコスト削減できるはずです。
一方でデータがあまりアクセスされない場合や、あるいは耐久性が多少落ちても問題ないケースではStandard-IAやOneZone-IAの方が有効な選択肢になります。
S3 Intelligent-Tieringは全てのリージョンで利用することができます。
ところで、昔は低冗長化ストレージ (RRS) というストレージクラスもあったはずですが、黒歴史になったんでしょうか。

新機能- Intelligent TieringによるAmazon S3の自動的なコスト最適化 _ Amazon Web Services ブログ

S3 Object Lock (S3オブジェクトの変更・削除を完全に制限する)

一定期間もしくは無期限にS3オブジェクトが削除または上書きされるのを防ぐことができる機能で、バケットのプロパティから設定できます。S3 Object Lockは全てのリージョンで利用することができます。
悲しいかな、現時点ではバケット作成時にしか設定できない&バージョニングが有効化されたバケットにしか対応していません。今後のアップデートを期待したいところです。

RDS

Amazon Aurora Global Databases (複数リージョンで単一のAuroraデータベースを利用可能に)

MySQL互換のAuroraの新機能で、単一のAuroraデータベースを複数のリージョンで利用でき、1秒未満の待ち時間で書き込みをレプリケートできます。バージニア北部、オハイオ、オレゴン、アイルランドで利用できます。すごすぎて正直意味不明です。

(英語) Announcing Amazon Aurora Global Database

DynamoDB

Amazon DynamoDB On-Demand (事前のキャパシティプランニングが不要のリクエスト課金)

これまでDynamoDBは書き込み及び読み込みの処理能力をキャパシティユニットという形でテーブルごとに設定する必要がありました。これからはテーブルの設定で「on-demanmd mode」を有効にすることで、AWSがキャパシティを自動で調整してくれて使った分だけ課金されるようになります。全リージョンで利用できます。
AutoScalingも良い機能だったんですがCloudFormationとの相性が最悪でしたから、これは本当に嬉しい機能です。

Amazon DynamoDB On-Demand – 事前のキャパシティプランニングが不要のリクエスト課金が可能になりました。 _ Amazon Web Services ブログ

DynamoDB トランザクション

文字通りDynamoDBがトランザクションに対応します!ACID(原子性、一貫性、分離性、永続性)を保証した操作を行うAPI(TransactGetItems, TransactWriteItems)が全リージョンのDynamoDBテーブルで使えます。

DynamoDBはトランザクション機能が無いからRDBを選択あるいは併用するといったことがこれまでありましたが、多くのユースケースをDynamoDB一本で実現できるようになりそうです。
ただ、AWS公式ブログの記述を見るに、例外処理あるいはリトライ処理などの考慮が一応必要そうな感じです。

Itemはトランザクション中にロックされません。DynamoDB transactionsはトランザクション分離レベルだとserializableになります。トランザクションの進行中にアイテムがトランザクション外で変更された場合、トランザクションはキャンセルされ、例外を発生させたアイテムまたはItemに関する詳細がスローされます。

Lambda

AWS Lambda Layer (複数のLambda関数での共通コンポーネントの共有が可能に)

これまでは複数のLambda関数で利用する共通コンポーネント(アプリケーションフレームワークやライブラリ、SDK、機械学習モデルなど)について各Lambda関数にパッケージングしてデプロイする必要がありました。Lambda Layerの登場により、複数のLambda関数から共通コンポーネントを利用できるようになりました。
やり方は、共通コンポーネントを1つのZIPファイルに固めてLambda Layerにアップロードし、Lambda関数の設定画面からレイヤーへの参照を追加するだけです。
特にPythonの場合、ライブラリなどをLambda関数用ZIPファイルに同梱するのにあんまり綺麗なやり方が無かったので、Lambda Layerが一つの解になるかもしれません。
また、AWSが提供するパブリックなレイヤーとしてNumPyとSciPyが利用できます。今後もどんどん増えていきそうですね。Lambda Layerは全てのリージョンで利用可能です。

AWS Lambda Runtime API (好きなプログラミング言語でLambdaの利用が可能に)

古き良きプログラミング言語であるCobolがTwitterのトレンド入りした原因がこちら。全てのリージョンで、自分でカスタマイズしたランタイムでLambdaが利用できるようになります。
AWSがC++/Rustのランタイムを、パートナーがErlang/Elixir/Cobol/Node.js/PHPのランタイムをオープンソースで公開しています。
これが今後のLambdaの言語サポートの新しい形になるようで、次に紹介するRubyもこの方法でサポートされているとのこと。

AWS LambdaのRubyサポート

LambdaでRuby 2.5がランタイムとして利用できるようになりました。 Rubyistには嬉しいニュースですね。こちらもおそらく全てのリージョンで利用可能です。

Application Load Balancer(ALB)のAWS Lambdaサポート

ALBはECSやEC2をターゲットとして指定できますが、Lambdaも選択できるようになりました。簡単なWeb APIであればALB + Lambdaで作れてしまいそうですね。東京を含むほとんどのリージョンで利用できます。

アプリケーションロードバランサー(ALB)のターゲットにAWS Lambdaが選択可能になりました _ Amazon Web Services ブログ

分析

Amazon Athena Workgroups (Beta) (グループ単位でAthenaの利用を管理)

まだベータ版のため一般利用できないようですが、個人的に待ちに待った新機能です。AthenaのコンソールからWorkgroupというグループを設定してグループごとにワークロードやコストの管理ができるようです。

特に以下のコスト管理機能が良さげです。

  • クエリ単体のデータスキャン量の上限を設定することができ、上限を超えるとクエリがキャンセルされる
  • 利用状況とコストの増加に伴いアラームを飛ばすことができる
  • 全てのクエリが上限を超えた時にグループを無効化できる

セッションのSlideShareの該当ページを見ると、スキャンサイズのリミット/時間範囲/アクションをひとまとめで設定できるようです。

image.png

Amazon Redshift concurrency scaling (Preview) (同時実行スケーリング)

まだプレビュー&AWS公式の記事が公開されていないようなのではっきりした内容は分かりませんが、クラスメソッドさんの記事を見るに『何千もの同時ユーザーとクエリがあっても一貫して高速のクエリパフォーマンスを提供する新しい機能です。 「クエリのワークロードをサポートするために、必要に応じて容量を自動的に増減させる」』といった機能のようです。

コンテナ

AWS Marketplace for Containers (コンテナのマーケットプレイス)

AWS MarketplaceとAmazon ECSコンソールでコンテナ製品を見つけることができます。また、こちらを利用することで、Amazon ECSやAmazon EKSなどにコンテナ製品を簡単にデプロイすることができます。

ECRをソースとしたコンテナイメージのCI/CDサポート

CodePipelineのソースプロバイダーにECRが指定できるようになりました。また、CodeDeployを用いたFargate/ECSへのBlue/Greenデプロイがサポートされました。コンテナとCodeシリーズの連携がかなり良くなった感じです。

マルチアカウント管理/セキュリティなど

Amazon CloudWatch Logs Insights (高速でインタラクティブなログ分析)

CloudWatch Logsを分析・可視化するためのサービスです。今までCloudWatch Logsの内容を検索したり可視化するためにはAmazon Elasticsearch Serviceに連携するのが常套手段でしたが、CloudWatchコンソールで完結するようになります。東京を含むほとんどのリージョンで利用できます。料金はクエリごとに走査したログデータの量に対して発生し、レートはリージョン共通で$0.005/GBになります。Athenaと同じレートですね。

新機能 – Amazon CloudWatch Logs Insights – 高速でインタラクティブなログ分析 _ Amazon Web Services ブログ

AWS Control Tower (Preview) (安全なマルチアカウント環境を迅速にセットアップ)

マルチアカウント環境を安全にセットアップするためのサービスです。AWS OrganizationやAWS SSO、AWS CloudTrail、AWS Configなどのアカウントの管理・セキュリティ系サービスの統制機能がControl Towerから提供されるようです。まだプレビューですがマルチアカウント管理の必携サービスになりそうな予感。

AWS Security Hub (Preview)

AWS Security Hubを使用すると、AWSアカウント全体で優先度の高いセキュリティ警告とコンプライアンスステータスを包括的に確認できます。ファイアウォールやエンドポイントの保護から脆弱性やコンプライアンスまで幅広く強力なセキュリティツールが用意されています。AWSパートナーソリューションだけでなく、Amazon GuardDuty、Amazon Inspector、Amazon Macieなどの複数のAWSサービスから、セキュリティアラートや検索結果を集約、整理、優先順位付けする単一のダッシュボードを提供します。
こちらもプレビューですが待ち遠しいです。

re_Invent 2018 _ Andy Jassy Keynote _ AWS Security Hub _ Amazon Web Services ブログ

ネットワーク

AWS Global Accelerator (各種バランシング機能を備えるグローバルロードバランサー)

世界中に利用者がいるようなアプリケーションにおいて、可用性とパフォーマンスを向上するネットワークサービスです。アプリケーションエンドポイントの状態を継続的に監視し、AWSのグローバルネットワークを使って最も近い正常なネットワークのエンドポイントへ経路を変更します。

re_Invent 2018 Monday NightLive _ AWS Global Accelarator _ Amazon Web Services ブログ

AWS Transit Gateway (オンプレミスとAWSの接続をより簡単に接続可能に)

数千におよぶ Amazon VPC、AWS アカウント、オンプレミスのネットワークとの接続を容易に管理します。AWS Transit Gateway は管理をシンプルにし、オペレーションコストを削減します。それぞれのネットワークは、ただ AWS Transit Gateway に接続すればよく、その時点で他のネットワークからも利用できるようになります。

新機能 – トランジットゲートウェイでネットワークアーキテクチャをシンプルに _ Amazon Web Services ブログ

新サービス系/その他

※これらの概略は後日加筆します。

AWS Step Functions でワークフローの自動化

Amazon Quantum Ledger Database (フルマネージド元帳データベース)

Amazon Timestream (フルマネージド時系列データベース)

AWS Lake Formation (Preview)

Amazon Managed Streaming for Kafka (Preview)

AWS App Mesh (Beta)

Amazon Managed Blockchain (Preview)

25
14
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
25
14