AWS関連のことを調べてみた

AWS関連のことを調べてみた
目次

第1回:クラウド環境を作成してみよう!

ハッカソンでプロダクトを作るにあたって、画面だけで完結するサービスは少なく、
どうしてもサーバ通信を行い、サーバ側でAIを呼び出したり、APIを呼び出したり、はたまたDBを呼び出しサーバ側で色々な処理を行うといったプロダクトを作ることがほとんどです。

そうなってきますとどうしてもサーバが必要となってきます。
昔は自分のPCにIISを入れて、自分のPC内にサーバを構築した記憶がある人も少なくないのではないでしょうか。

ですが、現在はクラウドがありますので、そちらを使われることが一般的でしょう。
ということで、今回の記事ではAWSを用いたサーバ環境の立ち上げを行っていきたいと思います。

# 1.AWS環境を作成する。
記事の記載量から、AWSのアカウント作成等はスキップさせて頂き、
ハッカソンでよく使われるサーバレス環境(Lambda環境)の構築から、記載したいと思います。

## そもそもLambdaとは
LambdaとはAWSが提供するサーバレスの処理(関数)を実行できるサービスになります。
AWSにはクラウド内に仮想サーバを構築するEC2というサービスが御座いますが、
EC2と

元記事を表示

ハッカソン参加時の備忘録 ~ 第0回なぜこの記事を書くのか ~

はじめまして。
ITエンジニアのきゅうと申します。

## はじめに
 エンジニアをしていると、少し前からちょくちょく耳にする『ハッカソン』。
 ハッカソンという言葉はハック(hack)とマラソン(marathon)を合わせた混成語とのことで、
ハッカソンと言う名前に特に意味があるとは思いませんが、要するに決められた時間内に力を出しきって1つアプリや、サービス等を作り上げようぜ!と言う、IT関連のイベントの事です。

 かくいう私も、自分が所属している会社が年に1度、グループ会社を招いてハッカソンを開催しますのでそれに参加したり、外部のハッカソンに応募したりしております。
何故、自らキツいイベントに身を置くのか、きっとマラソン大会に参加するランナーと同じ気持ちだと思いますので、身近にいらっしゃるランナーの方に質問してみると良いかもしれません。

## 概要
 話が脱線しかしておりませんが、ハッカソンは決められた時間内にアプリやサービス等を作り上げる、、、
 言い換えれば動くモノを提供出来なければスタートラインに立つことすら出来ないわけです。

 そこで、これから何回かに渡って、私が過去

元記事を表示

Cognitoユーザプールの外部IdP連携をちゃんと理解する

これまで認証といえばCognito一択みたいにアーキを描いて、あとはいい感じに連携してくれているみたいな理解で実際その裏で何がされているかを気にしてこなかった。AWS SAPの対策でやたらID連携が出てきたり、仕事上認証認可の細かいところを触れることがあり一度整理する。

# [そもそも] 認証認可の周辺知識整理

## ■ 認証と認可

認証 → 相手が誰かを同定する作業。ステータスコード401はリクエスタが誰だかわかってない状態。
認可 → 相手に権限を与える作業。ステータスコード403は誰だかわかった上で許可しない状態。

## ■ OAuth2.0

認可のためのプロトコル。
以下のメリットがある。

– クライアントアプリにリソースを提供したいがID/PWは渡したくない。
– PWのライフサイクルと分離したい。(ID/PWを渡すとPW変更のたびにアクセス権が失われるため)
– 部分的に権限を渡したい。(ID/PWだとアクセスする全ての操作ができることになってしまうため)

→ アクセストークンを用いてクライアントがリソースへアクセスできるようにしたもの。アクセストークンは予測

元記事を表示

三浦さんにAppSyncを紹介したのは私です。AppSyncを深堀してみる。

# 三浦さんとの出会い

最初にお会いしたのは下記でLT登壇を一緒にした時だと思います。その後の懇親会で話したのが最初の記憶です。
https://jawsug-sapporo.doorkeeper.jp/events/94378

JAWS FESTA 2019でもスタッフ側だったので話すことがあったはずなのですが、ハンズオン講師で緊張していてほとんど覚えてないですが、この時ぐらいにアーキテクチャ見てAppSyncの方が良さそうだなーと思って、JAWS-UG札幌恒例の居酒屋で飲みながら話した記憶があります。

その辺はJAWSDAYSの2022で触れてくれているので見てみてください。(10分ぐらいから・・・)

# AppSyncとは

AppSyncが発表されたのは2017年のre:Inventです。最初はプレビューでしたが2018年4月13日にGAされました。

https://aws.amazon.com/jp/about-aws/whats-new/2018/04/aws-appsync

元記事を表示

ChaliceがAgents for Amazon Bedrockで化けたよ、自然言語でAPIが作れるようになったよ

# この記事を1行で

AWSのChaliceで、日本語のコメントを実行トリガーにした関数を簡単に書けるようになりました

![Firefly サイバーな世界に置かれた聖杯 7837.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/233180/f8ec7719-24a8-765f-aa18-d4753fe5ca11.jpeg)

※Agents for Amazon Bedrockの名前が長いので、この記事では`Agents for AB`、略称で`A4AB`と書きます。

# この記事を3行で

– 2023年11月の末に、`Agents for AB`(自然言語で出入力できるサーバーレスなAPIを作れるサービス)が発表された
– Chaliceには`Agents for AB`に必要なリソースを自動出力する機能がある
– 今のChaliceを使うと、爆速で自然言語で対話するAPIを作ることができる

# 必要な開発環境

– Python(Lambdaが動く環境ならOKです。3.10で確認していま

元記事を表示

色々なネットワーク間接続を試しつつTransit Gatewayを理解する。(その1:VPC Peering)

# はじめに
AWSには各ネットワークを繋ぐためのサービスが色々とあります。

必要に応じて毎回調べながら導入するようなことをよくやっていますが、改めてきちんと整理してAWSのネットワーク間接続をまとめてみようと思い、今回から何回かに分けてAWSのネットワーク間接続を色々と試しつつ学んでいこうと思います。

また、仕事で`Transit Gateway`を使うことも増えたことと、資格勉強も兼ねて特に`Transit Gateway`に関しては深く調べてみたいと思います。

# AWSのネットワーク間接続について
TCP/IPの世界において、端末間で通信を行うためには同一ネットワークである必要があり、同一ネットワーク以外の端末などと通信を行うためにはルータなどのゲートウェイ機器が必要となります。

AWSでは`VPC`内通信であれば、デフォルトで作られるルートテーブルに従って双方向に通信できますが、`VPC`を超えた通信については、色々なゲートウェイサービスを利用する必要があります。

|サービス|説明|備考|
|:–|:–|:–|
|Internet Gateway|インターネッ

元記事を表示

CloudWatch Syntheticsを使ってE2Eテストの導入をガチに検討してみる

## はじめに
CloudWatch Syntheticsを使って外型監視を実装した時に、
E2Eテストにも流用できるのではと思いガチ目にデモを実装してみました。

Syntheticsはローカルでの実行ができないのでどのように開発、デプロイを行うかが今回の課題でした。

## CloudWatch Syntheticsについて
– AWSが提供するWebアプリケーション、APIを簡単に監視できるサービス。
– SyntheticsはPuppeterを裏側で使用しておりPuppeterの記述でテストシナリオを書くことができる。
– CloudWatch Alarmと連携させ監視を容易に実現することできる。

[CloudWatch Syntheticsについて](https://pages.awscloud.com/rs/112-TZM-766/images/AWS-Black-Belt_2023_Amazon-CloudWatch-Synthetics_0331_v1.pdf)

## E2Eとして導入する上での問題点
– SyntheticsはLambda LayerとしてAWS

元記事を表示

Terraform の `The “for_each” value depends on resource attributes that cannot be determined until apply` に対する対応

この記事は **[リンクバルアドベントカレンダー2023](https://qiita.com/advent-calendar/2023/linkbal)** の6日目の記事です。

昨日は @Togo_Yokoyama さんの記事です!

https://qiita.com/Togo_Yokoyama/items/4fff312af1d0baf61c42

## はじめに
Terraformで `for_each` を使ってループさせるとき、以下のエラーが起こることがあります。

`The “for_each” value depends on resource attributes that cannot be determined until apply, so Terraform cannot predict how many instances will be created. To work around this, use the -target argument to first apply only the resources that the for_each d

元記事を表示

AWS ECS Run Taskで各マイクロサービス連携する

## はじめに
エアークローゼットのエンジニアアインです。
この記事はエアークローゼット Advent Calendar 2023 24日目の記事になります。

https://qiita.com/advent-calendar/2023/air-closet

## 各マイクロサービス連携する

マイクロサービス内に各サービス連携するのはよくあります。以下の方法を通じて連携できる:

– API calling: HTTPまたはRPCで実施する方法。
– イベント駆動: イベント発火で各サービス連携する方法。

本記事は「イベント駆動」方法を中心として書かせていただきます。

## SAGAパータン

各サービスが独自のデータベースを持っているため、service-Aがservice-Bを呼ぶと、異なるデータベース上でトランザクションを実行する必要があります。注意すべきは、異なるデータベース上でACIDトランザクションを実行できません。

SAGAで複数データベース上でトランザクション実行できます。

具体的には

> それぞれのローカルトランザクションは、それが属するデータベースを

元記事を表示

[個人開発] 過去の天気を簡単にグラフ化できるサービスを作ってみた。

### はじめに
過去の天気を閲覧できるWebアプリを作成しましたので技術的な部分に関して紹介していきます。

### 概要
– サービス名:かこてん。
– URL:https://kako-ten.com/
– コンセプト:過去の気象データを誰でも簡単に可視化・比較ができるサイト
– バックエンド:AWSサーバレス環境 (Lambda/Python, API Gateway, DynamoDB, SAM等)
– フロントエンド:React/Typescript, VITE, MUI, canva等
– インフラ:AWS, CloudFront, S3, Cloudwatch, Cloudformation等
– CICD:Github Actionsによる自動ビルド・テスト・デプロイ
– Github: https://github.com/y-o-shi/kakoten-web-front (フロントのReactコードのみ公開)

### サービス内容
全国約1200地点の気象庁アメダス観測所の過去のデータを非常に簡単な操作でグラフ化できます。単一地点を選択するモードと、複数地点を

元記事を表示

AWS re:Invent 2023 生成AI系アップデート一覧(その2)

# はじめに
この記事は株式会社ナレッジコミュニケーションが運営する [クラウド AI by ナレコム Advent Calendar 2023](https://qiita.com/advent-calendar/2023/knowcom-cloudai) の24日目にあたる記事になります!

AWS re:Invent 2023における生成AIサービスのアップデートの一覧を紹介致します。この記事では、初心者エンジニアや非エンジニア層を対象としており、各サービスの概要やユースケースをに焦点を当て、これらのサービスが私たちの業務や生活にどのように影響を与えるか、考えていきたいと思います。[(その1はこちら)](https://qiita.com/knowledgecommunication/items/86c64bc48e41d45d8e52)

# AWS re:Invent 2023で発表された生成AIサービスのアップデート一覧
* Amazon Bedrockのファインチューニング機能
* Knowledge base for Amazon Bedrock
* Continue

元記事を表示

CodeCommitとCodeBuildを連結してアプリケーションテストの一括処理にトライしてみた

## はじめに
「テストフェーズは無限に時間が溶ける、、、」
「設計フェーズや開発フェーズは楽しいけど、テストフェーズに入ると一気にテンション低下、、、」

エンジニアであれば誰もがこう思った経験があるのではないでしょうか?
私は歴6ヶ月の新米エンジニアですが、既に幾度とこの思いをしてきました。
なぜテストフェーズは労力も時間もかかるのでしょうか?それは数十~数百のテストケースを1つずつ試して問題があればバグ修正、修正したらデグレーションチェックのために、一度成功したケースも再びテストする、、、のループに嵌ってしまうからだと私は考えています。

もしそんなハードなテストをプログラムが自動で、しかも全ケース一括で実施してくれたら、負担が軽減されるのになぁ〜
とお考えの方は必見です。AWSを使えば、その夢が現実に変わります。

そこで今回はアプリケーションとテストケースのソースコードをリポジトリにプッシュしたら自動的にビルドとテストを行い、テストをクリアしたソースコードをストレージに格納するシステムをAWSのクラウドに構築してみようと思います。
(テストケースをコードで書くって、なんか楽し

元記事を表示

Terraformを使ったAWS環境構築を試してみる

# はじめに
Terraformを使ったAWS環境構築をやることになったため、
最低限実行環境や使用するファイル等を抑えておくために
とりあえず触ってみたという記事になります。

Terraformに関する私の知識としてIaCツールでサーバや
各社のパブリッククラウドのインフラ環境をコードで
自動構築できるツールだという認識はあるものの実際に使用したことはありません。

# ドキュメント
公式サイトのAWS向けチュートリアルをなぞっていきます。

https://www.terraform.io/

https://developer.hashicorp.com/terraform/tutorials/aws-get-started/install-cli

# 実行環境構築
## 環境
### 接続元端末
– OS:Windows 11
– SSHクライアント:TeraTerm 5.0

### Terraform実行用サーバ
– EC2インスタンス(Linux):AmazonLinux2023
AMI:ami-0dfa284c9d7b2adad
インスタンスサイズ:t2.micro

元記事を表示

Amazon Bedrockの画像生成をWebアプリに組み込む時に苦しんだこと

## はじめに
[2023 Japan AWS Jr. Champions Advent Calendar](https://qiita.com/advent-calendar/2023/jr-champions)の24日目の記事です。2023年もあと数日になりましたが、この1年間で多くのJapan AWS Jr. Championsからさまざまな知識や視点がアウトプットされました。私もこの流れに乗るために、ここ最近の学びをシェアしたいと思います。

普段はAzureの生成AIサービスであるAzure OpenAI Serviceを使ったWebアプリの開発をしています。『このWebアプリにAWSの生成AIも組み込みたい』というニーズも多くありました。そのため、AWSの生成AIサービスを統合しようとしましたが、Azure OpenAIのAPI仕様と異なる部分があり、かなり苦労をしました。

そこで、本記事ではAmazon Bedrockの画像生成をWebアプリに組み込む時に苦しんだことを共有します。今日はクリスマスイブということで、同じような問題に直面するかもしれない皆さんへの**ク

元記事を表示

今どきのBasic認証@CloudFront

🎅🦌こちらは ZYYX Advent Calendar 2023/12/24の記事です。✨🎄✨

# 概要
CloudFrontを入れている環境下でBasic認証を掛けたい場合、Lambda@Edgeでやるのはもう古いかも?CloudFront Functionでサクッと済ませるのが良さげ。というお話です。

# Lambda@EdgeでBasic認証を実現
4年くらい前に、以下の記事などを参考にCloudFrontを入れている環境下でLambda@Edgeを用いてBasic認証を掛けてみました。
https://qiita.com/takahashi-kazuki/items/688f5f736bd76682483c

(ちょっと手順が多くて大変だったけど)なんとかBasic認証できたー!ということで作業完了。

# CloudFront FunctionでBasic認証を実現
そして直近、別件でまたBasic認証を掛けることが有り、あの手順めんどくさかったな…ということを思い出し、別のやり方を調べ以下の記事などを参考に、CloudFront FunctionでBasic認証を実現し

元記事を表示

AWS IAM Identity CenterとMicrosoft Entra IDを統合させてみる

この記事は[BeeX Advent Calendar 2023](https://qiita.com/advent-calendar/2023/beex)の24日目の記事です。
※AWSアップデートのことについて書こうとしてましたが、思ったよりも検証に時間がかかりそうだったので急遽ネタ変更しました。

# はじめに
タイトル通り、AWS IAM Identity CenterとMicrosoft Entra IDを統合させてみましたので、記録として残しておきます。

手順としては以下を参考にしました。

https://learn.microsoft.com/ja-jp/entra/identity/saas-apps/aws-single-sign-on-tutorial

尚、検証用のEntra IDは以下の方法で準備しました。

https://www.softbanktech.co.jp/special/blog/cloud_blog/2022/0120/

# 作業内容
## 前提条件
ドキュメントには以下の2つが前提条件として記載されていました。

– Microsoft

元記事を表示

AWS CopilotでenvごとにDockerfileを動的に変える

この記事は **[リンクバルアドベントカレンダー2023](https://qiita.com/advent-calendar/2023/linkbal)** の24日目の記事です。

昨日は @furuyu_kasago さんの記事です!

https://qiita.com/furuyu_kasago/items/312d178adb4a9534a87c

## はじめに
[AWS Copilot](https://aws.github.io/copilot-cli/ja/)で、envごとにDockerfileの内容を変えたいことってありますよね?

例えば、フロントエンドの静的ファイルをビルドするDockerfileで、ビルド時に必須な環境変数を、環境ごとに異なる値にしたいときなど。
この場合は、Serviceの `manifest.yml` で `variables` や `secrets` を `environments` で環境ごとに設定しても、ビルドされた静的ファイルには `variables` や `secrets` の値は反映されていません。
なぜなら、これらの値は

元記事を表示

【ElastiCache】Redisサーバーのレプリケーションラグについて

## はじめに
初めまして。
オークファンの新卒3年目エンジニアの@isodaです。
今年もアドベントカレンダーの季節がやってきましたね、毎年頭を悩ませていますが。
今回はRedisサーバーのレプリケーション時のタイムラグについて書いていこうと思います。

## 導入
### なぜ今回のテーマにしたのか
私が開発を行った案件で、Redisを用いたAPIの実装を行った際に、レプリケーション時のタイムラグを考慮していなかったせいで、不具合が発生したので、自分の勉強も兼ねてこちらのテーマにしました。

### RedisとAWS ElastiCacheの概要
Redisは、高性能なキー・バリュー型のインメモリデータベースシステムであり、データの読み書きが非常に速いことで知られています。一方、AWS ElastiCacheは、クラウド環境におけるキャッシングソリューションを提供するサービスで、RedisやMemcachedなどの人気あるオープンソースインメモリデータベースをサポートしています。

### レプリケーションの重要性
ElastiCacheのRedisクラスターでは、レプリケーショ

元記事を表示

VPC Latticeを使ってみたお話し

[3-shake Advent Calendar 2023](https://qiita.com/advent-calendar/2023/3-shake) の24日目です。

AWSにて割と新しめのサービスであるVPC Latticeに触れる機会があったので、サービスのコンセプトや使う上での考え方やユースケースについて感じたことをまとめてみます。

あるあるなユースケースで使えそうだなという印象を持ったので、選択肢のストックとして蓄えておく意味でも少し役に立つかなと思います。

## サービス概要
VPC Latticeはアプリケーションレイヤーにおけるネットワーキングサービスで、いわゆるサービスメッシュを提供するようなプロダクトです。

以下のような機能を提供してくれます。
* アクセスログの収集などのロギング
* サービス間のモニタリング
* サービス間のアクセス制御(IAMベース)
* 通信における暗号化

## ユースケース
サービスメッシュにおける各サービスがVPC単位であるときに、これらを集約して疎通性を確保・アクセス制御したい時に使うことになると思います。AWSアカウン

元記事を表示

[新機能]CloudFormationのGit同期機能を稼働検証してみた

## はじめに
AWS re:Invent2023において発表された新機能・アップデートの中に、CloudFormationのGit同期機能が紹介されていました。CloudFormation大好き人間の私は、早速当該新機能の稼働検証をしてみました。本記事では、その稼働検証結果をご紹介します。

## 事前準備
### GitHubリポジトリの作成
GitHubのID自体は持っていますが、これまで自分専用のリポジトリを作成したことは一度もありませんでした。今回の稼働検証の為、初めてテスト用のリポジトリを作成しました。なお、リポジトリの属性はパブリックにする必要はなく、プライベートで全く問題ありません。今回の検証で使用したリポジトリは下記になります。

https://github.com/duelist2021jp/CloudFormation_ClientVPN

### CloudFormationテンプレートの用意
作成したGitHubリポジトリにCloudFormationテンプレートを事前にアップロードしておきます。テンプレートの中身は何でもよいので、ここ最近投稿した下記Q

元記事を表示

OTHERカテゴリの最新記事