AWS開発奮闘記① ~初めてのAWS~
以前にAWSを使用したWEBコンテンツ作成に携わった事があるのだが、
その時に調査して知ったことや覚えたことを備忘録として定期的に掲載していければと思う。
基本的にはLambda(Python)でのプログラム開発の部分を主とし、
boto3を使用しての他のAWSサービスとの連携部分を書いていきたい。
まずは、初回ということで構成と各サービスの説明を簡易的に記す。
■Amazon Virtual Private Cloud (Amazon VPC)
クラウド上に仮想的なネットワークを構築するためのサービス。
■AWS WAF
Web Application Firewall (ウェブアプリケーションファイアウォール)の略称で、
Webサイトを含めたWebアプリケーションをサイバー攻撃から守るサービス。
■Amazon Route53
可用性と拡張性に優れたドメインネームシステム (DNS) ウェブサービス。
Route53を使用することで、AWSで開発したWebサービスを任意のURLで公開することができる。
■Amazon CloudFront
データやビデオ、アプリケーションといった静的/動的コンテンツを高速に配信する
CDN(Contents Delivery Network)の機能を持つマネージドサービス。
■Amazon EventBridge
AWSで発生する様々なイベントや、SaaSから発生するイベントを使用して、
さらに様々なAWSサービスとつなげるサービス。
■Amazon API Gateway
ユーザーやクライアントがインターネット経由でアプリケーションやサービスに
アクセスする際の入口となるサービス。
具体的には、バックエンドサービス(Lambdaなど)の前に配置され、クライアントからのリクエストを受け取り、
適切なサービスやリソースにルーティングする。
■Application Load Balancer
HTTP や HTTPS のプロトコルのレイヤー7(アプリケーション層)だけに対応するロードバランサーで、
Webアプリによく利用されている。
複数の AZ(アベイラビリティゾーン=データセンタの集合の単位)をまたいだインスタンスに対応可能。
■Amazon Elastic Compute Cloud (Amazon EC2)
仮想サーバを構築できるサービス。
■Lambda
AWSが提供するFaaSのサービス。クラウド上にプログラムを定義しておき、インターネットを通じて実行ができる。
つまり、利用者側はプログラムコードを用意して、Lambda側に設定するだけでプログラムを実行することができる。
サポートされてる言語は現時点では、Node.js、Python、Java、Ruby、C#、Go、PowerShellとなる。
・レイヤー
共通のロジックやライブラリに関しては、Lambda Layerとしてパッケージ化(zipファイルアーカイブ)して、
複数のLambda関数で共有することができる。
・boto3
Python から操作するためのライブラリの名称。
S3 などのサービス操作から EC2 や VPC といったインフラの設定まで幅広く扱うことができる。
■Amazon CloudWatch
リソースやアプリケーションのパフォーマンスをリアルタイムで監視することができるモニタリングサービス。
■Amazon DynamoDB
1 桁ミリ秒単位で規模に応じたパフォーマンスを実現する高速で柔軟な NoSQL データベースのフルマネージドサービス。
■Amazon Cognito
モバイルアプリやWebアプリケーションの認証に特化したサービス。
■Amazon Simple Storage Service (Amazon S3)
AWSが提供する“オブジェクト”単位でデータを管理するオブジェクトストレージサービス。