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

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

210日目 DockerイメージをビルドしてECRにプッシュするまで流れby社畜S

## :checkered_flag:はじめに
こんにちは、社畜Sです
今日はとある業務の中でイメージのビルド→ECRにプッシュする
という流れの作業を行いましたので、メモ書きがてらどのような作業をしたのかまとめていこうと思います。

構成としては非常にシンプルなので、初心者向けの入り口としては良いかもしれません。
もし間違い等ありましたらどんどん指摘お願いします!
## :checkered_flag:今回使用したツール
・[DockerDesktop](URL “https://www.docker.com/products/docker-desktop/?_fsi=derLb3pp”)
・[Visual Studio Code](URL “https://code.visualstudio.com/download”)
・[AWS CLI](URL “https://docs.aws.amazon.com/ja_jp/cli/latest/userguide/getting-started-install.html”)
今回は上記3つのツールを使用します。ダウンロードはリンク先

元記事を表示

Lambdaからシークレットマネージャーにある認証情報を取得

# ①SecretsManagerでシークレットを作成
RDSなどAWSリソースのシークレット情報を保存する場合はそのリソースを選択しますが、今回は軽い動作確認するだけなので「その他」を選択します。

保存したいシークレット情報を「key-value」で入力します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3538617/c66410ba-bde9-5ac4-5211-1b7ab2de12fd.png)

シークレット名をtestにします。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3538617/ced33876-3cea-66be-2713-639f7d4bf6f1.png)

動作確認するだけなので、今回はローテーションをしません。

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

元記事を表示

AWS ECRのマルチステージビルドにおける脆弱性スキャンの挙動について

## はじめに

AWS ECR(Elastic Container Registry)の脆弱性スキャン機能は、コンテナイメージのセキュリティを確保する上で重要な役割を果たしています。

マルチステージビルドを使用する場合、その挙動について注意すべき点があることがわかりました。

## 重要な発見

マルチステージビルドにおけるECRの脆弱性スキャンには、以下のような特徴があります:

1. スキャン対象となるのは、最終的にプッシュされる最後のステージのイメージのみ
2. 中間ステージ(builderステージなど)はスキャン対象外

## 具体例で見る挙動

以下のような一般的なマルチステージビルドの`Dockerfile`を例に考えてみましょう:

“`dockerfile
FROM node:21-alpine AS builder # スキャン対象外
WORKDIR /app
COPY . .
RUN yarn install && yarn build

FROM node:21-alpine # このイメージがスキャン対象
COPY –from

元記事を表示

やっとS3のブロックパブリックアクセスの4オプションの違いを理解した

# ブロックパブリックアクセスの4オプションって何?
これこれ!

静的サイト設定時に「ブロックパブリックアクセス」をオフにしてねって言われたのですが、そもそもその四つのチェックって何?、とずっと気になりました。。。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3538617/3ebb5c35-6355-758c-07f9-81f330b4f8f4.png)

# 4オプションは
### BlockPublicAcls
説明:バケットやオブジェクトレベルで「パブリックACL」を適用することを禁止します。

影響:新規または既存のオブジェクトにパブリックACLが追加されても、そのACLは無視されます。

使用シナリオ:特定のバケットやオブジェクトが意図せずに「パブリックアクセス」を持たないようにしたい場合。

### IgnorePublicAcls
説明:すでに設定されているパブリックACLを無視します。

影響:バケットまたはオブジェクトにパブリックACLが設定されていても、パブリ

元記事を表示

【Light sail】AWSのLight SailでPostgresSQLを使用してStrapiを構築する【Strapi】

## linuxのアップデート
先ずはlight sailのlinuxのパッケージのアップデートを行います

### ① apt-get update
linuxの内部にあるパッケージのリストを更新する。
実際にインストールするわけでなく、あくまで”リストを更新する”だけです。

### ② apt-get upgrade
インストール済みのパッケージを先ほど更新したリストに基づいて実際に更新します。
パッケージを最新にすることにより、セキュリティの強化やパフォーマンスの改善が期待できます。

“`shell:linux
–パッケージリストの更新
$ apt-get update

–パッケージの更新
$ apt-get upgrade
“`

※上記コマンドは権限の関係で permission deniedになる場合があるので、その際はsudoなどで適宜対応してください。

## PostgresSQLのインストール

ここから実際にpostgresSQLのインストールを行います。

“`shell:linux
–postgresのインストール
$ sudo apt

元記事を表示

HULFT10 Smart Proxyのクラウドトリガを使ってみた

## はじめに
こんにちは。すぎもんです:smile:

今回は、クラウドで発生したイベントをトリガーに、HULFT10 Smart ProxyとHULFTクラウドストレージオプションを使って、クラウド上のファイルを転送してみようと思います。

☆前回記事(環境構築)も参考にしてください
https://qiita.com/sugimon/items/f20294a677d69f87cac5

HULFT10 について紹介している公式サイトもあわせてご覧ください。
**■ HULFT10 製品紹介ページ**
https://www.hulft.com/software/hulft-10

**【公式】HULFT10 Smart Proxy ガイド**
 ※2024年11月11日以降公開予定

:::note warn
本資料は2024年9月開発中時点のリリース前モジュールでの環境構築ナレッジです。
設定内容等の細かい部分は変更になる可能性がある点、ご留意ください。
:::

# 前提条件
* 上図のEC2インスタンス(Linux)

元記事を表示

大学生がSAAを1発で取得した話(失敗談)

# はじめに
本稿は情報系学部に通う大学生がAWSのSolution Architect Associate(以下SAA)に合格した体験記(失敗談)を投稿させていただきます。振り返って今ならこのように取得する方法なども記載したので、学生でSAA取得しようとしている人などに参考にしていただければ嬉しいです。

https://aws.amazon.com/jp/certification/certified-solutions-architect-associate/

# 前提
* 情報系学生だけどPC周りの知識が疎い
* インフラ知識殆どなし
* ストレージを使用するためにS3とIAMを少し触ったことがあるくらい

# やったこと
### 1.AWS認定資格試験テキストの使用
 自分はまず初めに[AWS認定資格試験テキスト](https://www.amazon.co.jp/AWS%E8%AA%8D%E5%AE%9A%E8%B3%87%E6%A0%BC%E8%A9%A6%E9%A8%93%E3%83%86%E3%82%AD%E3%82%B9%E3%83%88-AWS%E8%AA%8D

元記事を表示

Aurora MySQLのバージョンと監査ログのローテーションルールについて

## 結論
#### ファイルサイズによるローテーション
* いずれのバージョンも100MBごとにローテーションされる
#### 時間によるローテーション
* Aurora MySQL 3.03.0: 時間によるローテーションは行われない
* Aurora MySQL 3.04.0: 1 時間ごとにローテーションされる
* Aurora MySQL 3.05.2: 1 時間ごとにローテーションされる
* 他バージョン:未検証

## きっかけ
Auroraの監査ログのCW出力費用が高い!!!
CW出力をやめてS3へ出力する方法を検討するために、まずは監査ログの仕様について調査を行った。
公式ドキュメントには以下の通り記載が。
> 監査ログは、各 Aurora MySQL DB インスタンスのローカルストレージに個別に保存されます。各インスタンスは、一度に 4 つのログファイルに書き込みを分散します。ログファイルの最大サイズは 100 MB です。この設定不可能な制限に達すると、Aurora はファイルを回転し、新しいファイルを生成します。
https://docs.aws.amazon

元記事を表示

AWS と OCI を Site-to-Site VPN 接続してみた

# あいさつ
公式のサイトを参考に **AWS** と **OCI** を **Site-to-Site VPN 接続**してみました。
難解な部分がありましたので、私なりの解釈をいれながら噛み砕いてまとめてみました。
敢えて画像はつけません。必要であればご要望下さい。

:::note info
公式サイト

Title: **動的 BGP ルーティングを使用して AWS と OCI の間に VPN を設定する | AWS re:Post**
URL: https://repost.aws/ja/knowledge-center/vpn-oci-bgp-routing
:::

## 手順

### ◆AWS の設定
1\. AWS 側でダミーの **[カスタマーゲートウェイ]** を作成します。

:::note warn
ダミーの意味
・この時点では OCI 側のグローバル IP が判明していない為ダミーとなります。
・AWS の **[カスタマーゲートウェイ]** の付け替えが可能であるが、OCI の **[CPE]** の付け替えができないので、AWS 側でする必要があります

元記事を表示

AWS 読み取り専用(請求関連の閲覧拒否)のIAMユーザーを作成する

## はじめに
こんにちは。アリガアウルです。
今回は、AWSのアカウントで読み取り専用(請求関連の閲覧拒否)のIAMユーザーを作成することにしました。
経緯としては、自身のAWS学習状況を確認してもらうためのユーザー作成が必要となったので、IAMユーザー作成をすることにしました。
作成するうえで躓いたところなども含めて記載していこうと思います。

## やりたいこと
・AWSの管理コンソールから全サービスのリソースを読み取り権限で閲覧することが出来るIAMユーザーを作成したい。
・請求画面については閲覧できないようにしたい。

## 結論
・既存ポリシーの「ReadOnlyAccess」をIAMユーザーに付与する。
 ※フィルターの仕方を間違えてこのポリシーを見つけるのに時間を要しました。
・カスタムポリシーで請求関連リソースへのアクセスを拒否するポリシーを作成し、
 IAMユーザーに付与する。

注意:AWSでは、以前使用されていたaws-portalアクションが2023年7月にサポート終了となり、新しい細かいアクセスコントロールが導入されていました。これにより、請求関連のアクセス

元記事を表示

OpenShift Data Foundation (ODF) – Multicloud Object Gateway (MCG)

### OpenShift Data Foundation (ODF)

Red Hat OpenShift Data Foundation とは

Red Hat® OpenShift® Data Foundation (旧 Red Hat OpenShift Container Storage) は、コンテナ用ソフトウェア・デファインド・ストレージであり、Red Hat OpenShift に緊密に統合されたデータサービスを提供します。Red Hat OpenShift Data Foundation は、クラウド全体でアプリケーションを迅速かつ効率的に開発し、デプロイするのに役立ちます。

https://www.redhat.com/ja/technologies/cloud-computing/openshift-data-foundation

### Multicloud Object Gateway (MCG)

ここでは、以下のドキュメントに基づいて、AWS 上の OpenShift Container Platform (OCP) IPI/UPI 環境における O

元記事を表示

# aws cdk を試してみた感想

python と typescript をちょっとだけ試した感想

## 背景

IaC として terraform と SAM を使っていたが、他の選択肢を模索中。
lambda がいい感じに作れるかどうかが気になっている。
特に python での外部ライブラリをサクッと入れたい。

sam の lambda デプロイだとランタイムに合わせたビルド用コンテナを使って
requirements.txt から自動でインストール・zip化までしてくれる。
これがとても便利な一方、sam だと作れるリソースに制限があるので、
今は terraform との併用で使っている。

## まとめ

– aws cdk
– ◯
– 慣れた言語で書ける
– cloudformation スタック = オブジェクト になるのでわかりやすい
– △
– aws でしか使えない
– ブラウザからの操作が実質できない
– sam
– ◯
– lambda のデプロイが簡単
– △
– サーバレスのリソースしか作れない
– 記法が独特

元記事を表示

DynamoDB GSIに対してLambdaからクエリを実行し特定の属性値を取得する

# はじめに
本記事ではDynamoDBのGSI(Global Secondary Index)を作成し、Lambdaからクエリを実行する処理を実装していきます。

# ゴール
DynamoDBのGSIに対してLambdaからクエリを実行し、パーティションキーとソートキーの条件に一致する項目から、特定の属性値のみを取得します。
下記のようなGSIを作成し、`user1` の `user_status:active`を取得する処理を実装します。

▼GSI例
| userId(パーティションキー) | timestamp(ソートキー) | user_status |
|——–|————-|————-|
| user1 | 2024-11-07 | active |
| user2 | 2024-11-08 | active |

# 作るもの
– DynamoDBのテーブル:1つ
– GSI:1つ
– Lambda:1つ

# 書かない事
IAMの権限については本記事では記載しておりません。

# 1. Dy

元記事を表示

terraform プレフィックスリスト・セキュリティグループ作成

# 最初に

terraformを業務で使用することになりました。
そのため勉強したことをまとめています。

# terraform プレフィックスリスト作成
※値は意味のないものに変更しています。
※outputsも記載しないとtfstateファイルから値を取得できないため記載してください。

“`
# プロバイダーとプロファイルの指定
provider “aws” {
shared_credentials_files = [“~/.aws/credentials”]
region = “ap-northeast-1”
profile = “profile-name”
}

# プレフィックスリストの作成
resource “aws_ec2_managed_prefix_list” “prefix” {
name = “prefix”
# 設定IPアドレスの種類を指定
address_family = “IPv4”
# プレフィックスリストに含められる数の最大数

元記事を表示

Nginxでリバースプロキシを設定してfirewallを回避する

# 任意のポートで実行されているサーバーを特定のポートで外部公開
解放されているポートが固定の環境で、Nginxでリバースプロキシを設定して任意のポートで実行されているサービスを外部公開する方法。
以下の例はAWS Cloud9環境で、外部公開用のポートが8080でポート8000で起動しているサーバーを公開するためのリバースプロキシ設定である。

### 環境
Ubuntu 22.04環境で検証。

### Nginxのインストール
Nginxをインストールする。
~~~shell
apt install nginx
~~~

### Nginxの設定ファイルを編集
以下ファイルを編集する。

/etc/nginx/sites-enable/default
~~~
map $http_upgrade $connection_upgrade {
default upgrade;
” close;
}

server {
listen 8080 default_server;
listen [::]:8080 de

元記事を表示

HostedZoneNotEmpty 400: The specified hosted zone contains non-required resource record sets and so cannot be deleted.の対処法

症状

Route53のホストゾーンを削除しようとしたとき、下記のエラーが発生しました

“`terminal:error
エラーが発生しました
ホストゾーンを削除するには、最初に Zone Apex の NS および SOA リソースレコードセット以外のすべてのリソースレコードセットを削除する必要があります。
(HostedZoneNotEmpty 400: The specified hosted zone contains non-required resource record sets and so cannot be deleted.)
“`

解決策

エラーメッセージ通り、ホストゾーンのレコードを削除したら、ホストゾーンが削除できました

元記事を表示

AccessDenied 403: The resource hostedzone/hoge can only be managed through AWS Cloud Map の対処法

症状

Route53でホストゾーンを削除しようとしたとき以下のエラーが発生しました

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/927880/8587b1b3-1148-170d-97b7-7e3eec29a7f4.png)

“`terminal:翻訳
(アクセス拒否 403: リソース hostedzone/11111111 は、AWS Cloud Map (arn:aws:servicediscovery:ap-northeast-1:hoge) を通じてのみ管理できます)
“`

解決策

CloudMapコンソール画面に移動して、削除ボタンを押したら削除できました

参考

https://repost.aws/ja/knowledge-center/route-53-service-discovery-delete-zone

元記事を表示

SAA合格体験記 2024/11/1 受験

# 1.受験を決めた理由
現在私はデータエンジニアという立ち位置でITエンジニアをやらせていただいています。
使ってる技術スタックとしてはSnowflakeがメインであります。

Snowflakeのアーキテクチャの裏側ではS3を使っていたり、
AWSのコンピューティング様様な訳です。

直近の業務でゴリゴリにアーキテクトな仕事はしていないのですが、

インフラ基盤のAWSをセキュリティからサーバーレスのサービスまで幅広く知りたくなったということが受験の経緯です。

それとSIer業務にも興味があるので、将来の幅も広げたいなと感じたのも理由の一つです。

# 2.受験方法

私はPerson Vueを使ってテストを受験しました。
当日10時30分から試験開始だったので、30分前にログインして
諸々受付を済ませて、開始したのは大体10時15分くらいだったかなと思います。

## 2.1 事前にアプリケーションはインストールすべし
当たり前ですが、ネットワークが適合なのか、アプリケーションが正常に稼働するのかは必ず試しておく必要はあります。(公式から事前チェックはしてねという通知はありまし

元記事を表示

初心者向け:AWS CloudShellの便利な使い方とおすすめユースケース集

## はじめに
AWS CloudShellは、AWSユーザーがブラウザ上で簡単にコマンドライン作業を行えるサービスです。

:::note
サーバーやEC2インスタンスの設定は不要で、AWS環境内で必要な操作がすぐに始められます。
:::

この記事ではCloudShellの概要、使用場面、さらに具体的なユースケースを紹介し、利用のメリットを解説します。

## CloudShellとは
AWS CloudShellは、AWSが提供するブラウザベースのシェル環境です。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3662571/ce88c49c-7686-ea91-cb66-dd521adbc117.png)

AWSのCLIや各種プログラミング言語のインタプリタがすぐに利用できるため、インスタンスの作成や管理なしでAWSのリソースを操作できます。

:::note warn
**最初から設定済みのCLIやツールチェーンがあり、追加のセットアップなしで操作が可能です。**
::

元記事を表示

external-dns: TXTレコードの暗号化でDNS管理情報をセキュアに保つ

[前回の記事]では、external-dnsを使ってKubernetesリソースからAWS Route53のDNSレコードを自動生成する基本的な方法を紹介しました。その中で、external-dnsが管理に使用するTXTレコードが公開されてしまう点について触れましたが、本記事ではその解決策として、TXTレコードの暗号化機能の実装方法を詳しく解説します。

[前回の記事]: https://qiita.com/suin/items/4fad0e3335cd34a26382

## TXTレコードとRegistryについて

external-dnsは、DNSレコードの管理情報をRegistryと呼ばれる場所に保存します。このRegistryには、TXTレコード以外にもDynamoDBやAWS Service Discoveryなどを使用することができます。

TXT Registryを選択する利点は、これ自身がDNSのプロトコルにしか依存していないおかげで、クラウドベンダー固有のサービスを避けられることです。これによりベンダーロックインを回避しつつ、管理情報を保持することができます。た

元記事を表示

OTHERカテゴリの最新記事