- 1. AWSを使って1からインフラ構築をしてみる
- 2. AWS パブリックサブネットの作成
- 3. Direct Connect を利用すると通信経路にリンクローカルアドレスが登場した
- 4. AWS VPCとsubnetの作成
- 5. 【AWS】TerraformでEC2を構築する際のあれこれ
- 6. 【AWS】複数Availability Zoneに跨るInternal ALBが名前解決で返してくるIPアドレスはどのIPアドレスか?
- 7. じゃあBedrockのナレッジベースのPDFパーサーはどう読めているのか?
- 8. Terraform Cloud上でIAM RoleからIAM RoleにSwitch Roleしてみた
- 9. [過去記事]Amazon AppFlow マッピングにCSVを使ってみる
- 10. [過去記事]lambdaからAPI Keyが設定されたAPIを実行する
- 11. [過去記事]AWS lambda Node.jsの追加モジュールを使って他のAPIを実行してみる(requestモジュール使用 現在は非推奨)
- 12. [過去記事]AWS lambda Node.jsの追加モジュールを使用せず他のAPIを実行してみる
- 13. PowerBIとRedshiftを接続(インターネット経由)
- 14. 問い合わせフォームの内容をシステム入れ替えをしないでAIでいい感じにしてAsanaに投入する
- 15. [過去記事]AWS S3のバケットのCSVが更新・登録されたことをきっかけにLambda関数を実行してみよう!
- 16. AWS CDK(とマネジメントコンソール)でAmazon Cognitoの招待メッセージをカスタマイズする
- 17. AWS CDK Workshop(TypeScript)をNode.js 20.xでやりたい場合
- 18. 【Rails × AmazonS3】 RailsアプリでAmazonS3を利用し、本番環境に画像をアップロードする
- 19. 世界最速!?Amazon Bedrock の Custom model import の機能検証
- 20. 【AWS×Webアプリ】CloudFrontのキャッシュ削除(SAM)
AWSを使って1からインフラ構築をしてみる
# はじめに
本記事は、AWS、インフラ構築の初学者向けの記事です。
私自身も、エンジニア歴 5 年目にして、1 からインフラ構築をした経験がなく、Udemy のハンズオン講座で学習しながら得た知見を、本記事にまとめようと思います。## そもそもインフラ構築とは?
アプリケーションが稼働できる状態を作ること。
アプリケーションが稼働するには?
アプリケーションが動く(環境)サーバーを構築して、そのアプリケーションに接続できるように、ネットワークを構成する必要がある。## インフラ構築ができると何が嬉しい?
### 自分でサービスを作れるようになる
プログラムを書いて、良いアプリケーションを開発し、それを誰かに提供したい!となったとき、自分でできるようになる。
### 自分で開発時のテスト環境を作れるようになる
何かしら検証作業が必要な場合、本番環境で実施するわけにもいかないので、テスト環境が必要な状況ある。
そんなときに、必要な環境を自分で用意することができるようになる。### 障害が起きても、どこに問題があるのか原因の切り分けができるようになる
「サー
AWS パブリックサブネットの作成
## サブネット
サブネットは、VPC の IP アドレスの範囲です。特定のサブネットには、EC2 インスタンスなどの AWS リソースを作成できます。
### パブリックサブネット
サブネットには、インターネットゲートウェイへの直接ルートがあります。パブリックサブネット内のリソースは、パブリックインターネットにアクセスできます。
### パブリックサブネットの作成
VPCダッシュボードのサブネットメニューをクリック
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3184769/05ab6ccd-f5ef-ff64-142a-de217c32b9eb.png)
サブネットを作成ボタンを押下
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3184769/04d7bda2-2e49-1a8e-dd50-bf189314e25a.png)
サブネットを作成
VPC ID:my-vpc-01
サブ
Direct Connect を利用すると通信経路にリンクローカルアドレスが登場した
## はじめに
私はクラウドCoEをやっているのですが、先日「Direct Connectを利用した通信経路でtracerouteをかけた結果、リンクローカルアドレスが登場した。これは不適切なルーティング設定になっているのか?」という質問を受けました。
この質問への回答を今回記事にまとめます。## リンクローカルアドレスとは
リンクローカルアドレスは、同一のセグメント内のみで有効なアドレスです。
DHCPサーバ(プライベートIPアドレスを割り当てる役目を持ったサーバ)が存在しないネットワーク内で使われる、特別なIPアドレスです。
DHCPサーバがなくても個々のコンピュータが自分自身にIPアドレスを割り振ることから、「自己割り当てIPアドレス(AutoIP)」とも呼ばれます。
IPv4アドレスでは、169.254.0.0/16 がリンクローカルアドレスとして利用されます。https://livra.geolocation.co.jp/iplearning/220/#:~:text=%E3%83%AA%E3%83%B3%E3%82%AF%E3%83%AD%E3%83%BC%E
AWS VPCとsubnetの作成
## AWS VPC
Amazon Virtual Private Cloud (Amazon VPC) とは、リソースの配置、接続性、セキュリティなど、仮想ネットワーク環境をフルで制御できるサービスです。AWS サービスコンソールで VPC を設定するところから始めます。次に、Amazon Elastic Compute Cloud (EC2) や Amazon Relational Database Service (RDS) インスタンスなどのリソースを追加します。
## AWS VPCの作成
東京リージョンを選択
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3184769/ec35f03e-c829-20d6-a94f-014c1053197d.png)
管理コンソールのサービスからVPCを選択
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3184769/1648ad66-eb
【AWS】TerraformでEC2を構築する際のあれこれ
[前回の記事](https://qiita.com/hidekko/items/19871f8fd14304c13e84)で記載している、副産物の記事になります。
# 構成図
まずは構成図でおさらいです。
![構成図.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/643392/02cc9622-9957-5ca7-bb12-6ec2402e68fa.png)
今回の副産物はWeb Serverの構成関連です。# 1.EC2のローカルIPアドレスをDHCPにする。
今までTerraformでEC2を構築する際、ローカルIPアドレスを固定IPアドレスで構築していましたが、今回ALBがDHCPなのでTerraform実行時に何度かIPアドレスが重複して失敗しました。
EC2のIPアドレスをDHCPで構成する場合どうしたら良いか知らなかったので調べてみたのですが、一発で出てこなかったので個人メモに近いですが記載します。具体的なtfファイル上の記載は以下の通りです。
“`ec2.tf
# Front
【AWS】複数Availability Zoneに跨るInternal ALBが名前解決で返してくるIPアドレスはどのIPアドレスか?
転職して初めての記事です。
転職後の会社の先輩から表題の質問を貰い、即答できなかったので検証してみました。
たまたま前職でALBの環境の構築をTerraformで行ったので、今回もTerraformで環境構築を行いました。# 予想される結論
この先輩の方とも社内のチャットでやり取りした時にもお話したのですが、**複数のAvailability Zoneに跨ったALBは名前解決ではラウンドロビンでそれぞれのAvailability ZoneでALBに割り振られたIPアドレスを返してくるんじゃないかな?**というのが私の予想です。
ではこの予想通りになるのか、違う動作をするのか検証をしましょう。# 構成図
では早速構成図から。
論点がずれないように構成図で認識を合わせましょう。
![構成図.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/643392/44a727ba-b60e-de4c-3dbb-fcf90060acb4.png)VPCを2つ作っ
じゃあBedrockのナレッジベースのPDFパーサーはどう読めているのか?
何が「じゃあ」なんだって話ですが、Pythonの各種PDFパーサーは雑に使用すると以下のようにうまく読める場所と読めない場所があったので、じゃあナレッジベースではどう読めているのか?を確認します。
https://qiita.com/cyberBOSE/items/142cdf91e0ee20b3114f
# ナレッジベース(pgvector)の準備
SQLで確認したかったので以下のすばらしい記事を丸ごと参考にしました。
クエリエディタで接続可能だと知らなかった…https://qiita.com/hayao_k/items/45e59c1c2a183c27b20d
pgvectorをナレッジベースで使う為の日本語ドキュメントなり記事なりハンズオンなりって他に見た記憶が無いのですが他に現存しているものあるんですかね。
# 使用するPDF
同じ個所で確認をしたいのでBedrockユーザーガイドの日本語版
Terraform Cloud上でIAM RoleからIAM RoleにSwitch Roleしてみた
# はじめに
AWSでは、IAM Roleを使用することでユーザーにアクセス権限を直接紐付けずに操作を許可することができます。
その際は、ユーザーが対象のIAM RoleにSwitch Role操作を行うことで、IAM Roleの権限を利用します。(以下のイメージ)![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/440403/2009bcc6-f5ea-b1e3-9771-36257ca8b6b5.png)
またユースケースは限られてきますが、一度IAM RoleにSwitch Roleした後、もう一度別のIAM RoleにSwitch Roleする方法も可能です。([参考URL](https://dev.classmethod.jp/articles/role-chaining/))
上記参考URLでも説明されてますが、以下のようなイメージです。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.
[過去記事]Amazon AppFlow マッピングにCSVを使ってみる
## 情報
内容は下記と全く一緒でマッピング部分だけCSVで行ってみます!
https://qiita.com/miriwo/items/ba3830030b5fbba6cdad
## 準備
転送転送もとのCSVも引用記事と同じものを使います。
“`test.csv
id,first_name,last_name,password,age,
1,Tarou,Yamada,abcd1234,20,
2,Hanako,Yamada,abcd1234,22,
3,Tarou,Satou,abcd1234,24,
4,Hanako,Satou,abcd1234,16,
“`下記の内容に沿ってフローを作成し、「マッピング方法」の選択部分の直前まで設定を進めます。
https://qiita.com/miriwo/items/ba3830030b5fbba6cdad
マッピング方法は下記の様に選択します。
– マッピング方法:マッピングされたフィールドを含む.csvファイルをアップロードする
![Create_flow_-_データフィールドをマッピング-1024x
[過去記事]lambdaからAPI Keyが設定されたAPIを実行する
## 前提
今回のlambdaはNode.js 18.xを使います。また関数の作成など細かい方法は下記で記載しているので省略します!
要リンク用意(モジュール無し)
要リンク用意(モジュールあり)
また、API Keyが設定されているAPIは別のlambda関数を用意します。今回は下記の記事で作成したreturnHello関数をそのまま使ってみます!
https://qiita.com/miriwo/items/aee5fbe285a1338daac9
## 今回作るもの
![private__Online_Whiteboard_for_Visual_Collaboration-3-1024×528.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/306417/e24a77c2-cb3e-13e8-947c-f239f412e315.png)
lambda関数2個とAPI Key付きのAPIをAPI Gateway作成します。
### lambda関数1つ目(returnHello関数)
[過去記事]AWS lambda Node.jsの追加モジュールを使って他のAPIを実行してみる(requestモジュール使用 現在は非推奨)
## 今回つくるもの
![private__Online_Whiteboard_for_Visual_Collaboration-2-1024×388.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/306417/c1ae4144-f89e-c20a-4b13-279dddc59d70.png)
今回は前回の内容と似ていて、lambdaを用いてQiitaのユーザー情報APIを実行しレスポンスをconsole.logで出力してみようと思います!ただし!今回APIリクエストを実行する際は既存のhttpsモジュールではなく、requestモジュールを使って見ようと思います!
## 前提
今回の作業は前回と同様にAWSアカウントを持っていることを前提とします。さらにlambda関数作成権限とIAMロール作成権限が必要です。
今回requestモジュールのインストールはローカルのPCを用いて作成します。ローカルPCでnpmコマンドが実行できるようにしておいてください。また、ローカルのNode.jsのバージ
[過去記事]AWS lambda Node.jsの追加モジュールを使用せず他のAPIを実行してみる
## 今回作るもの
![private__Online_Whiteboard_for_Visual_Collaboration-1-1024×429.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/306417/e93efa46-4472-86c2-880a-e3414044a6c9.png)
今回はlambdaを用いてQiitaのユーザー情報APIを実行しレスポンスをconsole.logで出力してみようと思います!
## 前提
今回の作業にはAWSのアカウントを持っていることを前提とします。また、lambda関数作成権限とIAMロール作成権限が必要です。
## 準備
### lambda
まずはブラウザからAWSにログインしコンソールを開き、lambdaのホームまで移動しましょう。
その後、左サイドバーの「関数」をクリックし、開いたページで「関数の作成」をクリックしましょう。![関数_-_Lambda-1024×365.png](https://qiita-image-store.s
PowerBIとRedshiftを接続(インターネット経由)
# 1.Redshiftでの設定
## 1.1 ユーザー・グループの設定
まずは、PowerBIでアクセスする際のユーザー等を作成していきます。
以下のコードはスーパーユーザーでしかできないので注意が必要です。
### 全てのテーブルにアクセスができるユーザー・グループ
“`sql
CREATE GROUP powerbi_group_all;GRANT SELECT ON ALL TABLE TO GROUP powerbi_group_all;
CREATE USER powerbi_all PASSWORD XXX in group powerbi_group_all
“`### トランザクションテーブルにアクセスができるユーザー・グループ
“`sql
CREATE GROUP powerbi_group_transactions;GRANT SELECT ON TABLE transactions TO GROUP powerbi_group_transactions;
CREATE USER powerbi_transactions PASS
問い合わせフォームの内容をシステム入れ替えをしないでAIでいい感じにしてAsanaに投入する
## なにをしたいか
– 日々来る問い合わせフォームで効率よく処理をしたい
– タスク管理ツールで管理をしたい### できたもの
特定のメールアドレスに文章を投げるといい感じでAIがサマライズしてAsanaにタスクを作ってくれるサービス
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/4221/d5184ec8-5087-7ffd-365b-fd7d578f4b84.png)### Asanaに作られたタスク例
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/4221/2dd46da6-3022-c802-06b4-22ecac79ff1c.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/4221/d6543851-2b7f-f477-8262-4c0f72ad861f.png)
[過去記事]AWS S3のバケットのCSVが更新・登録されたことをきっかけにLambda関数を実行してみよう!
## 前提
本記事の内容は以前に記載した下記記事実施直後の状態から実施してゆきます。
https://qiita.com/miriwo/items/7470659f070504e0fafe
## 今回つくるもの
S3の指定したバケットの指定したフォルダにCSVファイルがアップロード、もしくは既存のCSVが更新された時に下記で作成した「Hello for lambda!」を返すLambda関数を実行するようにしてみます!
https://qiita.com/miriwo/items/7470659f070504e0fafe
S3のCSVを登録・更新する作業は手作業で実施しようと思います。
![Cursor_と_private__Online_Whiteboard_for_Visual_Collaboration-1024×402.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/306417/d4b777c0-b8e4-fdb2-420f-13e6a92018ae.png)
## 準備
##
AWS CDK(とマネジメントコンソール)でAmazon Cognitoの招待メッセージをカスタマイズする
こんにちは!
ポーラ・オルビスホールディングスのITプロダクト開発チームでスクラムマスターをしている川田です。今回は、最近チームで実施したAmazon Cognitoの招待メッセージをカスタマイズする方法について、アウトプットも兼ねてご紹介しようと思います!:muscle:
# 背景
以前の記事で、私たちの開発チームが利用している技術や開発環境についてご紹介しました。https://qiita.com/t_kawada_pohd/items/ae5dcae996d06b02752b
その際には触れていませんでしたが、私たちが開発したシステムのユーザー認証にはAmazon Cognitoを利用しています。オルビスではMicrosoft Entra ID (Azure AD)によってアカウント管理を行っているので、Cognitoの外部IdPとしてEntra IDを指定することでSSOを行う構成となっています。
この対応によりオルビスで業務されているほとんどの方はSSOができる状態なのですが、一部の方は勤務体系等の都合によりEntra IDでの管理対象外となっている方がいます。そ
AWS CDK Workshop(TypeScript)をNode.js 20.xでやりたい場合
## 背景
・AWS CDK Workshop(TypeScriptワークショップ)に取り組んでいる中で、Lambdaのランタイム(Node.js)のバージョンによる差異がありコードの修正が必要だったのでその備忘です
・ワークショップはNode.js 14.xになっていますが、現在Lambdaでは14.xはサポートされていないため20.xにしたところエラーが発生し上手くいきませんでしたhttps://cdkworkshop.com/ja/
## 対象箇所
Node.js 20.xでやりたい場合にコードを修正する必要があった作業箇所ですhttps://cdkworkshop.com/ja/20-typescript/40-hit-counter/200-handler.html
“`lambda/hitcounter.js
const { DynamoDB, Lambda } = require(‘aws-sdk’);exports.handler = async function(event) {
console.log(“request:”, JSON.str
【Rails × AmazonS3】 RailsアプリでAmazonS3を利用し、本番環境に画像をアップロードする
# はじめに
はじめまして、ずっと大地と申します。
2023年11月より、オンラインスクールのRUNTEQにて、未経験からのWebエンジニア転職を目指して学習をしています。
初学者のうえ、記事を書くのは初めてです。
記述漏れや作成ファイルの記載忘れなど、不備があるかもしれないので、間違いなどあれば教えて頂けたらと幸いです。
また、人によって環境の違いがあるかと思うので、あくまでも私自身の環境で、記事投稿時の記録ということをお許しください。# 概要
アプリ開発にて実装した、`Amazon S3`での本番環境の画像アップロードについて、設定が多く難しいと感じたので、記事にしたいと思います。
`CarrierWave`を導入済み、`AWS`に`rootユーザー`、`IAMユーザー`としてログインできる状態を前提とします。https://aws.amazon.com/jp/register-flow/
# 環境
Ruby 3.2.3
Rails 7.1.3.2
CarrierWave
Amazon S3
Render.com# 手順
### rootユーザーとしてサインイン
ま
世界最速!?Amazon Bedrock の Custom model import の機能検証
## はじめに
株式会社 NTT データ デザイン&テクノロジーコンサルティング事業本部の [@ren8k](https://qiita.com/ren8k) です。2024/04/23 に,Amazon Bedrock で [Custom model import](https://docs.aws.amazon.com/bedrock/latest/userguide/model-customization-import-model.html) の機能がリリースされました。しかし,本機能を利用するためには,Bedrock の Service Quotas にて複数項目の上限緩和申請が必要な上,通常の申請フローでは利用が困難のようです.(X を見ると,申請承認に時間がかかる or 用途によっては reject される模様です.)
そこで,AWS Partner Solutions Architect(PSA)の方と連携し,Service Quotas の上限緩和申請を優先的に承認していただくことで,本機能を利用することができました.
本記事では,Custom model im
【AWS×Webアプリ】CloudFrontのキャッシュ削除(SAM)
## 目的
・AWS上の静的Webサイトホスティングを有効にしたS3をCloudFrontで公開。
・S3のコンテンツを更新した際に、CloudFrontのキャッシュ削除を行うLambdaを実装。## 前提条件
・SAMを使用してAWS上にリソースを作成する。
・Pythonを使用してLambdaを実装する。## 完成イメージ
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3637963/4052117a-cea8-9fa3-e301-6712765433d2.png)## SAMテンプレート
“`template.yaml
AWSTemplateFormatVersion: ‘2010-09-09’
Transform: AWS::Serverless-2016-10-31Resources:
WebBucket:
Type: AWS::S3::Bucket
Properties:
BucketName: !Sub ${AWS::Sta