1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

はじめてのアマゾン ウェブ サービス for Developerを受けてみて...

Last updated at Posted at 2020-08-03

はじめに

AWSには「[はじめてのアマゾンウェブサービスforDeveloper][link-1]」というセミナーがあります。
[link-1]:https://pages.awscloud.com/JAPAN-event-OE-Hajimete-for-Dev-20200728-reg-event-LP.html?sc_channel=em&sc_campaign=JAPAN_FIELD_NL_Seminar202007&sc_medium=em_264549&sc_content=REG_webinar_strat&sc_geo=japn&sc_country=jp&sc_outcome=reg&trk=em_webiner_hajimete-for-dev-0728_EV_202007&campaign-id=AWS_EM

はじめてのアマゾンウェブサービス」という名前に釣られ、参加してみました。
そのままにしておくのはもったいないので、自分なりにアウトプットしてみようと思います。

大まかな流れ

  • クラウドの基本的な特徴

  • AWS のビジネス規模および成長率

  • 主要サービスのまとめ

  • クラウド のセキュリティ

  • クラウドを活用した開発手法のトレンド

  • Microservices / Serverless

  • Infrastructure as a Code / DevOps

  • 非同期型処理

クラウドを活用した開発手法のトレンド

Microservices

クラウドネイティブ開発の場合、取り入れると有効であると思われるアーキテクチャです。

  • それぞれのリソースをブラックボックス化してしまい、定義されたAPIでやり取りをする。
  • 他のリソースへの影響を考えずに機能改善が行えるため、楽

ということでした。

  • メリット

  • サービスごとに小規模なチームで開発を行う為、自主的かつ迅速に仕事に取り組める。

  • サービスごとにスケーリングを行えるため、効率化できる。

  • デプロイが容易なため新しいアイデアを試すことや、うまくいかなかった際にロールバックすることが簡単にできる。

  • 一つのサービスに障害が発生してもアプリケーション全体のクラッシュは回避できる。

マイクロサービスの対義語には「モノリシック」というものがあり、全体で単一のサービスとして実行されるものを言います。

参考:[マイクロサービス][link-2]
[link-2]:https://aws.amazon.com/jp/microservices/


AWS Lambda(Serverless)

  • Serverless
    システムの実行には、
  1. プログラムを書き
  2. 実行する

という手順が必要です。

したがって、従来のシステムではプログラムを実行するための実行環境のサーバの構築やメンテナンスをする必要があります。

実行環境であるサーバにリクエストが集中して実行環境に障害が起きてしまうと元も子もないため、リクエストが増えることがわかっている場合にはスケーリングする必要があります。

そういった煩わしさをなくしたのが、サーバレスコンピューティングを担う「AWS Lambda」です。

  • AWS Lambdaのメリット
  • Lambdaの実行環境設定をすれば、設定をもとにAWSが面倒を見てくれる
  • 複数の言語サポート(アクセスがまばらの場合は初動が速いPythonなどがおすすめ)

ということでした。

料金体系は

サービス 料金体系
Lambda 実行したリクエストと時間分だけ料金発生

となっています。

参考:[サーバーレスって何が便利なの ? AWS でサーバーレスを構築するためのサービスをグラレコで解説][link-3]
[link-3]:https://aws.amazon.com/jp/builders-flash/202003/awsgeek-serverless/


Infrastructure as Code

簡単に言うと「インフラストラクチャーをコード化する」ということみたいです。
そのまんまですね。

  • リソースは API 経由でプロビジョニング
  • 定義ファイルによる効率化と自動化
  • エラーやセキュリティ違反の除去

といったメリットがあります。
AWSではAWS CloudFormationを用いて実現することができます。

----

非同期型処理

  • Amazon SQS
    • 完全マネージド型のメッセージキューイングサービス
    • AWSで非同期型処理をやるならこれ

ECサイトを例にとった具体的な構成図は以下の通りです。
非同期処理 (1).png

非同期処理をしない場合には、ユーザが注文をした際に在庫を確認し、発送できる状態であるかの確認をするまで待機してもらうことになるのですが、AmazonSQSを間に挟むことによってフロントエンドとバックエンドを非同期にすることができ、ユーザビリティの向上につながります。

まとめ

ここまで「はじめてのアマゾンウェブサービス for Developer」で説明受けたクラウドを活用した開発手法のトレンドをまとめてみました。

前提知識がないとなかなかイメージしにくいなと感じることがあったので、アジェンダを確認し、知らない単語があれば事前に調べることをお勧めします。

1
0
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
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?