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

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

AWSにseed値を適用する方法

# 記事概要
AWSサーバーを本番環境として利用している場合の、seeds.rbファイルの適用手順を説明します。

# 言語やフレームワーク
|| 使用技術 |
| —- | —- |
| フロントエンド | HTML
CSS |
| バックエンド | Ruby 3.2.0
Ruby on Rails 7.0.8.6 |
| データベース | MySQL |
| インフラ | AWS |
| API | – |
| その他 | – |

# 前提
– db/seeds.rbに、シード値を記述している
– AWSサーバーに上記をデプロイしている
– AWSサーバーのDBが起動している
– AWSサーバーのDBに、シード値を登録するテーブルが存在する

# 手順
1. EC2にログイン
1. パスの移動
“`
% cd /var/www/[リポジトリ名]/current
“`
1. シード値適用のコマンドを実行
“`
% rake db:seed RAILS_ENV=production
“`

# 補足

元記事を表示

【AWS CloudWatch Logs】EC2からPythonで実務想定のテストログを生成/送信

## はじめに
個人学習の目的を含めているため、不要な手順や無駄な工程があるかもしれません。
Pythonの実行環境としてEC2を利用していますが、お好きな環境で利用可能です。

## 本記事の目的
Pythonを使ってランダムなIPアドレスを含むログメッセージを生成し、
それをAWSのCloudWatch Logsに送信する。
(PythonとAWS CLIの個人学習)

↓実際に生成したログ↓
メッセージにランダムなIP`例)IP=186.139.154.218`とランダムなstatus含む。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3879433/a7ed5eaa-62e7-7cc2-5e76-4ddc2387b9e3.png)

“`text:CloudWatchから確認したログのサンプル(3件)
2024-11-16T12:17:23.252+09:00
Sample log entry at 2024-11-16T03:17:23.252405: status=INF

元記事を表示

インフラのコード化:CloudFormationを使ったECRとECSの自動化とCI/CDパイプライン設計

## はじめに
この記事では、前回手動で作成したリソースをCloudFormationを使ってコード化する方法について解説します。

:::note warn
**具体的には、ECRにDockerイメージをプッシュした後、そのイメージをECSでデプロイし、実際に動作させる流れをCloudFormationを使って実装します。**
:::

記事内容は将来の自分への備忘録として記録したものであるため、ご了承ください。

## 前回のおさらい

前回の記事では、ECRのプライベートリポジトリに以下のような構成のDockerfileと簡単なHTMLファイルを準備し、そのDockerイメージをECRにプッシュしました。

https://qiita.com/free-honda/items/fc8de2af0abfc3be9eb9

**プロジェクト構成**

“`css
├── Dockerfile
└── html/
└── index.html
“`

このDockerイメージをECRにプッシュした後、そのイメージをECSでデプロイし、実際に動作させました。

https:/

元記事を表示

AWS Ground StationとAzure Orbital Ground Stationを比較してみた①

# はじめに
宇宙に関心があって、AWSが好きな人は**AWS Ground Station**を、Azureな人は**Azure Orbital Ground Station**を一度ぐらいは調べたことがあるのではないでしょうか。今回は、実際の宇宙関連の案件が舞い込んできたことを想定して、両クラウドのサービスを要件別に独自の観点で評価してみます!
2回にわたって比較結果をまとめます。本記事では、独自の観点で設定したセキュリティ要件や性能要件、法規制・監査要件などの机上調査結果を中心に説明します!

# AWS Ground Stationとは
自身で地上局準備しなくても、衛星データの受信や制御が可能になるサービスです。
アンテナやデジタイザー、モデムなどの地上局機器も準備する必要がなく、衛星との通信時間をスケジュールするだけで衛星データの保存、処理、配信など、すべての衛星データの操作をAWS上で実行できます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3281098/27d2352

元記事を表示

ECSを使ったコンテナデプロイ:ECSを使ったサーバーレスアプリケーションのデプロイと動作確認

## はじめに
この記事では、前回 ECR に Docker イメージをプッシュした続きとして、ECS を利用してそのイメージをデプロイし、実際に動作させるまでの流れをまとめています。

https://qiita.com/free-honda/items/fc8de2af0abfc3be9eb9

ITスクールで Docker の基本を学んだことが、今回の自宅検証で非常に役立ちました。

:::note warn
**ECR(Elastic Container Registry)を学び始めたばかりの私が、将来の自分への備忘録として、学んだ知識や作業手順を記録しています。**
:::

環境構築やイメージ管理の基礎を理解していたおかげで、次のステップである ECS(Elastic Container Service)の学習がスムーズに進みました。

## ECR・ECSについての知識整理
ECR (Elastic Container Registry) は、AWS が提供する Docker イメージを保存・管理するためのコンテナレジストリサービスです。

![image.png](ht

元記事を表示

Laravel6/PHP7でのセッション管理をRedisからDynamoDBに変更する

Laravel6/PHP7/Redisで構成されたシステムの、セッションストアで使用していたRedis部分をDynamoDB(AWSのNoSQLデータベース)に置き換えたときのメモです。

LaravelもPHPもバージョン古めですがごめんなさい。

“`terminal:terminal
% php artisan -V
Laravel Framework 6.20.45

% which php
/usr/local/opt/php@7.3/bin/php
“`

Laravel で DynamoDB を使うための AWS SDK for PHP は2024年11月時点での最新版(バージョン3.326.0)を入れています。
AWS SDK for PHP のインストール方法やAWSのアクセスキーID確認方法などは今回記載しません。
“`php:php
dd(\Aws\Sdk::VERSION);

“3.326.0”
“`

## セッションの保存先をRedisからDynamoDBへ変更

### 1) .env を修正

それではまず、 “`.env`

元記事を表示

【AWS】CloudFormation IaC ジェネレーターを試してみた

# はじめに
今回は、AWSのCloudFormation IaC ジェネレーターを使って、既存のAWSリソースからテンプレートを作成する方法を試してみました。
というのも、個人の検証用AWS環境にあるリソースを簡単にコード化し、必要なときにリソースをすぐに起動・削除できないかと思った次第です。

# 検証方法の流れ
以下の手順で、CloudFormation IaC ジェネレーターを使って既存リソースからテンプレートを作成し、検証しています。
1. AWSリソースを作成する
2. CloudFormation IaC ジェネレーターでリソースをスキャンする
3. CloudFormation IaC ジェネレーターでテンプレートを作成する
4. テンプレートをCloudFormationスタックにインポートする
5. (検証後のお掃除に)リソース削除する

## 1. AWSリソースを作成する
以下画像のように、検証用にVPCとサブネット、NATゲートウェイなどをまとめて作成します。
![20241115_AWS_CloudFormation_000001.png](https://

元記事を表示

ECRを使ったコンテナ管理:DockerイメージをECRにプッシュするための基本と実践

## はじめに
AWSのサービス群の中で、Amazon Elastic Container Registry (ECR) は、Dockerイメージを安全に保存・共有するための強力なツールです。

:::note warn
**ECRを使用することで、オンプレミスやクラウドのインフラにまたがって効率的にコンテナアプリケーションをデプロイできます。**
:::

この記事では、ECRの学習を始めたばかりの私が、将来の自分への備忘録として、学んだことをまとめていきます。

## ECRについて

Amazon Elastic Container Registry (ECR) は、完全マネージド型のコンテナレジストリサービスです。

![スクリーンショット 2024-11-15 22.14.47.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3662571/13d2fc67-34d5-71ff-8aa0-a0a7c695b610.png)
引用画像:https://zenn.dev/yoshii0110/art

元記事を表示

【Terraform】importブロックの機能で遊んでみた!!

いつも記事を読んでいただきありがとうございます!
エンジニアのMasaki(@MASAKIOKUDA-eng)です👍

今回は社内LT会で個人的に面白いと感じた**importブロックの機能で遊んでみた**を記事としてアウトプットしたいと思います。

初心者の方でも理解できるように平易な表現で記事を執筆いたしますので、お気軽に読んでいただければ幸いです。

# 目次
– 読んでもらいたい読者層
– import機能とは?
– S3バケットで試してみた
– まとめ

## 読んでもらいたい読者層
次のような読者層に本記事を活用していただきたいと考えています。

– Terraformをより便利に活用したい方
– 既存リソースのコード化を柔軟に行いたい方
– Terraformの機能をキャッチアップしたいと思っている方

:::note info
本記事ではimportブロックの機能を紹介しております。そのため、Terraform初期設定に関しては割愛しておりますのでご留意いただけますと幸いです。

○ Terraform初期設定紹介サイト
https://zenn.dev/takehir

元記事を表示

【Amazon Linux 2023】プライベートサブネット内EC2にNAT Gateway無しでパッケージをインストールする方法

# はじめに
セキュリティ向上のため、EC2インスタンスをプライベートサブネットに配置することがあります。
この場合、インターネット通信が制限されるため、通常の手段では外部リソースに接続してパッケージをインストールしたり更新したりできません。

一般的には、パッケージの更新やインターネット通信が必要な際、パブリックサブネットにNAT Gatewayを配置し、EC2インスタンスからの通信を通過させる方法が考えられます。
しかし、Amazon LinuxのパッケージはS3にホストされているため、NAT Gatewayを設置しなくても、S3のゲートウェイ型VPCエンドポイントを活用すれば、インターネット接続なしでパッケージのインストール・更新が可能です。

# 実際に構築してみた
以下に、NAT Gatewayを使用せずに、プライベートサブネット内でパッケージ更新を可能にするCloudFormationテンプレート全体を示します。
このテンプレートでは以下のリソースを構築します。
 VPC
 プライベートサブネット
 プライベートサブネット用ルートテーブル
 EC2・SSM用セキュリティグ

元記事を表示

AWS IoT実践講座という書籍を執筆しました

# おしらせ
これまでこちらのブログで執筆した記事を含めて、ESP32のデバイスからどのようにAWS IoTに接続すればよいのか、センサーからのデータをどのように可視化することができるかなどをまとめて、「AWS IoT実践講座」という書籍を執筆いたしました。技術評論社から2024年11月29日に゙発売されます。デバイス側の開発環境の構築から、データの可視化、デバイスの制御をどのように行えばよいのか、さらにどのようにデータを活用して機械学習を行えばよいのかということをステップバイステップに解説している内容となっています。IoTによるデータ収取・分析・活用を手がける担当者におすすめですが、多くの方に手にとっていただければうれしいです。

![AWSIoT_cover_H1.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/80028/ceb6395b-9065-6be3-a915-81409479f75f.jpeg)

# 本の概要
以下のような内容となっております。

– 1章 AWS IoTでビジネス課題を

元記事を表示

LangServeとStreamlitでBedrockをつかってチャットアプリを作成してみた

# はじめに
LangServeという、LangChainの関数をAPI化できるツールがあると聞いたので、LangServeとStreamlitをもちいてBedrockを使ったチャットアプリを構築してみたので、その方法をまとめます。

# 環境の構築
LangServeはLangChainをREST APIとしてデプロイするためのツールです。FastAPIと呼ばれるPythonのWebフレームワーク上で動作します。Python環境があれば動作するので、ローカルPCでもEC2でも動かすことができます。ここではまず、ローカルPC上でLangServeを動かすための環境構築手順を紹介します。

## ローカル環境での環境構築
### python仮想環境の設定 (optional)
パッケージ導入の依存関係をプロジェクトごとに管理するため、venvを導入します。
“`
mkdir [project dir]
python3 -m venv .venv
source .venv/bin/activate
python -V
“`

### 必要なパッケージのインストール

“`
pip

元記事を表示

毎日AWS利用料金をSlackに通知する方法(AWS Lambda & EventBridge)

## はじめに
AWSのコスト管理はクラウド環境を運用する上で非常に重要です。特に、コストの増加をリアルタイムで把握することは予算オーバーを防ぐための鍵です。本記事では、AWS LambdaとEventBridgeを使って、毎日決まった時間にAWSの利用料金をSlackに通知する仕組みを構築する手順を詳しく解説します。

この設定により、毎日のAWSコスト情報をSlackで簡単に確認でき、予算管理が容易になります。以下の手順を進めるだけで、複雑なサーバー構築やSNSの利用なしで簡単に通知機能を設定できます。

## 前提条件
– **AWSアカウント**を持っていること。
– **SlackでIncoming Webhook URL**が作成済みであること(Slackの通知を設定するために必要です)。
– **AWS Cost Explorerが有効化**されていること(AWS Billing Management Consoleから有効化できます)。

## ステップ 1: Slack Webhookの取得
まず、通知を送信したいSlackチャンネルにIncoming Webhoo

元記事を表示

Amazon InspectorでSBOMを始めよう

# はじめに
Amazon InspectorでSBOMを出力する機能があることは存知でしょうか。今年の8月に、経産省から[ソフトウェア管理に向けたSBOM(Software Bill of Materials)の導入に関する手引ver2.0](https://www.meti.go.jp/press/2024/08/20240829001/20240829001.html)が策定されるなど、SBOMへの注目度も非常に高まっていますので、Amazon Inspector SBOM Exportについて理解を深めていきましょう。

# SBOM概要
SBOM(Software Bill of Materials)とは、「ソフトウェア部品表」のことです。ソフトウェアには様々なコンポーネント(ライブラリ等)が利用されています。特定のコンポーネントでは、他のコンポーネントと依存関係を持っており、普段利用者が認識している以上に深い階層構造となっています。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com

元記事を表示

マルチVPC環境を簡単接続:AWSでVPC Peeringを活用する方法と通信テストのベストプラクティス

## はじめに
AWS環境でのセキュリティやスケーラビリティを考えるとき、複数のVPC(Virtual Private Cloud)を接続する「VPC Peering」は非常に便利な機能です。

:::note
**この記事では、VPC Peeringの概要とメリット、設定手順、そしてテスト結果を詳しく解説します。**
:::

VPC Peeringを利用すれば、個別に分けたVPC間でのセキュアな通信を可能にし、サービス間の連携もよりスムーズに行うことができます。

## VPC Peeringとは
VPC Peeringは、AWS内の異なるVPC間でリソースをプライベートネットワークを通じて接続できる機能です。

![スクリーンショット 2024-11-15 19.57.33.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3662571/22967044-795d-3190-939e-d2ea511ddb97.png)
引用画像:https://docs.aws.amazon.com/ja_jp/

元記事を表示

巷で噂の DuckDB で遊んでみたよ!

# はじめに

GPUで日本を変えるべくオンプレ界隈で主活動中の [@\_\_\_nix___](https://twitter.com/___nix___) です。

# 背景

開発の人「AWS を利用していると S3 にログ溜めてるけどどうやって調査するの?」
運用の人「Athena を使うのさ♡」
開発の人「昨日XX:XX頃の状況を調べたいのだけど」
運用の人「ちょっと待ってね、Athena テーブル作成するところから始めるから!」
開発の人「ありがとう!」
運用の人「ゴリゴリ、ポチポチ… できたぁ!」
開発の人「どうやって調査すれば良いの?」
運用の人「あ、まずは IAMユーザーの権限が必要だから待っててね」
開発の人「は~い」
運用の人「設定したから確認してみて♡」
開発の人「えーっと、マネコン入りましたが何をすれば良いですか?」
運用の人「運用手順準備するね!」
開発の人「あ、はい…(まだ調査できないのかな… λ…)」

# 概要

運用の人「手軽に DuckDB 使って要件満たせれば楽かも!」(のびたの画像)
    「しかもCUIなので使いなれた

元記事を表示

「Rails x AWS S3」で画像アップロードする手段を全く知らないため調べる

※本内容は 2024/11/15 時点での調査となっております

# “aws-sdk-s3” v.s. “fog-aws”
* 現状この 2 強と思われる
* 登場した時期が fog-aws の方が約 2 年先にリリースされている

## [aws-sdk-s3](https://github.com/aws/aws-sdk-ruby)
:::note info
* **AWS 公式の gem**
* [aws-sdk-ruby](https://github.com/aws/aws-sdk-ruby) という gem に含まれている
* `aws-sdk-s3` 単体でもインストール可能
* fog-aws と比較してもダウンロード数で約 5 倍の差をつけている
* スター数など他数値においても圧倒している
:::
:::note warn
* ただ fog-aws と比較すると技術記事がなぜか少ない
:::

## [fog-aws](https://github.com/fog/fog-aws)
:::note info
* carrierwave では

元記事を表示

Trusted Advisorのチェックを非表示にする

# 内容

Trusted Advisorのチェック項目を非表示にしたい時があると思います。その際、AWSコンソールからだと「非表示&更新」という箇所がグレーアウトして非表示に出来ない項目がありますので、AWS CLIから表示にする方法を記載します。

![ts1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2523652/88396fd7-5c48-7756-5111-d2c8f06c605e.png)

# 手順

右の矢印の箇所をクリックして、Excelファイルをダウンロードします。ダウンロードしたファイル名を確認します。

![ts2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2523652/82106a09-222e-5e09-5dd5-ab627d605172.png)

`check/xxxxxx`の箇所を上記ファイル名に置き換えて下記コマンドを実行します。

“`shell
aws trusted

元記事を表示

【概要編】CORS ~AWS100本ノック~ 14/100

# はじめに

みなさん、CORSって聞いたことありますか?
私自身、聞いたことはあるし、S3の設定をしたこともありますがいまいちわかってないままでした… 😥
この記事では、CORSについて説明していきたいと思います。
※サンプルを交えた説明は別記事で書こうと思っています

# CORSについて

## そもそも何の略?

`Cross-Origin Resource Sharing`の略で、日本語だと`オリジン間リソース共有`になります。
別のオリジン間でリソースを共有する、って正直よくわからない…そもそもオリジンって何だろう… :thinking:

## オリジンとは?

オリジンは、以下の3つから構成されます。
– `スキーム(プロトコル)`
– `ポート番号`
– `ホスト(ドメイン)`

さぁ、突然ですが問題です。
以下の選択肢のうち、`http://example.com/dir/index.html`と同じオリジンになるのはどれでしょうか?
1. `http://example.com/dir2/new.html`
2. `http://exam

元記事を表示

Laravel6/PHP7でAWSのDynamoDB(AWS SDK for PHP v3)を使おうとしたらエラー

または「AWS SDK for PHPでPHPバージョン8.1未満はサポートしない件」。

“`
ErrorException (E USER DEPREGATED)
This installation of the SDK is using
PHP version 7.3.13, which will be deprecated on January 13th, 2025
Please upgrade your PH version to a minimum of 8.1. to continue receiving updates for the AWS SDK for PHP. To disable this warning, set suppress_php_deprecation_warning to true on the client constructor or set the environment variable
AWS_ SUPPRESS_PH DEPRECATI
ON_WARNING to true. More information can be foun

元記事を表示

OTHERカテゴリの最新記事