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

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

ゼロから始める!サーバーレスアーキテクチャの世界

# はじめに
サーバーレスアーキテクチャは、近年非常に注目を集めている技術の一つです。クラウドサービスの進化に伴い、サーバーレスは開発者にとって避けて通れないテーマとなっています。このブログでは、サーバーレスアーキテクチャの基本からその利点、具体的な活用方法までを詳しく解説します。
初心者から中級者まで幅広い読者に向けてわかりやすく説明しているので、ぜひ最後までお読みください!

# 対象読者
– サーバーレスについて知りたい方
– クラウドサービスを活用している方
– システムアーキテクトやエンジニア

# 目次
1. サーバーレスアーキテクチャとは
2. サーバーレスの利点と課題
3. サーバーレスを始めるためのステップ
4. よくあるサーバーレスのユースケース
5. 実際のサーバーレスプロジェクトの例
6. サーバーレスアーキテクチャのベストプラクティス

# 1. サーバーレスアーキテクチャとは
サーバーレスアーキテクチャは、インフラの管理をクラウドプロバイダーに任せることで、アプリケーション開発に専念できるアーキテクチャの概念です。

### サーバーレスの基本について
サー

元記事を表示

EC2 Auto Scaling 起動設定(Launch Configuration)の廃止 → 起動テンプレート(LaunchTemplate)への移行|Beanstalk EB CLI環境

# 起動設定(Launch Configuration)の廃止とは
EC2 Auto Scaling の旧設定方法が廃止され変わるというものです。具体的にはLaunch Configurationという設定ファイルからLaunch Templateという設定ファイルに変わります。

自分のところへは以下のようなタイトルでメールが届きました。
「[お知らせ] EC2 Auto Scaling 起動設定の廃止のお知らせ | [Notification] EC2 Auto Scaling Launch Configuration Deprecation Notification」

# 環境
取り急ぎテスト環境で以下のものを立ち上げました。

Route53

Cloud Front

Beanstalk
 ALB+Auto scaling
 ↓
 EC2

RDS

デプロイ方法はeb cliで直デプロイです。

# 試してみた事
まずBeanstalkがどんな動作をしているのかを確認するためにeb createで新規にアプリを作成してみました。
その後以下実施しています。

##

元記事を表示

Laravelでのファイル操作:基本から応用まで

# はじめに
こんにちは、Webエンジニアの岩田史門([@SI_Monxy](https://x.com/SI_Monxy))です!
今回はLaravelでのファイル操作について記事を書いてみました!
改善点や修正点があれば、コメントにて優しくご指導いただけると嬉しいです!

# 概要
ファイル操作はWebアプリケーションにおいて非常に重要な役割を果たします。Laravelは、ファイル操作を簡単かつ効率的に行うための豊富な機能を提供しています。本記事では、Laravelを使用してファイル操作を行うための基本から応用までを解説します。

# ファイル操作の基本
Laravelでは、Storageファサードを使用してファイル操作を簡単に行うことができます。基本的なファイル操作を見ていきましょう。

“` php
use Illuminate\Support\Facades\Storage;

// ファイルの存在チェック
if (Storage::exists(‘file.txt’)) {
echo ‘File exists.’;
}

// ファイルの取得
$contents

元記事を表示

amazon linux2023 でhomeディレクトリ配下をユーザーディレクトリ毎に容量制限をかける方法

# 概要

amazon linux2023上に作成されたユーザー毎の利用できる容量に制限を設けたい
そこで、今後迷わないよう手順を整理して記事にまとめます

# 環境

– AWS
– EC2インスタンス
– AmazonLinux2023
– ストレージ
– EBS(1台): gp3

# 方針

1. homeディレクトリ用のEBSを追加する
1. homeディレクトリ用のパーティションを切る
1. homeディレクトリを利用するユーザーに対して quotaをかける

# 手順

## homeディレクトリ用のEBSを追加する

### EBSを作成

– EBSボリュームをAWSコンソール上から作成
– 作成が完了したEBSを選択し、アクション -> ボリュームのアタッチを選択
– デバイス名の選択
– データボリュームとして利用するため、推奨とされるデバイス名 /dev/sdf ~ /dev/sdp の間で選択する
– ここでのデバイス名とlinux上で認識されるデバイス名は異なる可能性があります
– 参考

元記事を表示

AWS、Terraform、Gitops関連用語の整理

# AWS
– **アベイラビリティゾーン (AZ)**
– リージョン内で物理的に分離された1つ以上のデータセンターです。

## VPC
CIDRを指定して作成する隔離された仮想ネットワーク環境です。
– **Public Subnet**
– 外部からアクセス可能で、Internet Gatewayを通じてインターネットにアクセスできます。
– **Private Subnet**
– 外部からアクセス不可能で、NAT Gatewayを経由してインターネットにアクセスします。
– **NAT Gateway**
– Private Subnet内のリソースを外部インターネットと接続するゲートウェイで、逆方向の接続はできません。
– **Public Route Table**
– Public Subnetから来るトラフィックの経路を設定し、Internet Gatewayを通じて外部に出るように経路を設定します。
– **Subnet Association**: サブネットとRoute Tableを接続します。
– **Secu

元記事を表示

実は多かった!AWSで利用できるローコード・ノーコードサービス

# はじめに
AWSを利用したアプリケーションを開発するにあたり、専門的なプログラミングスキルが求められます。これは、多くの非エンジニアにとって(私もそうですが)障壁となっているのではないでしょうか。

基本的なAWSサービスの知識はあっても、実際の開発経験が乏しいというケースも少なくはないと考えます。こうした状況を踏まえ、AWSは開発プロセスを簡略化し、より多くの人々がアプリケーション作成に携われるよう、ノーコードおよびローコードのマネージドサービスを提供しています。

こうしたツールは、コーディングを最小限に抑えつつ、効率的な開発を可能にします。さらに、最近では生成AI技術を活用したサービスも登場し、開発の可能性をさらに広げています。本記事では、AWSが提供するマネージドなノーコード・ローコードツールを整理します。

# ノーコード・ローコードとは
まず言葉の定義を確認しておきます。

**ノーコード(No-Code)** とは、プログラミング言語を使用せずに、視覚的なインターフェースやドラッグ&ドロップなどの直感的な操作でアプリケーションを開発するアプローチです。ユーザーは、事前

元記事を表示

AWS ConfigによるS3バケットのタグ監視 – EventBridgeとSNSで通知

# はじめに

AWSにおけるリソース管理の一環として、S3バケットに「Name」タグが適切に設定されていることを確認することは、リソースの整理や識別を容易にするために重要です。本記事では、AWS Configを用いてS3バケットのタグ付けを監視し、タグが欠如している場合にAmazon EventBridgeとAmazon SNSを利用して通知を行うインフラ構成を紹介します。これにより、不要なリソースの存在の有無を即座に検知し、迅速な対応が可能になります。

以下が作成したレポジトリーです

https://github.com/sugiyama404/practice_aws_config

# 目的

本記事の目的は、AWS Configルールを新規作成してS3バケットの「Name」タグを監視し、タグが付与されていない場合にAmazon EventBridgeが検知し、SNSを通じてEメール通知を送信する仕組みを構築する方法を解説することです。

# インフラ構成

本構成では以下のAWSサービスを使用します:

![aws.png](https://qiita-image-st

元記事を表示

【AWS SageMaker Canvas】AutoMLを試してみた

# 背景
AWS SageMaker Canvasを用いる事で、機械学習モデルを自動作成して、そのままデプロイも行う事が出来るようですので、試してみました。

# 試した事(概要)
Nishikaのコンペの訓練(train)データとテスト(test)データを使って、SageMaker Canvasにて機械学習モデルを作成、デプロイして、デプロイしたモデルで推論を試してみました。

# 試した事(詳細)
### 1. 準備
##### 1.1. データを用意
こちらのサイトから、train.zipとtest.csvをダウンロードします。

https://competition.nishika.com/competitions/mansion_pra/data

zipファイルを解凍すると、trainフォルダ内に多数のcsvファイルが入っていますので、それらcsvファイルを、pandasを使って1つのcsvファイルに纏めて、train.csvとします。

“`python:hogehoge.ipynb
train_df_list = []
for csv_file in glob.

元記事を表示

ソリューションアーキテクトに求められる視点(11/13) アプリケーション開発に注力するためにマネージドサービスで効率的に保護する AWS WAF +API Gateway API +Inspector +Amazon GuardDuty

## はじめに
ソリューションアーキテクトに求められる視点を整理してみました。

今回は、**API のセキュリティを強化して、サービス拒否 (DoS) 攻撃をより効果的に防止し、脆弱性をチェックし、一般的なエクスプロイトから保護する方法**です。実務や試験で、ご参考にして頂けましたら、幸いです。

## ポイント

1. **DDoS 対策**
– **AWS WAF レートベースのルール**
包括的または URI 固有のレートベースのルールを作成して、DDoS 攻撃からウェブアプリケーションを保護できます。

https://repost.aws/ja/knowledge-center/waf-mitigate-ddos-attacks

– **AWS Shield**
ネットワーク層、トランスポート層 (レイヤー 3 と 4)、アプリケーションレイヤー (レイヤー 7) AWS のリソースに対する分散型サービス拒否 (DDoS) AWS Shield Advanced 攻撃からの保護も提供します。

https://docs.aws.amazon.com/ja_

元記事を表示

Amazon BedrockのCode Interpretationの実行環境に思いをはせる

:::note info
Agents for Amazon Bedrock の Code Interpretation は 7/14 時点で Preview 中の機能です。将来的に動作や仕様が変更される可能性があります。
:::

## はじめに
Code Interpretation は Agents for Amazon Bedrock に追加された新しい機能です。ユーザーが要求したタスクを実行するためのコードスぺニットを安全なサンドボックス環境で生成、実行し、結果を提供します。

詳細は以下の記事が参考になります。

https://qiita.com/moritalous/items/50aa76ea4c65841eed45

## 実行環境の調査
安全なサンドボックス環境とはどんな環境なんでしょう。恐らく独立したコンテナ環境等と推測されますが、 Code Interpretation さんにお願いしていろいろ情報を確認してみました。

### 基本情報
プロンプト
“`
platform モジュールで実行環境の情報を表示して
“`

Code Interpretatio

元記事を表示

CloudFrontで配信しているS3に置かれた画像を特定サイトからしか読み込めないようにする

# はじめに

S3に置かれた画像をCloudFrontで配信するにあたって、画像を読み込めるサイトに制限をかけたいと考えました。
その特定サイトは検索にはヒットせず、しかしIP制限などはかけていないものとします。
かといってAWS lambdaなどを間に挟んでゴニョゴニョするような面倒はかけたくないため、ある程度のガバさは許容するが、特に何の工夫もなしに画像を引っ張ってこれるようにはしたくない。
そんな仕様を叶える手段の一つとして[Referer](https://developer.mozilla.org/ja/docs/Web/HTTP/Headers/Referer)というヘッダーを見るというのがあります。
Refererヘッダーにはリクエストされているページへのリンク先を持った直前のウェブページのアドレスが含まれています。
つまり画像へのアクセス元ページのアドレスがわかるわけです。
ヘッダーなんてのは簡単に書き換えられてしまうため、ザルではありますが、それでも何の工夫もなしに画像を引っ張ってこれなくはなります。
ヘッダーを見てリクエストを弾いたりするのはWAFでできます。

元記事を表示

[AWS]請求権限を持ったユーザーでも請求画面が見れない?

かなり短めですが備忘録として残します

## ・起きた事
Billing権限を持つユーザーやロールであれば請求を確認できると思いますが、
権限を持ったユーザー、またadmin権限ユーザーでも請求画面がDenyになってしまう現象が発生しました…

ただこの時点で権限の問題ではなく、アカウント単位の問題だという事は切り分けできたとも言えます。
対象のアカウントには親アカウントが紐づいていた為、あまり原因を絞り切れてはいなかったです。

## ・解決方法

やはりアカウントの設定の話でした。ただ親アカウントは関係なかったです。

:::note info
「請求情報にアクセスを可能にする方法」
1\. ルートアカウントでAWSコンソールにログインする
2\. 右上のアカウント名をクリックし、アカウントページを開く
3\. 開いたページ内にある[IAM ユーザーおよびロールによる請求情報へのアクセス]の編集をクリック
4\. IAM アクセスのアクティブ化にチェックをいれ更新をクリック
:::

この状態だとどのユーザーも見られない↓

![無効化済み.png](https://qiita-i

元記事を表示

CloudFormationでAmazon Lexボットのコードフックを有効化する方法

# はじめに
Amazon Lexで対象のインテントが選択された際にLexからlabmbdaを呼ぶには、次の画像のようにコードフックを有効化しておく必要があります。
マネジメントコンソールからチェックボックスに✅を入れるだけで設定できますが、CloudFormationでLexのBotを作成する場合もここに✅を入れたいです。
本記事ではCloudFormationのテンプレートで任意のインテントのコードフックを有効化を実装します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1247619/9d717cf8-678b-550f-a4ec-4fb9f9ea9fed.png)

# ゴール
CloudFormationのテンプレートで、任意のインテントにおけるコードフックを有効化を実装する。

# 対象の方
– LexのBotの作成をCloudFormationでやってみたい方
– CloudFormationでインテントのコードフックを有効化したい方

# 結論

対象のインテ

元記事を表示

AWS Step Functionsとは

# はじめに

実はあまり触ったことがないStep Functionsを1から使いながら学んでいこうと思います!

# Step Functionsとは

分散アプリケーションの構築、プロセスの自動化、マイクロサービスのオーストレーション、データおよび機械学習の**パイプラインの作成に役立つワークフローサービス**です。
アプリケーションのワークフローを一連のイベント駆動型ステップとして使用することができます。

Step Fuctionsの組み込みコントロールを使用すると、ワークフローの各ステップの状態を調べて、アプリケーションが順番通りに実行されているか確認することができます。

# 特徴

– **Amazon States Language(ASL)** で記述される。
– **ステートマシン**として定義される
– **ステート**と呼ばれるステップで構成される
– 複数のAWSサービスの**オーケストレーション**に利用可能

# ステートマシン
**ワークフロー全体を定義する概念**であり、状態(ステート)とその間の遷移を構成することによって、複雑なプロセスを管理します。

元記事を表示

独自ドメインでCloudFront + S3 Webホスティング環境構築

こんにちは。
株式会社クラスアクト インフラストラクチャ事業部の大塚です。

以前、CloudFront + S3を使って静的なWebホスティング環境を構築しました。

https://qiita.com/ohtsuka-shota/items/8846891eea0ccf8bcec6

https://qiita.com/ohtsuka-shota/items/127ebc8e636c60b0379d

今回はRoute53とACM(AWS Certificate Manager)を使って、この環境を独自ドメイン化したいと思います。
※尚独自ドメインはお名前.comで取得しています。

https://qiita.com/ohtsuka-shota/items/af39a7c40c61ec13c5cd

# 環境イメージ
今回の構築イメージは以下となります。
ACMを使ってお名前.comから払い出したohtsuka-aws.xyzを認証する証明書を払い出します。それをRoute53に作成しているPublic Hosted Zoneに紐づけます。またCloudFront用の独自ドメイン

元記事を表示

【AWS】Cognitoでユーザー名を使用せず、メールアドレスのみ使用する

# はじめに

Cognito ではユーザー名属性を使用しない設定が可能。

> ユーザー名が不要の場合は、ユーザーにユーザー名を指定するように求める必要はありません。アプリでユーザー用の一意のユーザー名をバックグラウンドで作成できます。例えば、E メールアドレスとパスワードを登録しそれを使用してサインインするようにユーザーに求める場合は便利です。

https://docs.aws.amazon.com/ja_jp/cognito/latest/developerguide/user-pool-settings-attributes.html#user-pool-settings-usernames

# ユーザー名属性としてメールアドレスを使用する

この場合、下記のように表示上ユーザー名は sub の値となるが、ユーザーからすればこの値はわからないため、メールアドレスとパスワードでログイン可能となる。

![スクリーンショット 2024-07-13 185238.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.

元記事を表示

Cloudfrontのキャッシュを削除する方法

## 概要
– 表題の通りなのです。備忘のためと、私みたいに時間を無駄に溶かす人が一人でも少なくなれば良いと思うため記載する。

## 前提
– 記事内ではCloudfrontを用いて、S3に格納してあるindex.htmlを配信する例を用いて書いてある
– 署名付きURL配信やAPI Gatewayなどの異なるオリジンのを配信する場合は、本記事記載の内容が適切でない可能性がある

## Cloudfrontのおさらい
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3531653/30469a7d-b69d-d01e-db95-0b12c44dc4f8.png)

#### キャッシュがヒットしない場合
– 下キャプチャの通り、キャッシュがヒットしない場合は、エッジサーバーを経由してS3があるオリジンサーバーまでリクエストが送信される。
– ヒットしない例
– 初回リクエスト時
– キャッシュの条件に一致していないなど

#### キャッシュがヒットする場合
– キャ

元記事を表示

boto3を使ったathenaへのクエリ投入

# 事前準備
– ライブラリであるboto3をインストールしているか
– .awsフォルダ直下にアクセスキー情報を配置しているか
– configファイルとcredentialsファイルは以下のような記述となる

“`config
[あなたの環境]
region = “あなたのリージョン”
output = “あなたの設定する記述フォーマット”
“`

“`credentials
[あなたの環境]
aws_access_key_id=”あなたのアクセスキー”
aws_secret_access_key=”あなたのシークレットアクセスキー”
“`

# コード例
– クエリを記述し、pythonからathena上でクエリを実行する
– 基本的にはクライアントの作成、athenaクライアントの設定、実行したいクエリの記述、クエリの実行という段階に分けられる
– 実行したクエリの確認をするため、クエリの実行IDを取得している

“`boto3.py
# 各種設定
import boto3

# boto3セッションを使用しクライアントを作成
sessino = bo

元記事を表示

[Red Hat Enterprise Linux9] ユーザデータでSSHパスワード認証許可設定をしてみた

今日はEC2へのログインに関しての記事になります。

AWSを使用するメリットの一つとして、仮想マシンを簡単に複製し、異なる構成や環境でアプリケーションのテスト\/検証を迅速に行える点が挙げられます。

通常、新たなEC2にログインするには、起動時に指定したキーペアを使用する必要があります。
ただ、そのキーペアを管理したり、検証作業のたびにそのキーペアを指定したりするのは非常に **「メンドクサイ」** です。

そこで、ユーザデータでSSHパスワード認証許可設定を行い、EC起動時にデフォルトでパスワード認証できるようにしてみました。

## ユーザデータとは
ユーザデータは、EC2インスタンスの起動時に実行されるスクリプトやコマンドのセットです。
主な目的は、インスタンスの初期設定やカスタマイズ、アプリケーションの設定などを自動化することになります。
AWSマネジメントコンソールでいうと、下記のEC2起動画面にて設定することが可能。

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

元記事を表示

[AWS #18] Auto Scaling


## はじめに
こんにちは
今回もコンピューティングサービス分野である **「Auto Scaling」** について紹介したいと思います。
## Auto Scaling
「Auto Scaling」とは、**あらかじめ決めておいた条件に従って****ITリソースを増減するもの**です。AWSでは **「EC2」** **「DynamoDB」** などでAuto Scalingを使用することができます。これを使用するとEC2インスタンスがどの時点でいくつ必要であるか?を予測する必要が無くなります。

:::note info
EC2インスタンスを**必要な時に自動で増減できる**
:::

### メリット
・**高可用性であること**
システムにアクセスが集中する時間帯に合わせてインスタンス数を増やすことで可用性を高めることができます。

・**耐障害性である**
例えば3台のインスタンスを

元記事を表示

OTHERカテゴリの最新記事