Amazon Web Services ブログ

Category: Serverless

GitOps を使用したサーバーレス時代における最新の CI/CD パイプライン構築

 AWS コミュニティヒーローで、Datree.io の CTO 兼共同創設者、Shimon Tolts 氏によるゲスト投稿。彼は開発者向けのツールとインフラストラクチャが専門分野で、100% サーバーレスの会社を運営しています。 近年、ソフトウェアの構築と配信の方法に大きな変化がありました。主にマイクロサービスに関するもので、コードを小さなコンポーネントに分割し、インフラストラクチャをコードとして使用し、Git を信頼できる唯一のソースとして利用することでこれらすべてを結び付けたのです。 この記事では、最新のソフトウェア開発の推移とさまざまな手段について説明しながら、サーバーレスの世界での選択可能なソリューションをご紹介します。さらに、現代にふさわしい便利なツールもご紹介します。 サーバーレスとは サーバーレスの開発とツーリングの魅力あふれる世界をご紹介する前に、サーバーレスとは何かを考えてみましょう。AWS のウェブサイトには、主に 4 つの利点があります。 サーバー管理の必要がない。 適応性のあるスケーリング。 価値に対する支払い。 高可用性の自動化。 サーバーレスとは​​管理やスケーリングを必要としないインフラストラクチャであると、私は考えています。 私の会社の Datree.io では、ワークロードの 95% を AWS Fargate で、そして残りの 5% を AWS Lambda で実行しています。当社はサーバーレスの会社であるため、AWS アカウントには Amazon EC2 インスタンスがありません。詳細については、以下をご参照ください。 io での導入事例 Migrating to AWS ECS Fargate in production CON320: Operational Excellence w/ Containerized Workloads Using […]

Read More

Amazon Aurora PostgreSQL Serverless が一般利用可能に

データベースは通常、ソフトウェアアーキテクチャの最も重要な部分であり、データベースの管理、特にリレーショナルデータベースの管理は容易ではありませんでした。このため、Amazon Aurora の自動スケーリングバージョンであり、アプリケーションのワークロードに基づいて自動的に起動、シャットダウン、スケールアップまたはスケールダウンできる Amazon Aurora Serverless を開発しました。 Aurora Serverless の MySQL 互換エディションは少し前から入手可能です。本日、Aurora Serverless の PostgreSQL 互換エディションが一般利用可能になったことをお知らせいたします。 詳細を説明する前に、Amazon Aurora 開発チームが、2019 年の米国計算機学会 (ACM) のデータ管理分科会 (SIGMOD) システム賞を受賞したことを祝福します。 Aurora Serverless を使用してデータベースを作成するときは、最小容量と最大容量を設定します。クライアントアプリケーションは、自動的にスケーリングされるリソースプールにワークロードをルーティングするプロキシフリートに透過的に接続します。リソースが「ウォーム」であり、リクエストに応えるために追加する準備ができているため、スケーリングは非常に高速です。   Aurora によるストレージの管理方法について、Aurora Serverless では変更はありません。ストレージ層は、データベースが使用するコンピューティングリソースから独立しています。事前にストレージをプロビジョニングする必要はありません。最小ストレージは 10GB です。データベースの使用量に基づいて、Amazon Aurora ストレージは自動的に最大 64TB まで 10GB 単位で増加し、データベースのパフォーマンスには影響しません。 Aurora Serverless PostgreSQL データベースの作成 それでは、Aurora Serverless PostgreSQL データベースを起動し、自動スケーラビリティが機能していることを確認しましょう。 Amazon RDS コンソールで、Amazon Aurora をエンジンとして使用してデータベースを作成することを選択します。現在、Aurora Serverless は PostgreSQL […]

Read More

Amazon Aurora Serverless MySQL データベースを操作する Data API の使用

Amazon Aurora Serverlessは、自動スケーリングされる Amazon Aurora (MySQL 互換エディション) のオンデマンド型実装です。このデータベースは、スタートアップとシャットダウンや、アプリケーションからの要求に応じた容量のスケーリングなどを自動で行います。これにより、データベースインスタンスの管理を一切行うことなく、クラウドでデータベースの実行が可能になります。頻度と継続性が低く予想しにくいワークロードのためのシンプルでコスト効果が高い、1 つの選択肢だと言えます。 AWS は最近、Data API の一般的な可用性を発表しました。この機能により、MySQL 互換バージョンの Amazon Aurora Serverless データベースを、シンプルな API エンドポイントを使ってアクセスできるようになりました。アプリケーションが常にデータベースに接続するため生じる、管理上の労力も必要なくなります。AWS Lambda を使っていれば、VPC 内で起動する Lambda 関数による追加的なオーバーヘッドもなく、Data API により安全にデータベースアクセスが行えます。また、Data API では、AWS Secrets Manager に保存されたデータベース認証情報が使えるので、API 呼び出しの際の認証情報の受け渡しも必要ありません。 このブログ記事では、コード的なインフラストラクチャー (AWS CloudFormation) を使って、Aurora Serverless MySQL クラスターをプロビジョニングする方法を解説します。Data API から Aurora Serverless データベースに SQL コマンドを発行する方法を、複数のユースケースについてコード例を示し説明します。コード例について深く知りたい場合は、GitHub にある「full end-to-end sample Serverless application」をご参照ください。 次の図に示すとおり、Data API は AWS […]

Read More

Amazon CloudWatch Events を使用したサーバーレスパイプラインの構築

AWS サーバーレスヒーローである Forrest Brazeal 氏によるゲスト投稿。Forrest 氏は、Trek10, Inc. のシニアクラウドアーキテクトであり、Trek10 の Think FaaS サーバーレスポッドキャストのホストを務めており、サーバーレスコミュニティのワークショップやイベントで定期的に講演を行っています。 イベントとサーバーレスは、ベイクドビーンズとバーベキューのようにいつも一緒です。サーバーレスという考え方は、ビジネス上の価値を提供するコードやコンフィギュレーションに焦点を当てます。それは結局のところ、外の世界で起こることに対応する構造化データである、イベントを扱うことを意味します。ポーリング中にリソースを消費する長時間実行されるサーバータスクを維持するのではなく、イベントトリガーに応答してのみ機能するサーバーレスアプリケーションを作成することができます。 AWS でイベントを操作する際には、たくさんの選択肢があります。Amazon Kinesis Data Streams、Amazon Simple Notification Service (SNS)、Amazon Simple Queue Service (SQS) などであり、要件によります。最近では、名前に「イベント」という言葉が付いたサービスを頻繁に使用しています。Amazon CloudWatch Events です。 CloudWatch Events: サーバーレスイベント処理における穴場 最初は、CloudWatch は Lambda ログを収集し、スケジュールに従って機能を実行できるサービスと理解していました。ところが、CloudWatch Events では、CloudWatch API を使用して独自のカスタムイベントを発行することもできます。SNS と同様の料金と配信保証があり、ターゲットとして多数の AWS のサービスをサポートしています。 何よりも、イベントバスをプロビジョニングする必要さえありません。CloudWatch コンソールの中にあるからです。ここで、boto3 AWS SDK for Python を使用して、イベントを発行することができます。 import boto3 cw = […]

Read More

Serverless Tech/事例セミナー(2019年3月27日 実施) レポート Vol.3

2019年3月27日 実施のセミナーのレポート 3部編の Vol.3 です。他の回は以下のリンクよりアクセスください。 Vol.1 : 手段先行でも悪くはない!Ruby on LambdaではじめるServerless Vol.2 : Ruby on Lambdaで変わる大規模サービスの裏側 Vol.3 : Webアプリエンジニアに贈るアプリケーション開発におけるサーバーレス流の考え方 [本記事]     Webアプリエンジニアに贈るアプリケーション開発におけるサーバーレス流の考え方 [資料はこちら] クラスメソッド株式会社 和田祐介氏

Read More

Serverless Tech/事例セミナー(2019年3月27日 実施) レポート Vol.2

2019年3月27日 実施のセミナーのレポート 3部編の Vol.2 です。他の回は以下のリンクよりアクセスください。 Vol.1 : 手段先行でも悪くはない!Ruby on LambdaではじめるServerless Vol.2 : Ruby on Lambdaで変わる大規模サービスの裏側 [本記事] Vol.3 : Webアプリエンジニアに贈るアプリケーション開発におけるサーバーレス流の考え方     Ruby on Lambdaで変わる大規模サービスの裏側 [資料はこちら] Sansan株式会社 Eight事業部 Engineering Group/エンジニアリングマネージャー 藤井洋太郎氏

Read More

Serverless Tech/事例セミナー(2019年3月27日 実施) レポート Vol.1

「AWS re:Invent 2018」では多くのサーバーレス関連のアナウンスがありました。その中でも、Ruby や COBOL を始めとする開発言語対応の拡張やカスタムランタイム、共有ライブラリ管理機能(Layers)は、サーバーレスの成熟と広がりを感じさせるものでした。特に、日本で利用者の多い Ruby は長い間望まれていたことから、プロジェクトでの適用が急速に進みはじめています。 そこで、すでに利用し始めていただいているお客様として、ヴァル研究所様およびSansan様に2019年3月27日に実施のServerless Tech/事例セミナーで登壇いただき、その経験を共有いただきました。開発言語としてのRubyに対する熱い想いやモチベーションが伝わる講演内容でした。また、これからサーバーレスを検討される参加者のために、従来型開発との考え方の違いを、開発の観点からクラスメソッド様より説明がありました。 Vol.1 : 手段先行でも悪くはない!Ruby on LambdaではじめるServerless [本記事] Vol.2 : Ruby on Lambdaで変わる大規模サービスの裏側 Vol.3 : Webアプリエンジニアに贈るアプリケーション開発におけるサーバーレス流の考え方     手段先行でも悪くはない!Ruby on LambdaではじめるServerless [資料はこちら] 株式会社ヴァル研究所 マーケティングテクノロジー部 CB開発チーム 福本江梨奈氏

Read More

AWS Serverless Application Repository のコンポーネントを使用したサーバーレスアプリの構築

AWS サーバーレスヒーローである Aleksandar Simovic 氏によるゲスト投稿。Aleksandar は、Science Exchange のシニアソフトウェアエンジニアであり、Manning Publications から出版されている Slobodan Stojanovic 氏との「Serverless Applications with Node.js」の共著者です。また、彼はサーバーレスのビジネス面と技術面の両方についてもメディアに寄稿しています。 皆さんの多くは、ユーザーログインまたは認証サービスを一から構築したご経験をお持ちではないでしょうか。そして、おそらく、支払いを処理するサービスや、PDF をエクスポートする別のサービスも何度も構築してきたことでしょう。私たちは皆それを経験しており、多くの場合、何度も行ってきました。AWS Serverless Application Repository を使用すると、より多くの時間とエネルギーをビジネスロジックの開発に費やし、顧客にとって重要な機能をより迅速に提供することができるようになります。 AWS Serverless Application Repository とは? AWS Serverless Application Repository を使用すると、開発者はチームや組織の間で共通のサーバーレスコンポーネントをデプロイ、公開、共有できます。パブリックライブラリには、カスタマイズ可能なパラメータと事前に定義されたライセンスで即座に検索とデプロイが可能な、コミュニティで構築されたオープンソースのサーバーレスコンポーネントが含まれています。これらは、AWS リソースのテンプレート化に使用されるコードとしてのインフラストラクチャである AWS サーバーレスアプリケーションモデル (AWS SAM)、YAML 言語を使用して構築および公開されています。 本稼働環境で AWS Serverless Application Repository を使用する方法 顧客が製品を選択して代金を払えるようにするアプリケーションを構築したいと考えています。相当な労力のようですね。 AWS Serverless Application Repository を使用すると、実際にはそれほど時間がかかりませんでした。 大まかに言って、以下を作りました。 自動的に Stripe Checkout SDK […]

Read More

[発表]Amazon API GatewayでWebsocketが利用可能

本日より、任意のサーバーをプロビジョニングして管理することなく、Amazon API GatewayでWebSocket APIを使用して双方向通信アプリケーションを構築できます。 HTTPベースのAPIは、リクエスト/レスポンスモデルを使用して、クライアントがサービスにリクエストを送信し、サービスがクライアントに同期して応答します。 WebSocketベースのAPIは本質的に双方向です。 これは、クライアントがメッセージをサービスに送信し、サービスが独立してメッセージをクライアントに送信できることを意味します。 この双方向の振る舞いにより、クライアント/サーバーとのやりとりがより豊富になります。これは、明示的なリクエストをする必要のないクライアントにデータをプッシュできるためです。 WebSocket APIは、チャットアプリケーション、コラボレーションプラットフォーム、マルチプレイヤーゲーム、金融取引プラットフォームなどのリアルタイムアプリケーションでよく使用されます。 このブログでは、WebSocket APIとAPI Gatewayを使用してサーバーレスのリアルタイムチャットアプリケーションを構築する方法について説明します。

Read More

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

本日より、アプリケーション ロードバランサー (ALB)はAWS Lambda functionをターゲットにすることをサポートします。ウェブサイトの構築やウェブアプリケーションをAWS Lambdaを使いサーバレスなコードとして作成、管理し、ウェブブラウザやクライアントからのリクエストに簡単なHTTP(S)フロントエンドを提供するように設定できます。

Read More