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

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

UbuntuでAWS EC2インスタンスにSSHでログインする方法

## 前提条件

– AWSアカウントがあること
– 起動済みのEC2インスタンスがあること
– SSHキー(.pemファイル)をダウンロードしていること
– Ubuntuの端末を使っていること

## 1. EC2インスタンスの準備

### 1.1 インスタンスの起動

1. AWS Management Consoleにログインする。
2. `EC2`サービスを選ぶ。
3. `インスタンス`をクリックして、新しいインスタンスを起動するか、既存のインスタンスを使う。

### 1.2 セキュリティグループの設定

1. インスタンスに関連付けられているセキュリティグループを確認する。
2. `インバウンドルール`を編集して、以下のルールを追加する。
– タイプ: `SSH`
– プロトコル: `TCP`
– ポート範囲: `22`
– ソース: `0.0.0.0/0`(任意のIPからのアクセスを許可)

## 2. SSHクライアントの準備

### 2.1 .pemファイルのパーミッションを設定

ターミナルを開いて、`.pem`ファイルのパーミッションを

元記事を表示

【最新機能】Cloud Watch: 生成 AI を活用した自然言語クエリ生成

# はじめに

CloudWatchをよく使う方必見!
今回は、2024年6月10日に公開されたCloudWatchのクエリ文を自動で作成する方法をご紹介します。

# CloudWatchとは?

まず、CloudWatchについて簡単におさらいしましょう。Amazon CloudWatchは、AWSリソースやアプリケーションを監視するためのサービスです。メトリクスの収集、ログの監視、アラームの設定など、多岐にわたる機能を提供します。

# CloudWatch Logs Insights

CloudWatch Logs内のログデータをクエリ言語を用いて効率的に分析するための強力なツールです。大規模なログデータを迅速に検索・分析し、運用問題の特定やトラブルシューティングを支援します。

# 最新機能 クエリの自動生成の使い方

全てのリージョンで使用可能なのでぜひ使ってみましょう!

1. サービスメニューから「Cloud Watch」を選択します。
2. CloudWatchコンソールの左側のメニューから「ログのインサイト」を選択します。
3. 新たに追加された「Qu

元記事を表示

CakePHP4でDynamoDBを参照する

## はじめに

DynamoDBを利用する際に、CakePHPとDynamoDBの接続に関する記事はバージョンが古かったり、作成するファイルが多かったりして、DB接続に手こずったため備忘録として今回記事にしました。

## この記事でやること
CakePHP4を用いてDynamoDBに接続し、テーブル情報を取得する。

## 前提
– EC2を利用しています
– OSイメージ:Amazon Linux 2 Kernel 5.10
– CakePHPのバージョン: 4.2.12
– nginx: nginx/1.22.0
– PHPのバージョン: PHP 7.4.33 (cli)
– PHP-FPM: PHP 7.4.33 (fpm-fcgi)
– AWS SDK for PHPのバージョン: 3.257

## AWS側での準備

### DynamoDBでテーブル作成

AWSコンソールのホーム>DynamoDB>テーブル>テーブルの作成から適当なテーブルを作成します。

### AWS SDKのインストール

AWSを操作するときはWeb上からコンソールを使って操作してい

元記事を表示

[AWS] Security Group と WAF に IP アドレスを登録するためのスクリプト

# はじめに

↓ の機能拡張版で、WAF にも登録するようにスクリプトを修正しました。

https://github.com/miyajuggler/aws-cli-practice/blob/main/register-ips-in-sg-and-waf.sh

# 仕様

指定された IP アドレスのリストを AWS の SG に登録するためのスクリプトです。IP アドレスにCIDR 表記(”/” が含まれているかどうか)によって条件分岐し、それに応じて適切に SG に登録します。(デフォルトで /32 を追加します)

# コマンド

上記仕様に加えて以下のオプションがあります。

– SG を二つ用意
– SG_ID1 にはポート 3389 で登録、SG_ID2 にはポート 443 で登録
– DESCRIPTION も含め登録する

“`sh
#!/bin/bash
set -euo pipefail

# 変数格納
IP_ARRAY=(“5.5.5.5/32” “6.6.6.6/32” “7.7.7.7” “8.8.8.8/32” “9.9.9.9”)
DESCR

元記事を表示

AWS lambdaの拡張機能を使ってパラメータストアを取得するときに注意すること

## はじめに

クラウドコンピューティングが主流となる現代において、セキュアな設定情報や機密データの管理はますます重要になっています。特に、AWS(Amazon Web Services)を利用する企業や個人はその安全性と効率性を最大限に活用するためのツールやサービスを常に模索しています。この記事では、そんなAWSの中でも特に注目されている「AWS Parameters and Secrets Lambda Extension」を使ったときにハマったポイントがあったので紹介します。

## AWS Parameters and Secrets Lambda Extensionってなんぞ

AWS Parameters and Secrets Lambda Extensionは、AWS Lambda関数で利用する設定情報や機密データの取得と管理を簡素化するための拡張機能です。AWS Lambdaはサーバーレスコンピューティングを実現するためのサービスで、コードの実行に特化しており、従来のサーバー管理の煩わしさから解放されます。しかし、Lambda関数で利用する設定情報やシークレットの管

元記事を表示

AWS研修で学んだこと

前回、『未経験でエンジニアとして入社し、1ヶ月経ったので振り返る』にて、Javaの研修で学んだことを紹介させていただきました。

https://qiita.com/Saku_K/items/241ff741fc76c2aba273

今回は、AWS研修で学んだことを紹介していきたいと思います。
# はじめに
## AWSとは?
Amazonが提供するクラウドサービスのことをいいます。
正式名称は「**Amazon Web Services**」です。

:::note warn
”アマゾン ウェブ サービス” という読み方から、
**Service** と間違えやすいですが、英語表記は **Service******s**** です!
:::
## クラウドとは?
新しいITリソース利用のカタチであり、
**「必要な時に、必要なだけ、低価格でITリソースを提供」**
できることがAWSの大きな特徴となっています。

# AWS研修で学んだこと
## 1.AWS New Grads Training
AWS研修初日は、「AWS New

元記事を表示

AWS DynamoDB: シングルテーブル設計 vs マルチテーブル設計

# はじめに
サーバーレス大好きなエンジニアです!
AWS SUMMIT 2024で学んだことを共有したいと思います。
DynamoDBを触ったことがある方なら、**Single Table Design**という言葉を聞いたことがあるのではないでしょうか?
今回はその歴史やMulti Table Designとの違いについて深掘りしていきたいと思います。

https://aws.amazon.com/jp/summits/japan/

# Single Table Designでなければいけないのか

結論から言うと**必ずしも1つのテーブルにまとめる必要がありません。**

– ケースに応じて有効なパターンとそうではないパターンがある
– テーブルを分割した方がメリットがある場合は積極的にテーブル分割をするべき

https://aws.amazon.com/jp/blogs/news/single-table-vs-multi-table-design-in-amazon-dynamodb/

# 開発者マニュアル

初期段階でシングルテーブルとマルチテーブルの**2つのパタ

元記事を表示

AutoScaling(ALB+EC2)+EFS環境を構築してみる

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

以前作成したEC2+EFS環境を少し発展させていきたいと思います。具体的にはAutoScalingを試してみます。
AutoScalingされて自動デプロイされたEC2からも自動でEFSを使用できるかを確認してみます。また、ALBもついでにデプロイしてロードバランシング環境も構築します。
前回の記事は以下となります。

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

# 環境イメージ
今回は以下の環境のような環境を作っていきます。
AutoScalingグループを使用して、EFSに自動でマウントするEC2を自動でデプロイしていきます。また、併せてALBもデプロイします。
ALB経由でWebブラウジングをすると、EFS上にあるindex.htmlがされることを確認していきます。
さらに、EC2のCPU使用率を意図的に高めることで自動でEC2がスケールアウトされることも確認します。
![20240620から-ページ23.drawio.png]

元記事を表示

TerraformのバックエンドをTerraform Cloudに指定する方法

# はじめに

Terraformを使用してインフラを管理する際、状態ファイル(state file)の管理が重要です。
Terraform Cloudをバックエンドに設定することで、状態ファイルを安全に保存し、複数のチームメンバーと共有することができます。
ここでは、terraformのbackendをterraform cloudにする設定方法について説明します。

## 前提条件

1. Terraform Cloudのアカウントが作成済みであること
2. Terraform CLIがインストールされていること

## 手順

### 1. Terraform CloudのAPIトークンを取得

Terraform Cloudのアカウントにログインし、APIトークンを取得します。トークンは、Terraform CLIとTerraform Cloudを接続するために必要です。

### 2. Terraform Cloudのワークスペースを作成

Terraform Cloud上で新しいワークスペースを作成します。ワークスペースは、Terraformの状態ファイルや

元記事を表示

話題の本「AmazonBedrock生成AIアプリ開発入門」のためにローカル環境開発してみた

どうも、アスカです。今回は話題の本、「AmazonBedrock生成AIアプリ開発入門」のハンズオンを進めて行くにあたり、ローカルの開発環境を整えていきます。Cloud9を使えば楽なんですが、環境から自分で作らないとやった気にならないんですよね…

# 前提
– ユーザはIAM Identity Centerのワークフォースユーザを利用
– Python環境はすでにある環境の確認にとどめる

自分がローカルで使ってきた環境をそのまま利用していくイメージですね。

# 必要なもの
– Git…サンプルコードのクローンのため
– Python… サンプルコード実行のため(SDKも必要)
– AWS CLI…ローカルでAWSの権限をセットアップするため

ひとつひとつ、順番に確認していきます。

# Git
Gitのコマンドを使えるようになっているか、確認しましょう。
正常にインストール出来ていれば、以下のようにバージョン情報が表示されます。
“`
C:\…\YourPJ> git –version
git version 2.43.0.windows.1
“`

元記事を表示

CloudFrontとS3で静的ファイルの描写速度を劇的に改善した話

## あいさつ
こんにちは、皆さん!今回は、AWSのCloudFrontとS3を使って静的ファイルの描写速度を劇的に改善した経験について共有したいと思います。一般的な内容かもしれませんがはじめて使用して感動しました!!

## 背景

私のプロジェクトでは、静的ファイルの描写に約5秒もかかっていました。ユーザー体験を向上させるために、この描写速度を1秒以内に短縮することを目指しました。

## 手順

### 1. S3バケットの作成

まず、Amazon S3に新しいバケットを作成し、静的ファイルをアップロードしました。

### 2. CloudFrontディストリビューションの設定

次に、CloudFrontディストリビューションを作成し、S3バケットをオリジンとして設定しました。

1. AWSマネジメントコンソールにログイン
2. CloudFrontのサービスページに移動
3. 「Create Distribution」をクリック
4. オリジンに先ほど作成したS3バケットを指定
5. デフォルトのキャッシュ動作を設定

### 3. キャッシュポリシーの最適化

Clo

元記事を表示

AWS Organizationsについて

## AWS Organizationsの概要
AWS Organizationsは、AWSクラウド環境を組織全体で統一的に管理するためのサービスです。組織は複数のAWSアカウントを含むグループであり、これらのアカウントを集中管理するためのツールとポリシーを提供します。これにより、企業はクラウドリソースの管理を簡素化し、セキュリティとコンプライアンスの統制を強化することができます。

### AWS Organizationsとは
AWS Organizationsは、組織内で新しいAWSアカウントを作成したり、既存のアカウントを組織に追加したりすることができるサービスです。また、アカウントのステータスや設定を監視し、必要な変更を適用することも可能です。AWS Organizationsは、セキュリティポリシーの一貫性を保ちつつ、コスト管理とリソースの分離を可能にすることで、組織全体の効率性を向上させます。

### AWS Organizationsには以下のような主要機能があります:

**アカウントの集中管理**: 一元的に複数のAWSアカウントを管理することで、運用の効率化とリ

元記事を表示

Dockerが全然わからない人に向けて私こと山崎 令恩なりのこれ1本で0から学べる超丁寧なDocker入門

# はじめに
私のエンジニアとしての初仕事はDockerでした。辛かったのをいまでも思い出します

みなさんこんにちは、山崎令恩です。

みなさんはエンジニア始めたての時にどんなことで苦労したでしょうか?

GitHub
Docker
Kubernetes
AWS
など色々あるかと思いましたが、「環境構築」というのは多くの人がつまづく箇所かと思います。
プログラミングの勉強をするにはそもそもの開発環境がないとできないことも多いです。

またAWSなどのクラウドを利用してデプロイをするときにも再度登場して苦しめられます。

今回はそんな初心者には考え方や使いどころがわかりづらいDockerについて例え話を活用しながら説明していきたいと思います。

Dockerが難しいと思うのは、「概念がよくわからない」「説明を読んでも使いどころのイメージがつかない」というのがあるかと思います。
この記事では「例え話」「ハンズオン」を駆使しながら解説しております。

エンジニアをやる上でDockerの技術は必須だと考えます。ぜひとも使えるようになっていただいてご自身の勉強に活用いただけたらと思います。
#

元記事を表示

AWSのEC2とS3を使って写真共有サービスを作成する

# AWSのEC2とS3を使って写真共有サービスを作成する

[写真を保存するS3バケットを作成する](#写真を保存するs3バケットを作成する)
[WebサーバーとなるEC2を起動する](#webサーバーとなるec2を起動する)
[S3 Bucketにアクセス可能なIAMポリシーを作成する](#s3-bucketにアクセス可能なiamポリシーを作成する)
[EC2が使用するIAMロールを作成する](#ec2が使用するiamロールを作成する)
[EC2にIAMロールを設定する](#ec2にiamロールを設定する)
[EC2のセットアップをする](#ec2のセットアップをする)

## 写真を保存するS3バケットを作成する
記載中

## WebサーバーとなるEC2を起動する
1. サービス一覧から「EC2」を選択する
1. 「インスタンス起動」を選択
1. Launch an instaceのページが開くので、「名前とタグ」に適当な名前を付ける。今回は
*PhotoShareWebServer*
1. ![スクリーンショット 2024-07-09 200642.png](https://

元記事を表示

AWS 生成AI体験ワークショップをやってみて【詰まりポイント】

CloudFormationを使ったやり方であれば、ぽちぽちしていれば30分ぐらいで簡単に生成AIによるchat botなどが作れるのでとてもお手軽です。

CFnを使ったやり方は簡単ではありましたが、若干詰まりポイントがあったので同様の事象で困っている人の参考になれば幸いです。

## 詰まりポイント
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1045261/8c63e2c6-766d-3bac-04d5-2c50b5419933.png)
アプリケーションの構築を完了し、実際にchat botを使用してみると上記画像のようなエラーが発生してしまいました。

> 「エラーが発生しました。時間を置いて試してみてください。」

## 解決方法
アプリケーションの構築にて __オレゴン(us-west-2)ではなくバージニア北部(us-west-1)を指定__ する。

## 原因
`1. 事前準備 > 1-b. 自身のアカウントでワークショップを実施する場合 > 1-b.2. 基盤モ

元記事を表示

CloudWatch Synthetics を CDK で実装してみた

# はじめに

CloudWatch Synthetics には次の通り 6 つの Blueprint が用意されている。

|設計図|説明|
|—|—|
|ハートビートのモニタリング|指定した URL にアクセスして、ページのスクリーンショットと HTTP アーカイブファイル (HAR ファイル) を保存|
|API Canary|REST API に対してリクエストを送信して、応答をテスト|
|リンク切れチェッカー|テスト対象の URL 内のすべてのリンクを収集し、リンク切れがないかテスト|
|Canary レコーダー|Google Chrome の拡張機能である CloudWatch Synthetics Recorder を利⽤して、ユーザ操作を記録し、テスト|
|GUI ワークフロービルダー|Web サイト上のユーザ操作ができるかを GUI ベースで作成してテスト|
|ビジュアルモニタリング|Web サイトの表⽰が変化していないかをベースラインと⽐較し、テスト|

今回はこのうち**ハートビートのモニタリング**と**GUI ワークフロービルダー**を CDK で実装

元記事を表示

要件定義の時に必要となる「効果的な質問の仕方」

## はじめに
今回の記事では、要件定義の時に必要となる「効果的な質問の仕方」について、まとめました。質問の仕方は、情報を効果的に引き出し、理解を深めるために非常に重要です。質問をする機会があるならば、相手の立場に立って、親身な回答が出来るようになりたいものです。

そのような回答をするためには、具体的で自由な回答を得られるオープンエンドの質問をし、背景情報を提供し、一度に一つの質問をすることで、相手から明確で詳細な回答を得ることができます。また、フォローアップ質問をすることで、さらに深い理解を得ることができます。

### 質問の仕方のポイント

1. **具体的に質問する**
質問が具体的であればあるほど、相手は的確な回答を提供しやすくなります。

**良い**「AWS WAFのIPフィルタリングの設定方法を教えてください。」(具体的)
**悪い**「AWS WAFについて教えてください。」(抽象的)

相手が応えやすくする事がポイントです。相手のバックグラウンドを考え、相手が普段使いこなしているレベルの言葉が何かを見極めて、あわせる事が重要だと思います。

2. **自由な

元記事を表示

SageMakerでのデプロイメント入門(2/2):非同期推論のオートスケール設定解説

# 背景
– 前回は [SageMakerでのデプロイメント(1/2): SageMakerデプロイについて](https://qiita.com/munaita_/items/3e82d2771af0863dd0e4) でSageMakerのデプロイについてまとめました
– 今回は非同期推論におけるオートスケールの設定方法についてまとめていきます
– これができると、キューにリクエストがある場合のみ、GPU付きサーバーを起動して処理し処理が行われ、キューがない場合はインスタンスの起動を0にできるので料金をかからなくできます
– 今回は非同期推論でオートスケールでインスタンス数が0から5になるような設定のデプロイを行なっていきます

# 実装(notebook)

– 実装詳細は下記Gist参照してください

### モデルとエンドポイント設定の作成

“`python
response = sm_client.create_model(
ModelName=model_name,
PrimaryContainer={
‘Image’: contai

元記事を表示

【AWS】SSMで管理しているEC2にportforwardしてローカルからRDSに接続する

## 概要
下図の通りEC2 にSSM agentをinstallしてそこから繋ぐことが出来るRDSにローカルアクセスします。

![](https://storage.googleapis.com/zenn-user-upload/394a17b598e8-20240709.png)

## 前提
– EC2 に SSM agentをinstall 済
– EC2 から RDSにアクセス出来るVPC設定
– RDS は パスワードで管理
– ローカルではGUIツールを使用(この記事ではHeidiSQL)

## 手順
1. EC2のinstance-IDを確認する

2. portforwardを実施

windows
“`
aws ssm start-session ^
–target i-xxxxx ^
–document-name AWS-StartPortForwardingSessionToRemoteHost ^
–parameters “{\”portNumber\”:[\”3306\”],\”localPortNumber\”:[\”3306\”],\”hos

元記事を表示

EC2 Linuxを使いこなす方法をまとめました(Apache、Laravel)

## はじめに
EC2を使いこなしたいが、LinuxやApache、Larabelの知識に自信がないので、実際にどのように使うのかを確認しながら、学びたいという人向けにコンテンツを整理してみました。私自身、久しぶりに内容を整理してみた所、正規表現の使い方やLinuxの基礎を学びなおす事が出来て、勉強になりました。Linuxの使い方にも熟練しており、EC2を使いこなせているという自信をお持ちの方は、読み流してやってくださいませ。

### 目次

2. [EC2の用途](#ec2の用途)
3. [EC2インスタンスを起動する際に、自動的に実行されるユーザーデータを設定する方法](#ec2インスタンスを起動する際に自動的に実行されるユーザーデータを設定する方法)
[ユーザーデータスクリプト](#ユーザーデータスクリプト)
4. [EC2にApacheをインストールする手順](#ec2にapacheをインストールする手順)
5. [Linuxコマンド OS、ネットワーク](#linuxコマンド-osネットワーク)
6. [Linuxコマンド ファイル操作](#linuxコマンド-ファイル操作

元記事を表示

OTHERカテゴリの最新記事