AWSのお勉強。EC2、SQS、Lambda、S3をハンズオンで使ってみる。
やりたいこと
-
自PC→コンテナ(docker on EC2)にテキストデータを送信
自PCでcurlをたたいてテキストデータを送信、
docker on EC2の自作goプログラムでデータ受信 -
コンテナ→SQS
コンテナ(自作goプログラム)からSQS標準キューにテキストデータを連携。 -
SQS→Lambda
SQSをイベントソースにしてLambdaをキック。 -
Lambda→S3
LambdaからS3にテキストファイルを作成。
チャレンジその1
チャレンジその2
もう少し現実的な構成にしてみる。
何でもパブリックサブネットはやめてALBだけとし、
docker on EC2 は ECS on Fargate に変更してプライベートに配置、
SQSに抜けるところはPrivatelink、S3に抜けるところはGateway型VPCエンドポイントに変更
進捗
次回からひとつひとつやっていく
(できたところまで随時リンクを貼っていきます)
[進捗]事前準備
[進捗]チャレンジその1
- 1-1. VPC/subnet/EC2をterraformで作る
- 1-2. (事前学習)docker
- 1-3. (事前学習)go言語
- 1-5. (事前学習)Gin ※go言語のWebフレームワーク
- 1-6. EC2にdockerを入れてgo言語 & Ginで200 OKを返すだけの簡易WebAPIを作る
- 1-7. SQSをterraformで作る
- 1-8. WebAPIを拡張しSQSエンキュー処理を追加する
- 1-8. (事前学習)Lambda
- 1-9. SQSをイベントソースとしたLambdaを作る(SQSから呼ばれて起動するだけの処理)
- 1-10. LambdaからS3にファイル作成する
[進捗]チャレンジその2
- 2-1. VPC/subnet/EC2をterraformで作る
- 2-2. EC2にdockerを入れてECS上で動かす業務APコンテナイメージを作成する
- 2-3. ECRにプッシュする
- 2-4. ALB/ECSをterraformで作成する
- 2-5. Privatelink、SQSをterraformで作る
- 2-6. SQSをイベントソースとしたLambdaを作る(SQSから呼ばれて起動するだけの処理)
- 2-7. LambdaからVPCエンドポイント経由でS3にファイル作成する