- 1. terraform aws-vpc作成
- 2. 異なる組織間でのEventbridgeの連携方法
- 3. boto3でECSのExecute Commandを使ってローカルとコンテナでファイルをコピーする
- 4. AWS IAM Access Analyzerメモ
- 5. AWS STS (Security Token Service)メモ
- 6. LLM監視の定番OSS、LangfuseをAWS App Runnerにデプロイしてみよう!
- 7. 初めてのAWS CloudHSMのM of N アクセス制御 #AWS #SAP
- 8. 【AWS】NATゲートウェイについて勉強する
- 9. CloudFrontを使用してS3オリジンへのアクセスで403エラーが発生する原因を調べた
- 10. LaravelとS3の接続テストを行うコマンドを作る
- 11. [Amazon Web Services]クロスアカウントロールで複数のLambdaランタイムを一括更新
- 12. AWS IoT CoreのMQTTテストクライアントに対して、Windowsのコマンドプロンプトからメッセージをパブリッシュする
- 13. AWS AI Day ハッカソンの優勝作品が素晴らしかったので、模倣してみました
- 14. 【Ruby on Rails × TMDB API × Mecab × AWS】ユニークなあらすじから映画を発掘するポートフォリオPlotForgeを作成しました!
- 15. Ubuntu で Kubeadm により k8s 環境構築実験(4)
- 16. Pixel StreamingをAWS上にデプロイする – Turnサーバーの分離
- 17. 【初心者向け】グローバルデータベースとグローバルテーブルの違いがスッキリわかる解説 #AWS
- 18. 【AWS】AWS CLI/AWS SDK/AWS CDKが利用できるDev Containers環境を作ると便利すぎて鼻血が出る
- 19. AWS認定の新資格AI Practitionerの要点を整理してみた
- 20. 【AWS/生成AI】BedrockにIaCのセキュリティ向上提案をしてもらう
terraform aws-vpc作成
# 最初に
terraformを業務で使用することになりました。
そのため勉強したことをまとめています。# terraformでaws-vpc作成
※リソース名等を意味のないものに変更しています。main.tf
“`
# プロバイダーとプロファイルの指定
provider “aws” {
shared_credentials_files = [“~/.aws/credentials”]
region = “ap-northeast-1”
profile = “profile-name”
}
# tfstateファイル格納先の指定
# バケットは事前に作成する必要あり。
terraform {
backend “s3” {
bucket = “s3-bucket”
key = “tfstateファイル格納先指定”
encrypt = true
region = “ap-northeast-1”
profile = “profile-nam
異なる組織間でのEventbridgeの連携方法
## はじめに
これは簡単な備忘録になります。
今回の記事の内容についてはA組織のXアカウントに対してB組織のYアカウントのイベントブリッジを連携させる場合のIAMロール、イベントベースのポリシーの設定内容です。## 送信側(Yアカウント)での準備
### 1.Eventbridge用のIAMロールの作成
“`JSON
{
“EventBridgePutEventsRole”: {
“Type”: “AWS::IAM::Role”,
“Properties”: {
“RoleName”: “EventBridgePutEventsRole”,
“AssumeRolePolicyDocument”: {
“Version”: “2012-10-17”,
“Statement”: [
{
“Effect”: “Allow”,
“Principal”: {
“Service”: “events.amazonaws.
boto3でECSのExecute Commandを使ってローカルとコンテナでファイルをコピーする
# 概要
ECSのExecute Commandはものすごく便利で、コンテナ内に入ってデバッグする際には重宝します。そこで、ファイルのコピーがしたいなぁと思うこともあります。
それほど大きくないテキストファイル(例えばPEM公開鍵とか)ならコピペでもいいですが、ちょっと大きめのファイル(設定ファイルなど)とかバイナリファイルだと少し面倒です。そういったことを実現するためにboto3を使ってセッションを開いて、セッション経由でいろいろ試してみましたのでメモしておきます。ここではファイルのコピーにフォーカスしていますが、セッションWebSocketでの通信についてもまとめてありますので、boto3を使ったオートメーションにも応用できると思います。通信仕様に関する公式なドキュメントが見つけられなかったので、仕様通りの動作ではないかもしれませんが、ファイルコピーに関しては一応動作しました。
ここではFargateのコンテナに対して行いました。コンテナへの接続設定は完了している前提で、設定方法は扱いませんので、以下のページなどを参考にして下さい。
– [[DevelopersIO] 実
AWS IAM Access Analyzerメモ
AWS IAM Access Analyzerは、AWS Identity and Access Management(IAM)が提供するセキュリティツールで、AWS環境内のアクセス許可に関するリスクや潜在的な問題を可視化するためのものです。特に、外部や他のAWSアカウントからのアクセスが許可されているリソースを検出し、不適切な公開設定やアクセス許可を管理するのに役立ちます。
### AWS IAM Access Analyzerの主な機能
1. **外部アクセスの検出**: アクセスアナライザーは、S3バケット、IAMロール、KMSキー、Lambda関数、SQSキューなどが外部からアクセス可能になっているかを自動的に分析します。
2. **アクセスパスの分析**: すべてのリソースに対するポリシー(リソースベースポリシー)を調べ、予期しない公開設定や潜在的なセキュリティリスクを特定します。
3. **リアルタイムモニタリング**: リソースのアクセス許可が変更されると、自動的に新しい分析が実行されるため、常に最新のセキュリティ状況を把握できます。
4. **詳細なフィードバックと修
AWS STS (Security Token Service)メモ
AWS STS (Security Token Service) は、AWS(Amazon Web Services)が提供する一時的な権限付きの認証情報を生成するサービスです。このサービスを使用することで、長期的な認証情報を作成せずに、安全にAWSリソースへの一時的なアクセスを許可できます。
### AWS STSの主な特徴
1. **一時的な認証情報**: STSは、アクセスキーID、シークレットアクセスキー、セッショントークンなどを含む短期間のトークンを提供します。これらは最長12時間で期限切れになります。
2. **ロールベースのアクセス**: STSを使用してIAMロールを引き受けることができ、認証情報を直接共有せずにAWSリソースに安全にアクセスできます。
3. **フェデレーション**: STSはIDフェデレーションをサポートしており、外部IDプロバイダー(例: 企業のディレクトリやソーシャルメディアアカウント)からのユーザーがAWSサービスにアクセスできるようにします。
4. **クロスアカウントアクセス**: STSは複数のAWSアカウント間でのセキュアなアクセス(
LLM監視の定番OSS、LangfuseをAWS App Runnerにデプロイしてみよう!
# Langfuseとは?
生成AIアプリケーションのトレース監視やプロンプト管理など、開発・運用に便利な機能を多数備えたGUIソフトウェアです。
この分野ではLangChain社のLangSmithが有名ですが、SaaSのため本格利用するにはサブスク契約して課金する必要があります。
これに対して、Langfuseはこれと似たような機能を持つOSSとして公開されているため、自分でクラウドなどへデプロイすればライセンス費用なしにLLMアプリ監視サーバーを利用することができます。
https://langfuse.com/docs/deployment/self-host
AWSの場合、コンテナイメージさえあればアプリをマネージドにデプロイ・運用できるApp Runnerという便利サービスがあるので、これを使ってLangfuseを構築してみようというのが今回の記事です。
![スクリーンショット
初めてのAWS CloudHSMのM of N アクセス制御 #AWS #SAP
# AWS CloudHSMのM of N アクセス制御についてわかりやすく解説
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3806193/04cfad58-0fbe-2c11-bdde-26abc5a8560b.png)今回は、AWS CloudHSMの「M of Nアクセス制御」について、初心者の方にもわかりやすく説明します。
SAPで時々出題されるのですが、KMSとの違いいまいちよくわからず、、、。ということでまとめてみました!## ◆一言要約
::: note info
AWS CloudHSMの「M of Nアクセス制御」は、複数人が共同で承認しないと重要な操作ができない仕組みです。例えば、4人のうち2人以上の承認がないと設定変更できないようにすることで、セキュリティを強化します。
:::公式ドキュメントだと…
https://docs.aws.amazon.com/ja_jp/cloudhsm/latest/userguide/quorum-authent
【AWS】NATゲートウェイについて勉強する
# はじめに
本記事ではインフラ初学者がVPCを触りつつ、NATゲートウェイについて学んでいく内容になります。既存の環境として、以下のような構成があります。
![sampe.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3857754/12b46a20-0484-bd95-8ace-37267740e5e1.png)上記構成を元に、色々リソースを付け加えていく形で勉強を進めていけたらと思います。
# 目次
1. NATゲートウェイとは?
2. NATゲートウェイを構築する
3. NATゲートウェイを通じた疎通確認をする
4. まとめ
5. 参考文献
# NATゲートウェイとは?
NATゲートウェイとは、プライベートサブネット内のインスタンスがVPC外部ネットワークへ接続するために必要なサービスです。現状の構成では、プライベートサブネット内にあるEC2(DBサーバー)はインター
CloudFrontを使用してS3オリジンへのアクセスで403エラーが発生する原因を調べた
# 403とは
Webサイトの閲覧禁止を意味するコード# 考えられる原因
### オブジェクトの公開設定
S3バケット内のオブジェクトが「パブリックにアクセス可能」となっているか確認してください。オブジェクトが非公開の場合、CloudFront経由でのアクセスが制限される可能性があります。### AWS KMSによる暗号化
S3のオブジェクトがAWS Key Management Service (KMS) で暗号化されていないことを確認してください。KMSで暗号化されたオブジェクトにはCloudFrontからアクセスできません。### S3バケットポリシー
S3バケットポリシーで”s3:GetObject”のアクセス許可が設定されているか確認してください。特にCloudFrontのオリジンアクセスアイデンティティ(OAI)またはオリジンアクセスコントロール(OAC)が使用されている場合、それらが適切に許可されている必要があります。“`
{
“Version”: “2012-10-17”,
“Statement”: [
{
“Effect”
LaravelとS3の接続テストを行うコマンドを作る
## 1. 事前準備
### 1.1 S3バケットの作成
1. AWS Management Consoleにログイン
2. Amazon S3にアクセス
3. 「バケットを作成」を選択
4. リージョン(ap-northeast-1)とバケット名(任意だがグローバルで一意であるもの)を設定、他はデフォルトで一旦OK### 1.2 IAMポリシーの作成
1. 「ポリシーの作成」を選択
2. 以下のポリシーを作成(名前: S3BucketCRUDPolicy)※ポリシー名は任意“`json
{
“Version”: “2012-10-17”,
“Statement”: [
{
“Effect”: “Allow”,
“Action”: [
“s3:ListBucket”,
“s3:GetBucketLocation”,
“s3:PutObject”,
“s3:GetObje
[Amazon Web Services]クロスアカウントロールで複数のLambdaランタイムを一括更新
Python3.9のサポート期限が迫り、Lambdaランタイムを更新する必要があります。
自分の環境では複数のAWSアカウントを所有しており、マネジメントコンソールによる各Lambdaランタイムの更新は非常に手間がかかると感じました。そこで今回は、IAMRole,Lambda,StepFunctios,という要素を使い、
クロスアカウントロールで複数のLambdaランタイムを一括更新してみました。## システム構成図
今回のシステム構成図は以下になります。
基本は下記記事を参考にさせていただいており、IAM権限設定やlambdaRunTimeUpdate関数処理内容をカスタマイズし、クロスアカウントでのLambdaランタイム更新をしていきます。
https://qiita.com/hirosys-biz/items/58465b5221e3e60b576a![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3822026/f7788470-a24e-e299-c974-8fbb66
AWS IoT CoreのMQTTテストクライアントに対して、Windowsのコマンドプロンプトからメッセージをパブリッシュする
#AWS CLIを使う方法
“`
aws –region us-east-1 iot-data publish –topic “YOUR_TOPIC” –cli-binary-format raw-in-base64-out –payload “{\”key\”: \”value\”}”
“`
のChap1 step5に書いてあった。“`
aws configure
“`
と
“`
aws iot describe-endpoint –endpoint-type iot:Data-ATS
“`
でhome regionに設定してあれば–regionの記載も不要です。
“`
aws iot-data publish –topic “YOUR_TOPIC” –cli-binary-format raw-in-base64-out –payload “{\”key
AWS AI Day ハッカソンの優勝作品が素晴らしかったので、模倣してみました
10/31に、AWS主催のイベント「AWS AI Day」が開催されました。
https://aws.amazon.com/jp/events/ai-day/
:::note
すごくおしゃれなホテルで開催されました!
:::このイベントの最後に、ハッカソンの決勝戦があり、DNPさんのチームが優勝されました。
https://prtimes.jp/main/html/rd/p/000000715.000069194.html
デモ動画
Ubuntu で Kubeadm により k8s 環境構築実験(4)
[Ubuntu で Kubeadm により k8s 環境構築実験(3)](https://qiita.com/intrajp/items/b4667d4456a6ca2413aa)からの続きです。
前回は、おかしくなってしまったクラスタを修復するので終わってしまったので、今回こそは、ワーカーノード2を一から追加してみたいです。
“`bash
ubuntu@Worker-Node2:~$ sudo kubeadm join 10.0.11.67:6443 –token–discovery-token-ca-cert-hash sha256:
[preflight] Running pre-flight checks
[preflight] Reading configuration from the cluster…
[preflight] FYI: You can look at this config file with ‘kubectl -n kube-system get cm kubeadm-config -o yaml
Pixel StreamingをAWS上にデプロイする – Turnサーバーの分離
## Turnサーバーの分離
前回の記事ではEC2インスタンス上でPixelStreamingサービスを動かせるようにしました。
Docker ComposeでTurnサーバー、シグナルサーバー、UEコンテナを一つのインスタンスで起動させていましたが、本記事ではTurnサーバーを独立したEC2インスタンス上で動作させます。https://zenn.dev/mixi/articles/bcbffa798b084f
ちょうど、TurnサーバーをArmインスタンス上で運用しているという記事を見かけたため、ArmアーキテクチャのAmazon Linux 2023でCoturnをビルドして運用します。
### IAMロールの作成
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3492828/c1f66c3f-b426-ab97-cf82-c1e32d8155c9.png)以下のポリシーを付与します。Route53を使用してSSL証明書の取得を行うための設定です。
“`json: R
【初心者向け】グローバルデータベースとグローバルテーブルの違いがスッキリわかる解説 #AWS
## はじめに
AWSのソリューションアーキテクト・プロフェッショナル試験に挑むにあたり、**グローバルデータベース**と**グローバルテーブル**の違いが何度出てきても混乱してしまう、という方も多いのではないでしょうか。
私も業務でデータベースに触れる機会が少なく、試験対策で何度もこの2つの違いに立ち返る必要がありました。そこで、ここでその違いをスッキリ理解し、まとめておきたいと思います。![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3806193/04a23bdb-0cf6-ac3f-32b3-32b6dd9af6c8.png)
## 一言要約
:::: note info
– **グローバルテーブル**は**DynamoDB専用**で、複数リージョン間でリアルタイムなデータ同期を行う機能。**レイテンシー低減(ユーザに「おせぇな」と感じさせない)が目的**
– **グローバルデータベース**は【AWS】AWS CLI/AWS SDK/AWS CDKが利用できるDev Containers環境を作ると便利すぎて鼻血が出る## この記事で伝えたいこと
– SDK/CDK/CLIが利用できるDev Containersの作り方を伝えるんだぜ
– 実際にAWS CLI/AWS SDK/AWS CDKをDev Containersで使ってみるよ## はじめに
この記事ではDev Containersを使ってAWS向けに快適な開発環境を構築する方法を書いています。
なお、前提としては環境はmacOSまたはLinux上としています。
Windows版については後ほど追記予定です。(ディスクマウントの方法が若干異なる以外はすべて同じ設定で対応可能です。)## AWSで利用できるコマンドやツールをすぐに使えるようにしたい
AWSマネジメントコンソールで操作してインフラを構築することはもっとも簡単な方法ですが、昨今ではさまざまな方法でAWSを操作できます。
たとえば
– AWS CLIで設定を変更する
– AWS SDKを使ってリソースを操作する
– AWS CDKでインフラのテンプレートを展開するなどです。それぞれのツールはもちろん、自分のデバイスにインストールする必要があります。
ではどのよ
AWS認定の新資格AI Practitionerの要点を整理してみた
# はじめに
AWS認定の新資格として、AI Practitionerがリリースされました。試験ではAI/MLに関する知識が問われますが、初学者にとってはとっつきにくい分野だと思います。そこで公式の[試験ガイド](https://d1.awsstatic.com/ja_JP/training-and-certification/docs-ai-practitioner/AWS-Certified-AI-Practitioner_Exam-Guide.pdf)をもとに押さえるべきポイントを整理しました。
各用語の意味やユースケースをある程度把握できていれば、合格も難しくありません。ぜひ参考にしてみてください。
# 1. 機械学習の基礎
## 1.1 機械学習の位置づけ
**AI(人工知能)**
コンピューターや機械が人間の知能と問題解決能力をシミュレートできるようにする技術。**ML(機械学習)**
データから学習し、明示的なプログラムなしに自動的に改善される技術。システムに大量のデータを提供し、学習を繰り返すことでパターンやルールを学ぶ。**深層学習(ディープラーニング
【AWS/生成AI】BedrockにIaCのセキュリティ向上提案をしてもらう
# はじめに
**Bedrockのご紹介**Amazon Bedrockは、単一のAPIを介して様々なAI企業からの高性能な基盤モデル (FM) を選択できるフルマネージドサービスです。
セキュリティ、プライバシー、責任あるAIを備えた生成 AI アプリケーションを構築するために必要な幅広い機能を提供するサービスです。 (AWS公式から引用)![図2.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3778694/efc7437d-897b-bf91-148e-4b1a39acb6d4.jpeg)
現在も、世界中のリージョンでの機能拡充が進められており、
今回は、2024/08/09に東京リージョンでClaude 3.5 Sonnetが利用できるようになったことを記念して、Bedrockを活用したシステムを作ってみる。**なにを作成する?**
弊社ではAWSリソースを作成する際にIaC(主にTerraform)を用いて、
リソースをデプロイすることが推奨されている。そこで、