前提として、以下を理解すること。
※参照:ウェブカツインフラ部(22)AWSとは
目次
- 1 ★AWSのネットワーク関連用語を基礎からおさらい
- 2 【AWS WAF とは?】初心者にもわかりやすく解説
- 3 【CloudFront とは?】初心者でもわかる簡単 AWS 用語解説
- 4 ★Amazon Route 53
- 5 ★図解!よく分かる Amazon Cognito 入門
- 6 【APIゲートウェイとは?】初心者にもわかりやすく解説
- 7 【AWS Lambdaとは?】初心者にもわかりやすく解説
- 8 ★AWS LambdaでVPC利用!?
- 9 ★AWS LambdaをVPC内に配置する際の注意点
- 10 ★何が違う?DynamoDBとRDS
- 11 AuroraかRDSどちらを選ぶべきか
- 12 Amazon Redshiftって何ができるの?AWSのデータウェアハウスサービスを解説
- 13 【はじめてのAWS】 AWS Budgetsで予算を管理しよう
- 14 ★AWSの監視ならCloudWatchが便利すぎる
- 15 ★AWS Step Functionsとは?状態(State)の用語解説
- 16 ★Amazon Pinpointとは?低コストでプッシュ通知を実現しよう!
- 17 ★Apple Push Notification Service
- 18 ★Firebase Cloud Messaging
- 19 ★AWS Fargateの概要・使い方について
- 20 ★インターネットゲートウェイ
- 21 ★Kinesis Data Firehose をゼロからざっくり理解する
- 22 よく聞くAmazon S3とは|ただのストレージじゃないの?
- 23 Amazon S3 バケットの使用
★AWSのネットワーク関連用語を基礎からおさらい
Amazon VPC
VPC。Virtual Private Cloud、AWS内の自社専用の領域です。自社専用のネットワーク領域を作ったら、当然そのなかでのIPアドレス管理や、インターネットとどう接続させるかなどの設定が必要になります。AWS上に構築するプライベートなネットワーク空間のことです。要するに仮想的な自社専用領域です。
AWSアカウント内には1つ以上のVPCを構成して使います。1つ“以上”なので複数作成することができ、それぞれ細かくアクセス先などを設定可能。
もちろん、オンプレミス環境から接続させることもOKで、インターネット、インターネットVPN、専用線(AWS Direct Connect)のどれとも接続できます。
アベイラビリティゾーン
アベイラビリティゾーン(AZ)はリージョンの中にあるデータセンター群を指し、「1つのリージョンは2つ以上のAZで構成され、それぞれ災害などの影響を受けにくい地理的に離れた場所にある」とされています。 そして、1つのVPCのなかに複数のAZがある状態になり、これを活用することで冗長構成が可能になります。サブネット
AWSの構成では必ず出てくる「サブネット」ですが、これは基本的には一般的なネットワーク用語としての「サブネット」と同じ理解で問題ないように思っています。要するに、ネットワークを分割して作った小さなネットワークのこと。AWSの場合、VPC内にサブネットを構成して利用するのが基本で、サブネットごとに外部(インターネット)やオンプレミス環境の接続要件を設定できます。サブネットはAZごとに構成する必要があることと、EC2インスタンスはサブネット内に配置することは覚えておきましょう。
セキュリティグループ
セキュリティグループはインスタンス単位で設定できるファイアウォールです。つまり、どのインスタンスがどこと通信できるかを制御できるということ。インターネットGateway
VPC内からインターネットに接続するためのゲートウェイです。これを使うことで、VPC内のシステムがグローバルIPを使えるようになります。Virtual Private Gateway
インターネットGatewayがインターネットに接続するのに対し、こちらはオンプレミス環境に接続するためのゲートウェイです。自社拠点やデータセンターとVPCを接続するときはこちらを使うのだそうです。
【AWS WAF とは?】初心者にもわかりやすく解説
「WAF」とは、AWSのなかに含まれる「ウェブアプリケーションファイアウォール(Web Application Firewall)」のことを指します。ウェブアプリケーションの脆弱性をついた攻撃からソフト・ハードを守る対策のひとつとして、注目を集めているセキュリティ環境です。パソコンで使用されている一般的なファイアウォール、IPS、IDSなどのセキュリティシステムとは違い、特定の条件に合った通信をアプリケーションレベルで検知&遮断できるのが特徴。
特に以下の攻撃に対して効果が見込めるため、非常に高い実用性が見込まれています。
・SQLインジェクション
・クロスサイトスクリプティング
・アプリケーションDDoS
【CloudFront とは?】初心者でもわかる簡単 AWS 用語解説
AWSが提供するサービスの中には、特定の環境のブラッシュアップを手伝い、より高品質へと変えてくれるものが多数あります。「CloudFront」もそのひとつで、事業に導入することでサービスを魅力的にすることが可能です。
「Amazon CloudFront」とは、スピードと安全性の高さが魅力の「高速コンテンツ配信ネットワーク機能」です。 データ、動画、アプリケーションなど、静的・動的なさまざまなWebコンテンツをスムーズに配信できるコンテンツデリバリネットワーク(CDN)であるため、多くのサービスを支えることができます。
多くの企業が既にCloudFrontを導入していて、その技術をサービスの充実に利用しています。下記のような大手動画配信サイトもその名を連ねていて、CloudFrontの導入事例として紹介されているのです。
・Amazon Prime Video:Amazon Prime VideoはNFLのサーズデーナイトフットボールを世界200カ国以上でスムーズに配信するために、CloudFrontを利用しています。
・Hulu:定額制動画配信サービスのHuluは、CloudFrontをはじめとしたAWSのインフラストラクチャでライブ映像を配信しています。安定性の高いCloudFrontを用いることで、急に視聴者が増えてトラフィック量が増大したとしてもスムーズにサービスを提供し続けることが可能です。
CloudFrontのメリット
CloudFrontを利用することによって、Webでのサービスに対して以下のようなメリットを与えることができます。・安全性の高いCDN
・海外からのアクセスにも安定したレイテンシーを提供
・コストの削減
・可用性を向上させる
→CloudFrontはDDoS対策やトラフィックの分散という点からサービスの可用性を向上させ、信頼されるシステムの構築に貢献してくれます。
さまざまな障害やトラブルが起こるWebサービスにおいて、可用性の高さは利用の理由になるでしょう。
★Amazon Route 53
Amazon Route 53とは? 新規ドメイン名の登録や、ドメインの DNS レコードの管理が行えるサービスです。
Route53は権威DNSです。権威DNSとは、ドメイン名とIPアドレスの変換情報を保持しているDNSのことで、変換情報を保持していないDNS(キャシュDNS)と区別するときに使います。
Route53は権威DNSなので、保持しているドメイン名以外の名前解決をリクエストしても応答しません。キャッシュDNSは、別に用意する必要があります。
★図解!よく分かる Amazon Cognito 入門
Amazon Cognito は、ユーザーのアイデンティティやデータ同期に関する機能を提供する、主にモバイルアプリのためのAWS のサービスです。
Cognito は、2014年7月に発表された ユーザーのアイデンティティ をテーマにしたサービスです。「こぐにーと」と読みます。
Cognito は、次の2つの機能「Cognito Identity」「Cognito Sync」を持っています。
Cognito Identity は、AWS のサービスを利用するユーザーに 一意のアイデンティティ を与えるためのサービスです。Cognito を使って、各ユーザーに固有の ID を振ることができます。
Cognito Sync は、AWS のサービスを利用するユーザーに 固有のデータストレージ を提供するサービスです。 Cognito Identity により一意になったユーザー一人一人に対して、ユーザーデータを保存する場所を提供してくれます。格納されたデータは、ローカルだけではなく、クラウドと同期して保存されます。
【APIゲートウェイとは?】初心者にもわかりやすく解説
APIゲートウェイとは、APIの管理や実行を容易にするしくみです。
APIとは、ソフトウェアやアプリケーションなどの一部を外部に向けて公開することにより、第三者が開発したソフトウェアと機能を共有できるようにしてくれるものです。
APIゲートウェイはクライアントから受け取ったリクエストを、それぞれのマイクロサービスにルーティングします。
通常のマイクロサービス・アーキテクチャの場合クライアントとそれぞれのAPIは個別に通信を行うことになります。
例えば、1つのWebサービスに「決済サービス」「ショッピングカート」「メール機能」「レコメンド機能」といった複数のAPIが使われている場合、クライアントはそれぞれのAPIと個別に通信することになりこの例でいえば計4回の通信が発生します。
APIゲートウェイを使うと、クライアントはAPIゲートウェイと通信を行い、APIゲートウェイがそれぞれのマイクロサービスと通信するためクライアントはマイクロサービスを知る必要がありません。
Amazon API Gatewayとは?
APIゲートウェイを提供するサービスの一つに、「Amazon API Gateway」があります。Amazon API Gatewayは、Amazonが提供する AWS (Amazon Web Services) というサービスの中の一機能です。Amazon API Gatewayは完全マネージド型サービスで、どんな規模のシステムであっても簡単にAPIの作成、配布、保守、監視、保護が行えます。トラフィック管理、認可とアクセスコントロール、モニタリング、APIバージョン管理などAPIコールの受け入れと処理に伴うすべてのタスクを取り扱います。
マネージド型サービスとは、クラウドのコンピューティング機能だけではなく運用管理も一体としてサービス提供するタイプのサービスです。
Amazon API Gatewayを利用するには、API Gatewayコンソールで操作を行います。APIのリストを表示したり、もう使用しないAPIを削除するなど様々な操作が行えます。
Amazon API Gatewayの機能
①APIの管理・インフラの管理運用
・バージョン管理
・認証
・APIのレスポンス状況の監視、モニタリング
→フルマネージド型サービスのため、利用者は上記のサービスを利用する必要がなく、AWSが提供したものを利用するだけで済みます。
②APIの作成
Amazon API GatewayではAPIの作成が行えます。例えばAWS上でプログラムを実行できる機能であるAWS Lambdaで関数を定義し、API GatewayでAPI名を入力、create apiボタンを押下するとAPIが作成できます。
Amazon API Gatewayのメリット
①効率的なAPI開発②簡単なモニタリング
③規模に応じたパフォーマンス
④大規模なコスト削減
【AWS Lambdaとは?】初心者にもわかりやすく解説
AWS LambdaはAWSで利用できるサービスの中でも、非常に多く利用されているものの一つで、素晴らしいサービスです。AWS Lambda(ラムダ)とは、世界で最も利用されているクラウドであるAWSで利用できる、サーバレスのFaaS(Function as a Service:ファース、エフアース)です。
FaaSとは、クラウドの利用形態の1つです。FaaSは、インターネットを通じて、プログラミングで作成した処理を定義・実行するクラウドの利用形態です。
サーバレスとは、文字通りサーバがいらない、ということです。今までのWebサービスなどは、サーバを購入し、その上にミドルウェアを購入してインストールし、その上にアプリケーションを稼働させてサービスを提供していました。しかしながら、「サーバレス」は、ミドルウェアも、サーバもAWSなどのクラウドサービス提供者が管理します。つまり、サーバやミドルウェアの運用管理が不要です。Webアプリケーションを作りたい人は、アプリケーションやプログラムコードだけを作成すれば、Webアプリケーションを公開できるようになります。
先ほど記載したように、AWS Lambdaは『サーバレスのFaaS』です。整理すると、AWS Lambdaとは以下のようなサービスです。
・クラウド上にプログラムを定義しておき、インターネットを通じて実行できるサービス
・サーバやミドルウェアの管理はAWSがしてくれるので、プログラムだけを考えればいいという素晴らしいサービス
AWS Lambdaのいいところ
①設計面AWS Lambdaは実行トリガーとなる関数が非常に豊富です。
実行トリガーを豊富に選択できるとどのようなメリットがあるのでしょうか。簡単に説明すると、アプリケーション同士の関連性を薄くして、サービスの改善を簡単にしたり障害の範囲を抑えたりすることができます。アプリケーション同士の関連性が高いと、サービスを改善するたびに、動かなくなってしまうアプリケーションはないか、膨大なテストをすることになります。これでは、時間もコストもかかってしまいます。しかし、アプリケーション同士の関連性が低ければ少ないテストでアプリケーションの改善を行うことができます。
②構築面
AWS Lambdaでは、選択できるプログラミング言語が豊富です。JavaやRubyなど、一般的に流用しているプログラミング言語が選択することが可能です。
ここにないプログラミング言語を使いたい場合でも、「カスタムランタイム」という機能を使えば可能です。例えば、「カスタムランタイム」を使えばbashをAWS Lambdaの関数として実行できます。
環境変数やタイムアウトの時間など、上限はありますが設定することができます。アプリケーションの処理に関する設定は一通りできるようになっています。
③運用面
最大のいいところは、障害がほとんど起きないということです。
サーバ上でアプリケーションを運用する場合は、アプリケーションの障害のほかにも、サーバやミドルウェアの障害にも気を付けなければいけません。アプリケーションを動かしているサーバが夜中や休日にストップしてしまうと、急いで会社に駆け付けなければいけない、といったこともあります。しかし、AWS Lambdaはサーバレスなので、その心配は一切不要です。
AWS Lambdaの最大のいいところはなんといっても安さです。毎月、1,000,000 件の実行は無料で利用できます。個人で利用するのであれば、ほとんど無料で利用できるといっても過言ではありません。
④豊富な使い道
AWS Lambdaは様々な使い道があります。データ処理やファイル連携といった、アプリケーションに必要なことは当然可能です。また、認証やアクセス権監査の実行、ログの抽出といったセキュリティ関連の処理も可能です。
EC2などのサービス利用料を抑えたいときに、一定の利用料を超えたら全EC2を停止させるといった、運用面での利用もできます。EC2などを利用するよりも圧倒的に料金が低いため、要件に合わせて、様々なことに利用していきましょう。
まとめ
AWS Lambdaとはサーバなしで利用できる、関数置き場と考えていいでしょう。豊富な開発手段や設定が用意されています。
用途も、データ処理や認証、自動的な運用など、ありとあらゆる使い道を考えることができます。
また、障害が起きにくいため安定してアプリケーションを動かすことができます。
★AWS LambdaでVPC利用!?
AWS LambdaにVPCに配置することにより、大きく3つのメリットが得られます。 逆に考えると、以下の3要素が不要な場合は非VPC環境で実行する方が良いでしょう。
①VPC内にあるリソースを活用できる
VPCに配置済みのリソースへアクセスできます。Lambdaから直接EC2やRDSに繋ぐ必要がある場合には必須の設定です。
②セキュリティグループを自由に設定可能
Lambdaを所属させるサブネットとセキュリティグループの設定が可能です。EC2インスタンスと同じ要領で、ネットワーク周りをカスタマイズできるようになります。
③外部接続時のIPアドレスを固定化できる
インターネットアクセスをNATゲートウェイ経由にすることで、Lambdaから外にアクセスする際のIPアドレスを固定化することできます。セキュリティ要件など、接続元IPアドレスを絞る必要がある場合に有効な手段です。
★AWS LambdaをVPC内に配置する際の注意点
Amazon Web Serviceの公式見解では、LambdaをVPC内に置くメリットは基本的にないというスタンスです。
しかし、Amazon EC2やAmazon RDSなど、VPC内にあるリソースとLambdaで内部通信する場合はVPC内への配置が必要となります。
例えば外部公開しないADサーバーとLambdaで認証情報をやりとりする、など。
VPC内に配置する際の注意点:主に5つです。
LambdaをVPC内に配置すると、Lambda実行時にENI(仮想ネットワークインターフェース)が付与されるようになります。それに伴い考慮すべきことがあります。
①セキュリティグループの設定
②IAMロールの設定
③所属サブネットの残りのIP
④起動スピードが若干遅くなる
⑤外部ネットワークと通信する際は、、、
★何が違う?DynamoDBとRDS
AWSでのRDSとDynamoDBも同様に、似ているようで、当然違いはあります。データベースのサービスでありつつ、異なる特徴を持ったデータベースとなっています。
RDSの特徴
RDSの特徴は、リレーショナルデータベースであるという点です。テーブルを結合しての複雑なクエリが利用出来る点は最大の特徴で、どうテーブル設計できるかが、RDSを選択するか、DynamoDBを選択するかの分かれ目とも言えます。
またRDSはVPCに配置するので、インターネットからは完全に繋がらないデータベースとして保持することが可能です。
RDSの気を付けポイント
RDSの気を付けたいポイントは、Lambdaと組み合わせる場合に多いです。Lambdaはデフォルトでは自分の作ったVPCには配置されないため、RDSにアクセスしようとすると、RDSがグローバルになくてはなりません。・Lambdaと組み合わせて使いたい場合のシステム構成に注意
→LambdaをVPCに配置するか、RDSをグローバルに配置するか、選択になる
→LambdaのzipファイルにMySQLなどのライブラリを含める必要がある
→個人情報をインターネットから隠したい場合はRDSになるが、実行時間とのトレードオフ
スケールアップにはシステム停止が必要
DynamoDBの特徴
DynamoDBの特徴は、NoSQLであるという点です。データ構造も、RDSのテーブルとは異なった持ち方をします。読み込み書き込みが早い点が特徴ですが、一方でデータの操作がAPI経由となり、SQLとはデータの扱い方が異なっています。
DynamoDBの気を付けポイント
DynamoDBはデータの更新が難しいデータベースです。検索にも制約があるため、複雑な更新となるデータの利用には向いていません。複雑なデータ更新が行われる設計のシステムは、システム設計・テーブル設計の見直しや、RDSの利用についても検討を推奨します。・空文字が利用出来ない
・テーブル結合した検索はできない
・複雑なデータ更新の多いシステムの利用には向かない
・キャパシティユニットは自動ではスケールしない
AuroraかRDSどちらを選ぶべきか
Auroraはどのようなサービスなのか。こちらはクラウド向けにAWSが新たに開発したRDBのサービスとなります。
MySQLと互換性のあるバージョンと、PostgreSQLと互換性のあるバージョンがあります。それぞれMySQLの最大5倍、PostgreSQLの最大3倍高速であるとAWSは謳っております。
このブログエントリのタイトル「AuroraかRDSどちらを選ぶべきか」は少しおかしいです。AuroraはRDSの一部です。RDSでデータベースを作成する際にDBエンジン選択欄でAuroraがでてきます。このタイトル正確には「AuroraかAuroraじゃないRDSどちらを選ぶべきか」とか「(RDSで)MySQL(PostgreSQL)かMySQL(PostgreSQL)互換のAuroraどちらを選ぶべきか」のほうが正しいです。
RDSとAuroraの違い
では、RDSとAuroraにはどのようなちがいがあるのでしょうか。今日は2点、アーキテクチャについてとAurora独自の機能についてお話したいと思います。RDSの場合、そのアーキテクチャーはEC2にMySQLやPostgreSQLを自前でインストールする場合と大差ないとお考えいただいて構いません。
続いて、Auroraです。大きく異なる点は、インスタンスとストレージが分離していることです。
RDSかAuroraどちらを選ぶべきか
基本的にはAuroraを推します。これまでご紹介した通り、パフォーマンス、可用性、耐久性など各性能が高い上に便利な機能も色々と揃っているからです。RDBは確かに色々融通がきいて汎用性が高いです。ですがAWSはRDS/Aurora以外にも様々なデータベースサービスを提供しています。ワークロードによってはRDBよりこれら他のサービスの方が適している場合がありますので、これらも含めて検討するようにしましょう。
Amazon Redshiftって何ができるの?AWSのデータウェアハウスサービスを解説
Amazon Redshiftとは、AWSが提供するデータウェアハウスサービスです。
データウェアハウス(DWH)というのは、さまざまなデータ源からデータを収集・統合・蓄積し、分析のため保管しておくシステムです。
伝統的なRDBMSとは違って、継続的な書き込みや更新には向いておらず、一括でデータを書き込み分析のため大容量データを読み出すという処理に最適化されています。
その結果として、たとえばRDB設計における正規化はデータウェアハウスでは重視されず、読み出しの高速化のためにあえて正規化しないでデータを格納することもあります。
インターフェイスとしては、BIツールやPostgreSQLクライアントから操作することができます。
【はじめてのAWS】 AWS Budgetsで予算を管理しよう
AWS Budgetsとは:AWSコスト管理サービスの一種となり、”AWS利用料を予算別に管理する”ことが出来ます。
AWSアカウント全体の管理だけでなく、例えば Amazon EC2の利用料金を毎月いくらまでに抑えたいといった際にも設定し管理が可能です。
管理するだけでなく、例えば設定予算に近づいた際などに管理者へアラートを通知する事も可能です。
★AWSの監視ならCloudWatchが便利すぎる
今回は、構築したシステムを安定運用するために欠かすことのできないモニタリング環境の設定を、AWSの監視サービスAmazon CloudWatchの機能を利用する方法を紹介します。
Amazon CloudWatchの機能のひとつ「CloudWatch Logs」を使います。CloudWatch Logsとは、AWSが提供しているログ監視サービスです。EC2インスタンスのOSログやアプリケーションログを収集し、リアルタイムでモニタリングします。
主に下記のことができます。
①ログの蓄積(保存期間を設定できます)
②特定文字のフィルタリング
③フィルタパターンに一致したものをグラフ化
④Amazon SNS(Simple Notification Service)と連携したアラート設定
以下のようにCloudWatch Logsで収集したログの後続処理をほかのAWSサービスに連携ができるので、ログ分析、可視化といったほかの処理を加えた使い方もできます。
⑤収集したログデータをS3へバッチエクスポートする
⑥収集したログデータをリアルタイムにLamdaで処理
⑦収集したログイベントをリアルタイムにKinesisへ投入する
CloudWatch Logsのメリット、デメリット
●メリット・ログ監視を開始するまでの設定が手軽
・他のAWSリソースと連携した設定が可能
・別途、監視サーバを立てる必要がない
●デメリット
・Zabbixなど他の監視ツールと比較すると料金が割高になる
・物理サーバの監視はできない
監視すべき部分がAWS内で完結する場合や、簡易的なログ監視をサクっと設定したい場合はCloudwatch logsが便利。
AWS以外のクラウド環境やオンプレミス環境を含めた総合監視する場合や、複雑な文字列を検知させたい場合はZabbixの利用が向いているかもしれません。
Amazon CloudWatch自体は無料で始められ、無料利用枠内で利用できるアプリケーションも多数用意されています。
★AWS Step Functionsとは?状態(State)の用語解説
そもそもStep Functionsとはどういう意味かというと、そのまま直訳すると「階段関数」という意味になります。それぞれの関数を繋げて実行すると捉えると良いかもしれませんね。
AWS Step Functionsとは・・・? ビジュアルワークフローを使用してソフトウェアやシステムを調整するサービスのことです。それぞれが別々のシステムであってもAWS Step Functionsを用いることで、簡単にアプリケーションを接続し、調整ができるようになります。
AWS Step Functionsではワークフローのことをステートマシンと呼んでいます。AWSの公式サイトでステートマシンと記述があればワークフローのことだと認識していただくと良いでしょう。
AWS Step Functionsの概要
AWS Step FunctionsはAmazon States Language(以下、Amazon ステートメント言語)というワークフローを宣言するために必要な言語が使用されます。Amazon ステートメント言語はJSONをベースにした言語です。この言語はいくつかの状態を表すStateを定義する必要があります。AWS Step Functionsには下記の状態(State)を定義できます。・Task(ワークフロー内のすべての作業は、Taskにより処理される)
・Choice(分岐ロジック、次に移行する状態の決定)
・Wait(指定した時間、待機することができる)
・Succeed(実行を正常に停止)
・Fail(エラーによる実行の停止)
・Parallel(並列処理が可能)
・Map(動的並列処理が可能)
★Amazon Pinpointとは?低コストでプッシュ通知を実現しよう!
Amazon Pinpointとは何か簡単に説明すると、ユーザーの動向を分析し、そのユーザーをセグメントに分け、対象のユーザーに向けて個別通知が可能というAWSのサービスです。
さらに、Amazon Pinpointは通知を送った後のユーザーの行動分析も可能となっています。配信数から開封率、どれだけクリックされたかなど、分析することができます。この分析結果をもとに、さらに効果の高い通知を配信することができるようになるということです。
★Apple Push Notification Service
Apple Push Notification Service(APNS)とは、アップルが作成したサービスで、2009年6月17日のiOS 3.0のリリースとともに開始された[1]。Push技術を使って常にオープンなIP接続を通してサードパーティー製アプリケーションのサーバーからの通知をアップルの端末に転送する。
★Firebase Cloud Messaging
Firebase Cloud Messaging(FCM)は、メッセージを無料で確実に送信するためのクロスプラットフォーム メッセージング ソリューションです。
FCM を使用すると、同期可能な新しいメールやその他のデータがあることをクライアント アプリに通知できます。通知メッセージを送信することで、ユーザーにアプリを再度アピールし、定着率の向上につなげることができます。
★AWS Fargateの概要・使い方について
AWS Fargateとは、一言でいえば「ホストの管理なしにコンテナを動かすためのサービス」のことを言います。「※コンテナ」を動かすためのサービスとして、Amazon ECSというサービスもありますが、コンテナ実行環境(ホストマシン)の管理・運用は必要になります。しかしAWS Fargateでは、ホストマシンを意識する事なく、コンテナを実行する事が可能です。また、既にAmazon ECS on EC”で動作しているサービスについては、起動タイプを切り替えるだけでほぼ変わりなくAWS Fargeteに移行する事も出来ます。
そもそも「コンテナ」ってなに?
アプリケーションを構成するコンポーネントは4つあります。・ランタイム/エンジン
・アプリケーションコード
・依存ライブラリ/パッケージ
・設定
本番、各環境でソフトウェアのバージョンが違って問題が起きる事があります。そういった問題を「コンテナ」で解決します。ランタイム/エンジン・アプリケーションコード・依存ライブラリ/パッケージを全てコンテナの中にパッケージングします。そして、このパッケージをそのままデリバリーする事で、開発環境から本番環境まで同一の環境(コンテナ)でアプリケーションを動作させることが可能となります。
★インターネットゲートウェイ
インターネットゲートウェイは、VPC とインターネットとの間の通信を可能にする VPC コンポーネントであり、冗長性と高い可用性を備えており、水平スケーリングが可能です。
インターネットゲートウェイは 2 つの目的を果たします。1 つは、インターネットでルーティング可能なトラフィックの送信先を VPC のルートテーブルに追加することです。もう 1 つは、パブリック IPv4 アドレスが割り当てられているインスタンスに対してネットワークアドレス変換 (NAT) を行うことです。
★Kinesis Data Firehose をゼロからざっくり理解する
リアルタイムのストリーミングデータ(大量のデータソースによって継続的に生成されるデータのこと(ログ、IoTデータ、etc…))をS3やRedShift、Elasticsearchなどのデータストア、分析ツールに配信するAWSのマネージドサービス。 複雑な設定をすることなく、データ送信元から送信先へのデータの転送を実現することができます。
最近、CloudWatch Logs から S3 へのログデータの転送に Kinesis Data Firehose を初めて使ってみたので、勉強したことをまとめてみました。
よく聞くAmazon S3とは|ただのストレージじゃないの?
S3とは、AWSの中のサービスの1つです。Simple Storage Serviceを略してS3と呼んでいます。
クラウド型のオブジェクトストレージサービス*です。ざっくりと言うと容量が無制限なFTPサーバーのようなイメージです。
*オブジェクトストレージとは、オブジェクト(ファイルなど)単位で出し入れが可能なストレージです。各地の物理的なデータセンターに分散して保存されていることで障害に強かったり、オブジェクト単位でのバージョンを残すことが出来たりと、メリットが多いです。
基本中の基本「ストレージ機能」
S3の最もメジャーな使い方は、ファイルをS3に保存するストレージ機能を使うことです。ファイルのバックアップであったり、ファイル処理の加工前、もしくは加工後のファイルを保存する、画像ファイルやCSSなどWebで使う静的なファイルをS3に置いて配信するなど、使い方は無限大です。
S3は事前に保存容量を決める必要は無く、入れた分だけ課金されますので、FTPサーバーのようにストレージの空きを気にする必要もありません。 思い立ったらすぐにS3に保存する事ができます。
S3の主要な機能を紹介します。
・ライフサイクル
・バージョニング
・イベント
・暗号化
・アクセス権限
・ログ記録
・静的Webサイトホスティング
→S3をWebサーバーのように使い、静的なサイトを公開することができます。
Amazon S3 バケットの使用
Amazon S3 にデータ (写真、動画、ドキュメントなど) をアップロードするには、いずれかの AWS リージョンに S3 バケットを作成する必要があります。
Amazon S3 バケット名はグローバルに一意であり、名前空間はすべての AWS アカウントによって共有されています。つまり、バケットが作成された後は、そのバケットの名前はバケットが削除されるまで、どの AWS リージョン内の別の AWS アカウントでも使用できません。
デフォルトでは、AWS アカウントにつき最大で 100 個のバケットを作成できます。バケットを追加する必要が場合は、サービスの制限の緩和を申請することによって、アカウントバケットの制限を最大 1,000 バケットまで引き上げることができます。
AWS SDK を使用してバケットを作成する場合は、最初にクライアントを作成し、次にそのクライアントを使用してバケットを作成するリクエストを送信します。
この記事へのコメントはありません。