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

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

Amazon Linux2023にnginxをインストールする

# 概要
AmazonLinux2からAmazonLinux2023に乗り換えるべく、同じ環境を作ります。

https://qiita.com/tamorieeeen/items/07743216a3662cfca890

# 環境

– AWS EC2
– OS:Amazon Linux 2023
– AMI:al2023-ami-2023.5.20240730.0-kernel-6.1-x86_64

# 構築手順
## 1. パッケージの確認
AmazonLinux2023の場合はamazon-linux-extrasを使わずともデフォルトでnginxがあるらしいので確認します。

“`console
$ dnf search nginx
Last metadata expiration check: 3 days, 0:23:38 ago on Mon Aug 5 16:21:27 2024.
============================================ Name Exactly Matched: nginx =============

元記事を表示

AWS クラウドプラクティショナー 勉強法

はじめに

AWS クラウドプラクティショナーの資格を取得したため、勉強方法やオンライン試験についてをまとめておきます。
スコアは764点でぎりぎりの合格だったため、高得点での合格を目指したい場合はお勧めしません。

試験概要

受験料 16,500円 ※2024年6月時点
受験時間 90分
受験方法 会場、オンライン
問題数 65問
回答形式 多肢選択式 4つの選択肢から1つ選択
複数回答式 5つ以上の選択肢から2つ以上選択

Lambda内でファイルダウンロードができない?そんなときはtmpを疑え

# はじめに
昔ハマったところの記事書き直し。

#### 【対象読者】
– Lambda初心者
– Lambda内でファイル作成・s3からのダウンロードなど行いたい人

#### 【使用環境】
– AWS S3
– AWS Lambda
– Python=3.10
– boto3

# 本題
lambda上でPython boto3ライブラリを使用しS3からファイルをダウンロードしていたときのこと。

以下のようなエラーが発生し、ダウンロードができませんでした。

“`
[Errno 2] No such file or directory: ‘/item/6534.pbf.C92d54EC’
“`

No such file or directoryなので「そんなファイルないよ!」って状態。

(よく見ると以下の「ないよ!」と言われているファイル名、なんか変な拡張子がついてますね。)

“`
‘/item/6534.pbf.C92d54EC’
“`

ちなみにこの状況、lambda上の同じ/item/階層で、**新しいファイル作成** もできません。

# 解決策

新卒研修でAWSJAMに参加してきた話

# はじめに
24新卒のあおです!
会社の新卒研修にてAWSJAMを経験してきたので、今回はその体験記を書いていこうと思います。

# AWSJAMとは
AWSJAMとは、AWSを学ぶために提供されている『実践型の課題解決トレーニング』的なものです。

>セキュリティ、移行、開発運用、AI/ML などに関する AWS のベストプラクティスを学ぶために設計された課題を解決することで、クラウド導入の取り組みを推進します。
>
>AWS は初めてですか? それとも、以前は特定の AWS サービスを使ったことはありませんか? 必要に応じて、課題をナビゲートするための手がかりを利用できます。 AWS の専門家も進行役を務めていますが、このイベントは自習型の発見と学習を促進します。
>
>引用:https://jam.awsevents.com/

## ※わかりやすいと感じた記事も貼っておきます。

https://qiita.com/sasadai10/items/5e51d291315e74296400

https://qiita.com/yuzinet/items/a6db5a26af2

stunnelとLoad Balancer TLS終端サービスを使って暗号化通信を実施

# 概要
[stunnel](https://www.stunnel.org/)とAWS Network Load Balancer(NLB)等のLoad Balancer TLS終端サービスを使って暗号化通信を行います

# 何がいいの?
既存のアプリケーションを修正することなくTLS暗号化が可能です。

# 方法1.AWS NLB TLS終端を使用
PC内のクライアントソフトは同じPC内のstunnelと通信します。
PC内のstunnelはNLBを経由して通信を転送します。
以下の例ではサーバーはRedisを使用しています。
【AWS】Cloud Quest をプレイしてみた

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3822977/0706733a-f8d1-e939-a863-27cca6961081.png)

# はじめに
Cloud Quest をご存じでしょうか。
Cloud Quest は実用的な AWS スキルを身につけるための 3D ロールプレイングゲームで、「AWS Skill Builder」という AWS をオンラインで学習できるコンテンツ群の 1 つです。

AWS が提供するの唯一のゲームコンテンツということで、今回はこの Cloud Quest (クラウドプラクティショナーレベル)の概要や実際にプレイした所感についてまとめてみました。

# Cloud Quest 概要
 
上述の通り Cloud Quest はゲームをプレイしながら AWS を学習することができるコンテンツです。
 
自身のアバターを作成してバーチャル都市を巡りながら、市民が抱える AWS に関する困りごとをどんどん解決していくといったストーリーです。

AWS RedshiftでCronの書き方で躓いたのでメモ

# はじめに
Redshiftを同じスペックでずっと起動しておくのももったいないなと思い、スケジューラーでスペックを調整しようとしていた。

その時つまずいたので、メモ書きを残しておく。

# 初めに設定したCron
以下のような形式でCronを記載。
特に疑問も持たず設定。

“`
0 9 * * 1-5 * # 月から金曜の9時
“`
因みにAWS上の説明はこんな感じ。

>Cron 形式: 分 時間 日 月 曜日 年 追加の値を含めるには、, (カンマ)、範囲を指定するには – (ハイフン)、すべての値を含めるには * (アスタリスク)、増分を指定するには / (スラッシュ) を使用します。

すると以下のエラーが発生した。

“`
Invalid cron schedule expression:
“`

なぜ???と思いながら色々試行錯誤していく..

# 修正後のCron

結論から言うと以下の記載で解決した。

“`
0 9 ? * 1-5 * # 月から金曜の9時
“`

以下のドキュメントに記載があった。

[Amazon でスケジュールに従って実行

【備忘録】CloudWatchLogsのメトリクスフィルターの設定方法

## はじめに

最近でも約2年前以上の記事に反応が来るので、これくらいの設定系の記事も需要があるのかと思い、今回はCloudWatchLogsのメトリクスフィルターの設定について記事に残していこうと思います。

https://qiita.com/k_dd/items/7968dc30b9a4429061c4

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1185845/0275e743-a82d-aa38-cfe5-1c8d9dbbbfe6.png)

メトリクスフィルターとは、アプリなどから吐き出されたログをメトリクスとして数値化する機能です。
特定のログの回数やエラーコードの回数をメトリクスとして収集できます。
メトリクスとして収集できるので、閾値を設定してアラームを設定することもできるようになります。

## メトリクスフィルターの設定
まずは今回メトリクスフィルターを設定するロググループを作成します。
(並び替えで表示しやすいように頭にaaaを付けています。検索すればいいだ

大手パブリッククラウドの資格取得その1

## はじめに
会社の方針でAWSおよびAzureの資格取得が必要になったので勉強法やスケジュール感などを記載していきます。

## 取得予定の資格
AWS Certified Cloud Practitioner
AWS Certified Solutions Architect – Associate
Microsoft Certified Azure Fundamentals

## 筆者のスペック
インフラ経験:設計、インフラ構築、試験、運用を10年以上経験
クラウドの経験:パブリッククラウド未経験
取得している資格:基本情報処理、応用情報処理

## 受講計画
ひとまず筆者が興味をもっていたAWSの最も下位の資格のAWS Certified Cloud Practitionerから取得することにしました。
[AWSのHP](https://aws.amazon.com/jp/certification/certified-cloud-practitioner/?ch=sec&sec=rmg&d=1)を確認するとCloud Practitionerは
>AWS Certifi

【初心者向け】App Runner使ってみた

# はじめに
 こんにちは。タイトルのとおり、App Runnerを使ってみた記事になります。
 App Runnerがどういったサービスなのかざっくり言うと、VPCなどのインフラ側の構成をAWS側でいい感じにやってくれて、アプリケーションの構築とデプロイができるサービスです。
 もし、EC2やEKSでアプリケーションを構築する場合、VPCやサブネット、セキュリティグループなどネットワーク関係の構築は必須ですが、App Runnerではネットワーク関係をAWS側でやってくれます!なんて便利!!そんなサービスになります。詳細は、[公式ドキュメント](https://docs.aws.amazon.com/apprunner/latest/dg/what-is-apprunner.html)をご確認ください。 

# 構築手順
 早速ですが、App Runnerの構築手順を紹介します。大まかな流れは下記になります。あくまでも「とりあえず動かしてみた。」のレベルになりますのでご留意ください。

* ECR作成
* Cloud9構築 (今回はイメージ作成をCloud9から行います。)
* C

S3のバケットのリストを返す方法

Resourceで指定するリソースの種類はActionごとに決まっていて、s3:GetObject、s3:PutObject、s3:DeleteObject はオブジェクトですが、s3:ListBucket はバケットなのです。従って、s3:ListBucket だけResourceは arn:aws:s3:::BUCKET のようにバケット単位での指定が必要です。ここにプレフィックスを書くことはできません。

https://docs.aws.amazon.com/ja_jp/AmazonS3/latest/API/API_ListBuckets.html

`ListBuckets` は、Amazon S3 において、認証されたリクエスト送信者が所有するすべてのバケットのリストを返す操作です。この操作を使用するには、`s3:ListAllMyBuckets` 権限が必要です。

以下に `ListBuckets` のリクエストとレスポンスの詳細について説明します。

## リクエスト構文

### HTTP リクエスト
“`
GET / HTTP/1.1
Host: s3.

ANGEL Calendarを開催します!

こんにちは、ふくちと申します。

私は2024年7月~10月でAWSさんが主催する研修「ANGEL Dojo」に参加しています。

https://aws.amazon.com/jp/blogs/psa/2024-07-angel-dojo-kickoff/

この研修は、参加企業から選出された4〜6名のメンバーでチームを組み、3ヶ月間でサービスの企画から開発まで行うトレーニングです。

参加企業としては、パートナー企業18社・ユーザー企業12社の計30社(102名)となっています。
チーム構成としては、1社だけのところもあれば、複数社合同のところもあります。

そんなANGEL Dojoですが、「せっかくこれだけのエンジニアが集まっているのだから、普通に研修を進めていくだけじゃ勿体無い!」ということで、アドベントカレンダーならぬ**ANGEL Calendar**を始めることにしました!8888〜

# 開催概要
– 開催内容:1日ごとに1人ずつブログ記事を投稿していく(普通のアドベントカレンダーと同じ形式)
– 開催形式:[2024-ANGEL-Dojo Organization]

AWS Step Functionsを活用したバッチ処理とキュー管理について

# はじめに
`AWS – Step Functions`のバッチ処理と `queue` 管理の相関性についてまとめたいと思います。

# 全体的な処理の流れについて

まずは、ジョブとプロセスの概要を押さえるために、処理の流れに沿ってまとめます。

## `Step Functions`を使用したバッチ処理フロー

### 1. イベントの発生
バッチ処理をトリガーするイベントが発生を起点にします。
※ 定期的なスケジュール(例えば、毎日1回)や特定の条件を満たしたときにトリガーされるように設定されていることが多い
これを設定するためには、`Amazon CloudWatch Events`や`Amazon EventBridge`を使用することが多いです。

### 2. ジョブの生成

イベントが発生すると、新しいバッチジョブが生成される。
このジョブは、特定のタスクの集まりとして定義され、これらのタスクを実行するための一連のステップのことを指します。

### 3. `Step Functions`の開始

ジョブが生成された後、`AWS Step Functions`のステー

【AWS】Batch作成のAutoscalinggroupのテンプレートヴァージョンがデフォルトに戻ってしまう場合の対応方法

# 概要
AWS Batch作成のAutoscalinggroupのテンプレートヴァージョンがデフォルトに戻ってしまう現象に遭遇しました。Batch Compute環境に起動テンプレートを書く際に、注意点があることがわかったので紹介します。

# 事象と解決法
先日、以下の記事に記載したようなテンプレートでAWS Batchを作成しました。

https://qiita.com/Ryo-0131/items/b99a72952a672351ace2

すると、AWS Batchからジョブが発行されてAutoscalinggroupが動くたびに、その「起動テンプレート」の「ヴァージョン」がデフォルトヴァージョン(1)に戻ってしまう現象に遭遇しました。つまり、例えばインスタンスタイプを変えるなどしてヴァージョン2を作成、Autoscalinggroupでヴァージョン2を選んでも、一度Autoscalingを使用すると、ヴァージョン2にした更新情報は失われ、デフォルト(1)に戻ってしまうのです。

その原因は、`BatchComputeEnvironment`の`LaunchTemplate

ANGEL Dojoで学んだ思考の整理学

こんにちは、ふくちと申します。

私は2024年7月~10月でAWSさんが主催する研修「ANGEL Dojo」に参加しています。

https://aws.amazon.com/jp/blogs/psa/2024-07-angel-dojo-kickoff/

この研修は、参加企業から選出された4〜6名のメンバーでチームを組み、3ヶ月間でサービスの企画から開発まで行うトレーニングです。

参加企業としては、パートナー企業18社・ユーザー企業12社の計30社となっています。
チーム構成としては、1社だけのところもあれば、複数社合同のところもあります。

2024年度は7/11~8/2で企画フェーズとなっており、終了したら次は設計・構築へ進んでいきます。
私自身、この企画フェーズで非常に多くのことを学んだので、それをアウトプットしていきます。

# 当記事の概要
内容:ANGEL Dojoによって、「思考の整理学」という本の知識実感と理解深化をした経験
対象:将来ANGEL Dojoや他のハッカソンへ参加する方、新しいアイデアを思いつきたい方
目的:思考を上手く整理できるようになること

Amplify + Nuxtを試してみた

# 背景・目的
以前、NuxtやVue.js、Amplifyを試してみました。(詳細は、下記の記事を参照。)

https://qiita.com/zumax/items/99ddd03a404e3449a5cb

https://qiita.com/zumax/items/adec81146481c95001c4

今回は、Nuxtにより作成したアプリケーションを、Amplifyのホスティングサービスで動かしてみます

# まとめ
下記に特徴をまとめます。

|特徴|説明|
|:–|:–|
|Amplify Zero-Config Providers|AWS Amplify との統合は設定なしで可能|
|Amplify ビルド設定の構成 |Amplifyホスティングを使用してアプリケーションをデプロイすると、pakcage.jsonファイルを検査する

検査時に、フロントエンドフレームワークと関連するビルド設定が自動的に検出される|
|Nitro|すべてを備えたウェブサーバを構築し、必要なものをすべて揃えて好きな場所へデプロイできる|

# 概要
## Ampli

Amazon Qでリソースについてチャットする機能がめちゃくちゃ便利だった

# はじめに
去年のre:Inventで発表された、Amazon Q Developerですが、先月[リソースについてチャットする機能がGA](
https://aws.amazon.com/jp/blogs/devops/chat-about-your-aws-account-resources-with-amazon-q-developer/)されました。

本機能を使うことで、チャットからAWSアカウントのリソース一覧を取得できたりなど、色々と使い道がありそうです。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3075801/102b5672-a35f-88ee-b4ff-7512bd291e50.png)
※[AWSブログ](https://aws.amazon.com/jp/blogs/devops/chat-about-your-aws-account-resources-with-amazon-q-developer/)より掲載

# 前提条件
本機能を利用するためには、

AWS ControlTower⑤GuardDutyの設定(+個別保護プラン)

# はじめに
今回は前回のSecurityHubと同様、GuardDutyを有効化してAuditアカウントに委任する設定を行います。私たちはその後個別protection(保護プラン)を有効にしました。
# 保護プランとは?
現在は以下7つのプランが設定可能です。
https://docs.aws.amazon.com/ja_jp/guardduty/latest/ug/what-is-guardduty.html (←詳細はドキュメントに)
S3 Protection★
EKS Protection★
ランタイムモニタリング
EC2のMalware Protection★
S3のMalware Protection
RDS Protection★
Lambda保護★
今回は★がついている、5つのプランを適用しました。
各保護プランの却下理由は以下の通りです。
ランタイムモニタリング→エージェントを導入することが必須であったため。導入方法について、手動か自動化は選べる。
※ランタイムモニタリングとEKS Protectionの違いは、現在進行形で行われているものを見に行っているかログを

AWS ControlTower④SecurityHubの設定

# 全体の流れ
① 管理アカウントでSecurityHubを有効化する

② SecurityHUBの管理権限を、管理アカウントから監査(Audit)アカウントに委任する
=監査アカウントにて、ControlTower全体のSecurityHub(設定したセキュリティ基準を満たせているか)を確認できるようにするための準備を行う。
→この時点では管理アカウントと監査アカウントでのみSecurityHubが有効化されている!

③ 中央設定を行う
=監査アカウントにて、ControlTower全体のSecurityHub(設定したセキュリティ基準を満たせているか)を確認できるようにするための実際の設定を行う。
→ここでControlTowerに所属しているアカウントやOUはSecurityHubを有効化され、結果が監査アカウントに集約される。

# 中央設定とは
https://docs.aws.amazon.com/ja_jp/securityhub/latest/userguide/central-configuration-intro.html (←公式ドキュメント)
中央設定と

AWS ControlTower③コントロールの設定

# コントロール設定の中身を確認しよう
まずは必須で設定されているコントロールを確認します。
必須のコントロールはOU単位で継承するので、SecurityOUとSandBoxOUについて確認していきます。
SecurityOUは21個の予防コントロール、3個の検出コントロールで計24個のコントロールが設定されています。
![スクリーンショット (991).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3827410/78f41b50-56f5-6556-af2d-704f3afcbbe8.png)
![スクリーンショット (992).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3827410/ccb8d92e-07cd-9401-16fa-41c09c5822b7.png)
![スクリーンショット (993).png](https://qiita-image-store.s3.ap-northeast-1.amazon