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

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

プライベートサブネットのEC2へRDP接続する

# はじめに
EC2 Instance ConnectはEC2インスタンスをパブリック公開することなく接続できる便利なサービスである。今回は、既存のプライベートサブネットに新たに立ち上げたEC2インスタンスへの接続方法をまとめる。

### 前提
– クライアントPCにAWS CLIがインストールされていること
“`powershell
aws –version
aws-cli/2.15.5 Python/3.11.6 Windows/10 exe/AMD64 prompt/off
“`
– Intance Connectコマンドが通ること
“`powershell:powershell
aws ec2-instance-connect open-tunnel
“`

## Step.1 VPCエンドポイントを作成する
EC2を設置したいプライベートVPCサブネットに専用エンドポイントを設置する。「AWSのサービス内」から選択できない専用のエンドポイントサービスである。

選択例
![image.png](https://qiita-image-store.s3.ap-no

元記事を表示

EC2からAurora(PostgreSQL互換)を利用する際にはまったポイント

### 背景
AWS基盤で構築中のシステムにてデータストアとしてAurora(PostgreSQL互換)というRDBのサービスを利用することになった。
Auroraのテーブル作成やデータ投入などの開発作業のために、SQLクライアントとして、Cloud9というマネージドのEC2(仮想サーバ)をホストできるサービスを用意した。

Cloud9はWeb IDEのサービスであるが、Terminalを使ってEC2上でコマンド実行でき、複数メンバーで共用も可能であり、料金面でもEC2インスタンス利用料金以外はかからず、しかもしばらく使わなければEC2を自動停止してくれることから、筆者は踏み台サーバのような使い方をよくしている。
Cloud9の詳細は[こちら](https://aws.amazon.com/jp/cloud9/)。

システム構成は以下の通り。
Auroraは、PostgreSQL互換のv14.6 を利用した。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/271327/e64ad34

元記事を表示

別のアカウントにあるCodeCommitを起点にCodePipelineを動かしたい

# はじめに
この記事はDevOps on AWS大全 実践編の一部です。
DevOps on AWS大全 実践編の一覧は[こちら](https://qiita.com/tech4anyone/items/c27e74f9ae569ced259f)。

この記事では別のアカウントにあるCodeCommitを起点にCodePipelineを動かすアーキテクチャを決める流れを解説しています。

具体的には以下流れで説明します。

– 解決したい課題の整理
– 今回使うAWSサービスの整理
– アーキテクチャの策定
– 策定したアーキテクチャで達成できたこと

AWSの区分でいう「Level 400 : 複数のサービス、アーキテクチャによる実装でテクノロジーがどのように機能するかを解説するレベル」の内容です。

# この記事を読んでほしい人
– DevOpsエンジニアがアーキテクチャを決めるときにどのような思考フローを踏んでいるか知りたい人
– CodeCommitをクロスアカウントで利用するアーキテクチャを知りたい人
– AWS Certified DevOps Engineer Prof

元記事を表示

チームみんなでAWS資格取ったぞい

# チームみんなでAWS資格取ったぞい

チームのみんなで中級者向けのAWS資格であるSAA(Solutions Architect – Associate)を取得しました。この記事では、私たちが合格するために取り組んだことや工夫した点について、合格体験記として書いていきます。

## 対象読者
この記事は以下のような方々を対象にしています:
– 駆け出しエンジニア
– プログラミング初学者
– SAA資格を取得したい方
– チームメンバーと一緒に資格を取得したい方
– チームで資格を取得したい方

## きっかけ
私たちのチームはAWSを頻繁に利用する機会が多くあり、会社全体でもAWSを推奨されていました。そのため、いつかはAWSの資格を取得したいと思っていました。しかし、なかなかきっかけがなく時間が経っていました。そこで、自分だけではなくチーム全員で資格取得に挑戦しようという企画を立てました。

## 取り組んだこと
– 毎日30分のモクモク勉強会
– 実践を想定した定期的な模擬試験
– 実際の試験への申し込み
– 発起人の私が一足先に合格
– 学習の進め方の共有

## 詳細
#

元記事を表示

【AWS】EventBritgeで検知対象としたいイベントの確認方法

## はじめに

EventBritge を使用して、S3 に対するイベントトリガーにしたい。
だけど対象となるイベントの形式がわからないからルールを作れない。
上記のような経験はありませんか?

本記事は EventBritge のトリガー対象となるイベントの確認方法を記載した記事となります。

## 結論
– CloudTrail に出力されないイベントを検知したいのであれば、
EventBritge で検知範囲を広く設定し SNS で連携されるイベントの全文を確認する
– CloudTrail に出力されるイベントを検知したいのであれば、
CloudTrail でイベント内容を確認しEventBritge の「detail」に挿入

## 前提

EventBritgeは各種ログをそのまま検知するのではなく、
以下構造に沿うイベントパターンを検知することが可能となる。

“`json
{
“version”: “0”,
“id”: “UUID”,
“detail-type”: “event name”,
“source”: “event source”,

元記事を表示

AWSのSticky Sessionを作成(スティッキーセッション)

このチュートリアルでは、一歩一歩、AWSで**Sticky Session**を作成する方法を説明します。

:::note warn
このチュートリアルを進めるには、AWSの**Elastic Load Balancer**のコンセプトに慣れている必要があります。
:::

## なぜSticky Sessionを使用し、それは何のためですか?

次の設定を使用するPHPアプリケーションがあるとします:

– アプリケーションロードバランサー
– 2つのEC2インスタンス

![001.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3620161/57de4253-52f0-f6a3-fe9b-33014e630b5d.png)

ユーザーがログインすると、弊社の**Elastic Load Balancer**が2つのインスタンス間で負荷を分散します。

ユーザーは最初のインスタンスにアクセスします:

![002.png](https://qiita-image-store.s3.ap-north

元記事を表示

マイクラデータパック、リソースパック開発のCI/CD環境を構築 ~準備編~

## はじめに

私の友人がMinecraftのデータパック開発をしており、「データパック開発とかでCI/CD環境があればうれしいな~」みたいなお話があったので、じゃあ、作ってみようかなという感じで作りました。
まだ検証段階でセキュリティやら色々と対応する必要がありますが、ひとまず形になりましたので、やったことを整理しました。

ちなみに、私はデータパック開発はできませんし知識もないです。ちょっとfunctionを利用してデータパックをいじれるくらいです。

## CI/CD環境構築の記事一覧
全部書くと長いので4編に分けて説明します。各編で記載されている内容をすべて実施していただければ、CI/CD環境が構築できる状態になるよう努めて参ります。
– マイクラデータパック、リソースパック開発のCI/CD環境を構築 ~準備編~ ★今ココ
– マイクラデータパック、リソースパック開発のCI/CD環境を構築 ~GitLab、GitLab-Runner編~ (準備中)
– マイクラデータパック、リソースパック開発のCI/CD環境を構築 ~GitLab-CI編~ (準備中)
– マイクラデータパ

元記事を表示

AWS Control Towerを構築してみた!vol.1

# 近況
おそらく2023年最後の投稿となります、コンニャクンです。
今週でAWS資格のSCS-C02(セキュリティ-専門知識)とSAP-C02(ソリューションアーキテクト-プロフェッショナル)に挑戦し、無事に轟沈しました!

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3494465/5bf5fbb4-fef6-75f0-7f4d-c6b7b90e84b7.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3494465/ea7fc83e-1606-fd53-67e8-847584f698b9.png)

直近3か月はありがたいことに忙しく、明らかに勉強不足でした。
ですが点数はどちらもあと少し(特にSAPはあと2~3問くらい)だったので、モチベーションがあるうちに再挑戦します。

# AWS Control Towerとは
本題に入ります。業務の中でAWS Control

元記事を表示

学園祭において混雑可視化マップを作成および提供した話

きっかけ

 昨年度の学園祭における来場者アンケートでは、最後の「学園祭について、よかった点や改善点はありますか?」という設問において、自由記述であるにも関わらず、模擬店での混雑に関するご指摘が有効回答数451件のうち、50件ほどにも及びました。そのため、学園祭における混雑緩和は喫緊の解決するべき課題であると考えました。そこで、かつての先輩方からのご意見や昨年度における事例を踏まえ、現状における問題点をメンバーと検討したところ、「混雑が集中していること」があげられました。販売品目に関わらず、人通りが多い通路に面している模擬店は人目につきやすいため、人が集まりやすく混雑になりやすいものの、閑散としている通路に面している模擬店は、これらの場所を来場者が通りにくいことあり、混雑になりにくく、お昼時でも混雑していないことがありました。
そこで、現状のこの問題点を解決するべく、この「学園祭における模擬店における混雑可視化マップのためのWebアプリケーション」を考案し、開発を決定いたしました。このアプリでは来場者にとって、使いやすく、分かりやすい形を目指し、開発をすることとしました

元記事を表示

Amazon MWAAで環境変数設定を自動化したい

# やりたいこと

副業先の1社では、ワークフロー管理としてApache AirflowのAWSマネージドサービスであるAmazon Managed Workflows for Apache Airflow(MWAA)を利用しています。
DAG実行時にいくつか環境依存情報や機密情報を取得するため、環境構築後Airflow UI上でAdmin -> Variablesから環境変数を設定していました。
こちらの設定を自動化したく、2つの方法を試してみました。

# 前提

– MWAAのリソース含め、AWS CDKで環境の初期構築をしている。
– Apache Airflowのバージョンは2.2.2。
– Admin -> Variablesに、環境構築後ではないと取得できない値をいくつか変数として設定している。
– 過去にParameterStoreで管理する方法を採用していたが、ジョブの実行頻度が高く、ThrottlingExceptionが頻発していた。(TPSのデフォルトは40だが、引き上げは可能)

# 結論

Airflow CLIを利用して `cdk deploy` 実行後に

元記事を表示

[AWS] Lambda@Edgeでレスポンスボディの一部分を書き換える(付け足す)

Lambda,CloudFrontの細かい説明は省きます。

## Lambda@Edgeとは
Lambda\@Edgeについてまず簡単に。
公式↓
https://aws.amazon.com/jp/lambda/edge/

CloudFrontのエッジロケーションからコードを実行するLambda関数のことで、
ユーザに近い場所でコードが実行されるので高速なコンテンツ配信が可能になる仕組み。
コードをLambdaにアップロードするだけで自動的にコードの実行やスケーリングが行われる。

最大のメリットは**コンテンツがオリジンから返されたときにキャッシュされる可能性を高めたり、既にキャッシュされたコンテンツの利便性を高め、キャッシュヒット率を向上させること。**
らしい。

## トリガーとレスポンスボディ

本記事ではこのLambda@Edgeで受け取ったレスポンスボディの一部を書き換えてクライアントに返すことをやる。

まず、Lambda@Edgeは上述した通り、CloudFrontとセットで使用する。具体的には、CloudFrontのイベントをトリガーとして
1. ビ

元記事を表示

Agents for Amazon Bedrockでホテル予約エージェントを作ってみる過程

こんなの作ってみました。

![](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/41574/96722378-ac11-f455-2eaa-fceaa20e120e.png)

エージェント開発の試行錯誤っぷりをお楽しみください。

## Agents for Amazon Bedrockの構築方法

[前回](https://qiita.com/moritalous/items/c7bbadcf229137c29d1a)の構成をもとにしました。

Agents for Amazon Bedrockの構築方法は他の方の投稿などを参照ください。
(皆さん、検証が早い!w)

https://qiita.com/nasuvitz/items/c34419150eaee78544cc

https://qiita.com/Naoki_Ishihara/items/769f373f01261aec285a

https://qiita.com/cyberBOSE/items/14cf7024ea42ec1fb4be

元記事を表示

AWSが初めての方にオススメの3つのサービス🔰

# 3つのサービス

AWSは **Amazon Web Services** の略で、Amazonが提供するクラウドコンピューティングサービスです。サーバー、ストレージ、データベース、ネットワーク、分析、機械学習など、さまざまなクラウドサービスを提供しています。

AWSは、さまざまな機能を備えた強力なクラウドサービスですが、初心者にとっては、何から始めればよいか迷うこともあります。そこで、AWSが初めての方におすすめの3つのサービスを紹介します。

## S3(シンプルストレージサービス)
S3は、AWSのオブジェクトストレージサービスです。ファイルの保存や共有に便利なサービスで、ウェブサイトの画像や動画をホスティングするのにも最適です。

– 容量無制限で利用できる
– データ転送量に応じた課金
– 耐久性や可用性に優れている
– セキュリティが強固

## EC2(エラスティックコンピューティングクラウド)
EC2は、AWSの仮想サーバーサービスで、クラウド上に仮想サーバーを構築できます。

– さまざまなOSやソフトウェアが利用可能
– スペックや台数を柔軟に変更可能
– オ

元記事を表示

FireLens(fluentbit)を使ってFargateのJSONログをパースして出力する

## 目的
– ECSコンテナ(Fargate)から出力されるアプリケーションログをS3へ出力したい。
– アプリケーションログはJSON形式なので、FireLens(fluentbit)でパースをしたい。

## やってみた

システム構成は下記のイメージですが、FargateやS3の構築の方法や設定ついては省略しています。

![FireLends.drawio.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/28783/147617c9-f369-77d8-6119-3ea33c6a7425.png)

ここでは、JSON形式のログをパースして出力する方法と、設定値による出力の違いを記載します。

なお、fluentbitの設定方法は2パターンあります。さらにカスタム設定ファイルを読み込む方法も2パターンあります。
1. Fargateのタスク定義のオプションに設定する
2. カスタム設定ファイルに設定する
ⅰ. S3に配置したカスタム設定ファイルを読み込む
ⅱ. コンテナイメージビ

元記事を表示

AWS re:invent 2023体験レポート

## はじめに
AWS re:invent 2023に初めて参加した体験レポートです。
実際に組んだ旅程、事前準備、おすすめの回り方、Tipsなどを書いています。

## 旅程
| 日付 | 内容 |
|:-:|:-:|
| 11/26 | Tokyo 21:05発 ⇒ ( Los Angeles 14:05着 & 18:45発 ) ⇒ Las Vegas 20:01着 |
| 11/27 | AWS re:invent 1日目 |
| 11/28 | AWS re:invent 2日目 |
| 11/29 | AWS re:invent 3日目 |
| 11/30 | AWS re:invent 4日目 |
| 12/1 | AWS re:invent 5日目 Las Vegas 発16:50 |
| 12/2 | ( Los Angeles 18:06着 & 00:05発 ) |
| 12/3 | Tokyo 05:30着 |
## 事前準備
### 事前作業
| 日付 | 内容 | 備考 |
|:-:|:-:|:-:|
| 渡航前 | (AWSの資格取得) | 資格があ

元記事を表示

Aurora Serverless v1のリスト化方法

Aurora Serverless v1がサポート切れです。

v2と設定パラメータが異なるので地味に探しづらい代物

AWS Config Advanced Queryを使うなら

“`sql
SELECT 略
WHERE
resourceType = ‘AWS::RDS::DBCluster’
AND configuration.engineMode = ‘serverless’

“`

インスタンスではなくDBClusterを検索するのがポイントです。
v2のほうはインスタンスで検索できます。

元記事を表示

AWS Certified Solutions Architect – Professional (SAP-C02) に合格しました

SAP-C02に合格しました。
こちらに記録と感想を記載します。

# 受けた試験
* SAP-C02( AWS Certified Solutions Architect – Professional )
* 受験日: 2023-12-27
* 受験者スコア: 756/1000

# 感想
想定以上に難易度が高く大変苦労しました。試験終了時には落ちたなと思って落胆していました。合格できたのは運が良かったのかもしれません。

自分的には、
* 長めの問いの文章から重要なポイントを抜き出し、要件を素早く理解する。
* 回答の選択肢から間違いが含まれるものを除外して、ベストプラクティスに沿ったもの、場合によってはベストプラクティスではないが妥当なものを探して早く回答する。
* これらを75回、3時間繰り返す。

このパターンの試験は苦手だなと感じました。

180分は相当長く感じました。集中力が切れるし、2時間経過したくらいでトイレに行きたくなって汗が出ました。
特に “複雑な組織に対応するソリューションの設計” は何度繰り返し勉強しても苦手意識が強くて、公式ドキュメントや本を読んで理解し

元記事を表示

アップロード画像を全消しした話

# S3のコンテンツを管理したい

そのWebサービスでは画像やJS、CSSなどの静的リソースをAWSのS3に上げて利用していたのですが、マネコンから手動でアップロードしている状態でした。
そのため、量が多いと作業も大変ですし、抜け漏れなどの人的ミスも発生していました。

元々その静的リソースはgitにも保存していたので、gitで管理しているリソースをawsのcliで `aws s3 sync` で同期した方が確実だし楽じゃん!、と思いデプロイ手順を変更しました。

# gitとs3の手動同期

そもそも今gitとs3の中身って本当に同じなの?、という疑惑があったので、 `aws s3 sync` で全差分を出して一つずつチェック。
S3にしかないもの、gitにしかないもの、これどこで使ってるの?、みたいなファイルが山ほどあり、調整は時間を要しましたが、基本はS3に上がっているものが正なので、差分はS3のものを残す方針で、どうにかgitとS3のリソースを完全一致させることができました。

# デプロイ手順の変更

– dryrunで差分を確認。ルートパスでやると余計な差分出てしまうかも

元記事を表示

SageMakerのリアルタイム推論エンドポイントで使用しているPythonパッケージの一覧を取得する

# はじめに
SageMaker のリアルタイム推論エンドポイントで使用している(モデルコンテナにインストールされている)全ての Python パッケージの、パッケージ名とバージョンの一覧を取得したいというタイミングがありました。

その際にやったことをまとめます。

# やったこと
リアルタイム推論エンドポイントの推論コード(カスタムスクリプト)内に、以下の Python コードを仕込んで推論を実行すると、ログ(CloudWatch Logs)に“pip freeze“の形式で結果が出力されます。

“`Python
import subprocess
result = subprocess.run([‘pip’, ‘list’, ‘–format’, ‘freeze’], stdout=subprocess.PIPE, text=True).stdout
print(result)
“`

また、エンドポイントから S3 へアクセス可能な場合、以下のように S3 へテキストファイルを出力することもできます。
“`Python
import boto3
import

元記事を表示

EC2でk8s構築時に、Too Many Open Filesエラーの対応(忘備録)

# 前編
https://qiita.com/wk0012345/items/83385bd99d837bc79cdd

# 経緯
1. Fluent Bitを起動した後、開発者のための環境を増やしたときに、ログを収集するインスタンスが多くなり、一部のPODが起動してなかった
“`
…エラー…
2023/12/27 12:09:25 too many open files
…エラー…
“`

# 対応
下記の二つのファイルを確認し、制限されている数値を増やすことで解決

1. max_user_watchesを確認
“`
$ cat /proc/sys/fs/inotify/max_user_watches
“`

1. max_user_instancesを確認

“`
$ cat /proc/sys/fs/inotify/max_user_instances
“`

1. 自分の場合、二つのファイルの中で、`max_user_instances`が 128になっており、これ

元記事を表示

OTHERカテゴリの最新記事