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

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

Amazon DataZone のアカウント連携してデータ公開

Amazon DataZone における複数アカウントの関連付けを行った上で、ポータル内でデータ共有する流れを試してみました。(備忘録メモとしての記事となります。)

# Amazon DataZoneとは

Amazon DataZoneは、AWS、オンプレミス、サードパーティのソースに保存されたデータをカタログ化、検索、共有、管理するためのデータ管理サービスです。

Amazon DataZoneを使用して、組織間のデータアクセスを管理できます。

データのパブリッシュとサブスクライブのワークフローを提供しているので、これにより、データプロデューサーはアセットを、ドメイン内にデータカタログとして公開できます。
そして、データコンシューマーは、サブスクライプフローを通したアクセス制御メカニズムによって、カタログにあるデータにアクセスできるようになります。
Amazon DataZone では、さまざまなデータへのアクセス制御を一元化できるため、誰がどのデータをどのような目的で使用しているかを容易に確認することができます。

あともう1つ、Amazon DataZoneが支援するユ

元記事を表示

EC2のWindowsでPythonが認識されない

# はじめに
こんにちは、ユーゴです。MacでPythonをexe化したく、Windowsの環境を用意するために、AWSのEC2でWindowsのサーバーを立てて、そこから色々とやっていました。その時に、Pythonをダウンロードしてもうまく認識されなかったので、解決策を紹介します。

# 環境
EC2側の環境は、以下の通りです。
|項目|詳細|
|:-:|:-:|
|インスタンスタイプ|t2.micro|
|プロセッサ|Intel(R) Xeon(R)|
|システムタイプ|64-bit operating system, x64-based processor|
|エディション|Windows Serer 2022 Datacenter|

# 課題
Pythonをインストールしたが、pythonコマンドが認識されない。

“`bash
python -V
“`

“`
‘python’ is not recognized as an internal or external command,
operable program or batch file.
“`

# 解決策

元記事を表示

【AWS】S3のストレージクラスを変更してコストカットする

## はじめに
AWSのS3のストレージクラスはデフォルトではスタンダードが使用されています。ストレージクラスを変更することでコスト削減が期待できるため、今回はその変更について説明します。

## S3 ストレージクラスとは
データの保管場所をリビングの棚にするか、外の倉庫の奥にするかで取り出しやすさとコストが変わりますよってやつです。

データのアクセス頻度やユースケースに応じてコストを最適化するためのものです。アクセス頻度が高いデータは高速に返すことができ、アクセス頻度が低いデータはアーカイブして取り出しに時間がかかりますが保管料を抑えることができます。

## Intellijent Tiering(インテリジェントティアリング)
ほんの少しの管理料金を払うことで、殆ど使わないデータを外の倉庫にしまってくれてコストを下げられるサービスです。しかも取り出し時間はスタンダード(ミリ秒)と変わらずに利用できます。使う頻度が高くなったらリビングの棚に戻してくれます。

https://aws.amazon.com/jp/s3/storage-classes/intelligent-ti

元記事を表示

[ECS] CPUアーキテクチャ違いでクラスターのタスクが強制停止になってしまう件について。

# 目的
CPUアーキテクチャの違いを解決し、タスクが強制停止されないようにする

# 前提
– ECRにdocker イメージプッシュ済み
– タスク定義作成済み

# タスクが強制停止になってしまう?!
タスク定義を作成後、クラスターでタスクを起動設定しました
ただ、タスクがいつまでも実行中になりません
タスクのログを確認すると以下のようにエラーが出ています

“`
exec format error
“`

![タスクログ___Elastic_Container_Service___ap-northeast-1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2515002/a1688c9f-7c69-de1b-2e0c-d2763b2d82fc.png)

少し時間がタスクが停止してしまいました

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2515002/83876dd2-cbfb-34c

元記事を表示

スタートアップ/自社開発企業のWeb&データインフラ基盤でありそうな構成

# はじめに
スタートアップや自社開発企業でインフラ環境を0から構築する際、よくある構成を列挙してみました。
※この記事は個人の見解に基づいています。もし偏見があるように感じられたら、申し訳ございません。
※クラウドは、AWS前提とさせてください。

# 環境構成
dev, prod用のAWSアカウントが必要なので、二つあるといいかなと思いました。
理想は、金銭的に余裕があればですが、stg用のアカウントも欲しいです。

# IaC
Terraformが使いやすく、いいかなと思いました。
手動で実行した方が早いので、スキルさえあればそんなにヒューマンエラーが発生するものでもないです。
そのため、最初のうちは無理してGitHub Actionsなど使って自動化する必要はないかなと思ってます。

# コンテナリポジトリ
ECRがいいかなと思いました。
タグはlatestで管理せずに、GitHub ActionsのHash値で設定することで、障害対策やロールバックがしやすくなります。

# フロントサーバー
静的サイトやSEOを検討しない構成であればS3+CloudFront、SSRやSEO

元記事を表示

ECSについて理解した事をまとめた

# 概要
ECSの基本的な概念を理解していなかったので、自分なりにまとめてみました。

# ECS(Amazon Elastic Container Service)の特徴
– ECSは、コンテナ化されたアプリケーションの管理・運用を自動化する為の技術。この技術の事を**コンテナオーケストレーション**と言う
– 他のAWSサービスと連携する事で、コンテナを使用した大規模なサービスの構築が容易
– フルマネージドでコンテナを管理してくれる

## AWS上でのコンテナ実行における選択肢
コンテナオーケストレーションは、「**コントロールプレーン**」と「**データプレーン**」という2つの概念から成り立っている

**コントロールプレーン** : コンテナを管理する為のサービス
– **ECS**
– **EKS**

ECS、EKSには、オーケストレータと言う機能が備わっており、この機能でコンテナの管理を行なっている

ECS Scheduled TasksをTerraformとSpring Bootで作る

ECS Scheduled Tasksは公式ドキュメントの内容が少ない上に、マネジメントコンソールでの手順しか書いていなかったので苦戦しました。なんとか動かせたので共有します。

# 環境
– macOS 14.5 (Intel版)
– Terraform 1.7.5
– Terraform AWS Provider 5.49.0
– Spring Boot 3.2.5
– JDK 21
– OrbStack 1.5.1

# アプリ
## ソースコード
“`java:BatchApplication.java
@SpringBootApplication
public class EcsTestBatchApplication {

private static final Logger logger = LoggerFactory.getLogger(EcsTestBatchApplication.class);

public static void main(String[] args) {
String param1 = System.get

[AWS IAM] CloudWatch Log への Logging の権限を忘れずに作ろう

よく作り忘れて、Terraformで何度も作り直している気がする。

## 必要となる例

– `ECS task execution role —> CW logs`
– `Lambda role —> CW logs`

## 必要となる権限

以下の権限をrole内に含めてやる。

“`tf
{
Action = [
“logs:CreateLogGroup”
]
Effect = “Allow”
Resource = “arn:aws:logs:us-east-1:111111111111:*”
},
{
Action = [
“logs:CreateLogStream”,
“logs:PutLogEvents”
]
Effect = “Allow”
Resource = “a

FSxを使用したAutoScaling構成を作りたい

# Amazon FSx for Windows File Server使い方を勉強する

##### はじめに

AWSのファイルストレージサービスには様々なものがあります。

Linux環境におけるEFS(Amazon Elastic File System)の活用をしたことはありましたが、Windows Server環境でのファイルストレージサービスであるAmazon FSx for Windows File Serverを活用した経験は少ないので検証してみました。結構ハマったのでまとめてみます。

##### やりたかったこと
不特定多数の利用者が使用するWebシステムを想定します。
負荷に応じてEC2の台数を変動させるAutoScaling構成としましょう。

Windows ServerなのでWebサーバとしてIISを使います。
IISのコンテンツディレクトリにFsXを指定することで、AutoScalingによるスケールアウトが行われた際に、 スケールアウトしたサーバは常に最新のコンテンツを応答できるよう出来るんじゃないか。という検証です。

#### 構成図
![i

EKS CoreDNSアドオンの Autoscalerを試してみる!

EKS CoreDNSアドオンのAutoscaling機能が5/15にGAされました!

https://aws.amazon.com/jp/about-aws/whats-new/2024/05/amazon-eks-native-support-autoscaling-coredns-pods/

EKS CoreDNSアドオンとは、EKSクラスタを構築すると自動でデプロイされるCoreDNSの事を指しています。

EKSにとってCoreDNSはクラスタ内のコンテナ(Pod)間通信を行うためのkind:Serviceの名前解決などに使用される非常に重要なコンポーネントです。

特にマイクロサービスアーキテクチャの場合、サービスが増える事でコンテナ間の相互接続が指数関数的に伸びていくため、CoreDNSのキャパシティ管理はEKSクラスタの安定稼動のために非常に重要なタスクでした。

今回のリリースでCoreDNSアドオンがAutoscalingをサポートする事になりましたので、クラスタ管理者はCoreDNSのキャパシティ管理から開放される事になります。とてもありがたい機能です

localstackについて理解する(lambda版)

# ローカルスタックとは
localstcakとは、AWSのクラウドサービスをローカル環境でエミュレートするためのツールです。

例えば,AWSを使用したサービスを開発している際に,AWSを使用したapiなどのテストを行いたい時があります.その時に,実際にAWSのサービスを使用するとコストがかかってしまうため,ローカル環境でAWSのサービスをエミュレートすることで,コストを抑えることができます.

:::note info
mockとやっていることは同じなので,コスト削減以外にもテストを行う際は使うと便利です!!
:::

# ローカルスタックの構成
ローカルスタックは,数多くのAWSサービスをエミュレートすることができます.
今回はlambdaに関してやっていこうと思います.

:::note info
s3のみを使う場合ではminioを使う方が便利かも知れません.
:::

まずはこのドキュメントを参考にして,作っていきます.
環境はdockerを使って構築します.

https://docs.localstack.cloud/user-guide/aws/lambda/

#

アスペクト指向プログラミング(AOP)とAWS CDK

アスペクト指向プログラミングについて学習したので、AWS CDKでどのように利用されているか調査しました。

## アスペクト指向プログラミング(AOP)とは
Aspect Oriented Programming(AOP:[アスペクト指向プログラミング](https://e-words.jp/w/AOP.html) )とは、プログラミングの概念の一種です。簡単に言うと、共通処理を抜き出して、プログラム中の様々な箇所で横断的に呼び出すことです。
例:ログ出力等

アスペクト指向プログラミングは、JavaのSprigというフレームワークでよく利用されています。以下サイトのJavaに、SprigフレームワークでAOPを実現する場合の分かりやすい解説が載っています。

https://qiita.com/ughirose/items/a7c66782f93cd1ae0d68

このサイトではJavaの[アノテーション](https://e-words.jp/w/%E3%82%A2%E3%83%8E%E3%83%86%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3.ht

AWS BackupでEBS/RDS/S3のバックアップを取得してみた

# はじめに
お疲れ様です。yuki_inkです。
AWS Backupについて調べる機会があったので、トライ&エラーを含めて記事としてまとめておきます。

今回の設定にあたり参考にした手順は以下です。
クラメソ様、いつもありがとうございます!!

https://dev.classmethod.jp/articles/aws-backup-for-ec2/

# 下準備

今回はAWS Backupによるバックアップの取得対象として、EBS、RDS、S3を対象にしてみます。

– EBS
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/731275/cf94633a-117c-36b1-d43f-b9c10263a0da.png)
– RDS
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/731275/6ec8c920-9f1b-1db3-ad36-ee8664d220cd.png)

CodeBuildでCodeCommitにタグをプッシュしてみた

# はじめに
ソースビルドした段階でCodeCommitにタグを発行したかったのでいろいろいじってみた。
シンプルにそれだけやってみた、短め備忘録

## 前提条件
CodeBuildの構築は終わっている。
CodeBuildのほとんどのステージ処理の記載も終わっている。

## やったこと
1.post_buildステージにGitタグ作成用のシェルを用意して、呼び出しした

“`yaml
post_build:
on-failure: ABORT
commands:
– export RELEASE_DATETIME=$(date +”%Y%m%d%H%M%S”)
– ./script/git_create_tag.sh
“`
2.スクリプトの中身を書いた

“`bash
dir = “Gitを取ってきた、適当な場所に”
cd $dir
# もっといいものがあるはずだが、emailとかとかは必要
git config user.email “codebuild@example.com”
git config user.name

CIS AWS Foundations Benchmark v3.0.0 の変更点

## はじめに
2024/1/31 にリリースされた CIS AWS Foundations Benchmark が v3.0.0 について、v2.0.0 からの変更内容をまとめました。

:::note info
解説部分の記載は私見や所感などを含みますのでご注意ください。完全な変更内容は CIS AWS Foundations Benchmark v3.0.0 の PDF をご参照ください。
:::

直近では AWS Security Hub でも CIS AWS Foundations Benchmark v3.0.0 の標準が利用可能になっています。

https://aws.amazon.com/jp/about-aws/whats-new/2024/05/aws-security-hub-3-0-cis-foundations-benchmark/

v2 → v3 はメジャーバージョンが上がった一方で、以外にも新規に追加された項目はなく、削除や軽微な変更に留まっているように見受けられます。以前より Security Hub でチェック可能だった v1.4.0 から、 v

AWSを初めて触る人必見!! 実際に構築してわかる!AWS勉強法

みなさんこんにちはびび丸です。
今回はAWSを勉強してみたいけど何からやればいいかわからない、そんな人に読んでほしい記事です。

僕もAWSについて何も知らない状態からこの方法でスタートし、無事AWS資格を取得することができました!

# 読んでほしい人
* AWSって聞いたことあるけどどんなサービスか知らない
* どんなものかある程度は知っているが使い方がわからない
* AWS認定資格を取りたいけどその前に基礎を実際に手を動かして学びたい
* なんでもいいからIT系の知識を学んでみたい

上記のようなAWSを学びたいけど全く触ったことのない人、またAWSとは何かを知りたい人に読んでもらいたいです!
# 本題
もったいぶってもしょうがないので結論から書いちゃうと

**Udemyでハンズオン動画を視聴しながら一緒にAWSを触ってみる**

です。
# ハンズオンって何
ここでハンズオンとは何ぞや?ってなる方もいらっしゃるので説明しておきます。

ハンズオンとは受け身として何かを学ぶのではなく、実際に手を動かして自分でシステムを作っていく

36日目 ECSについてまとめてみた社畜L

## 🔎はじめに
ついに僕の番が回ってきたね…
今回はECSについてSAAの出題範囲内でまとめていこうと思う。

## 🔍ECSってなに?
DockerコンテナをAWS上で管理(運用、管理)するサービスのこと。
これだけでは全く分からないと思うので、詳しく説明していくよ。

## 🔎どう便利なの?
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3766505/3bfbb54c-f2e4-3ab9-9c1c-744913c27c20.png)

## 🔍さっきから言ってるコンテナってなに?
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3766505/101b05f2-b151-a8f7-0152-ae20536734e6.png)
上記のイメージのように実行環境をパッケージ化したもので、
コンテナでアプリの実行をするよ。

具体的に何がセット(パッケージ)になっていて、どうやって動いて

Amazon S3の各バケットの使用量一覧取得シェルスクリプト

aws s3 ls でも使用量取得できるけど、オブジェクト数が多い場合にエコじゃないので違うやり方。
多分こんな感じ。
リージョンは必要に応じて追記してください。

“`shell
#!/bin/sh

# 直近の値が分かれば良いので前日を指定
ymd=$(date ‘+%Y-%m-%d’ –date ‘1 days ago’)
start_time=”${ymd}T00:00:00Z”
end_time=”${ymd}T23:59:59Z”
period=86400

# 数値を人に優しくするよ
human_readable() {
# 小数で渡ってくるので整数化
num=$(echo $1 | awk ‘{printf(“%d\n”,$1)}’)

# 単位
units=(B KB MB GB TB PB EB ZB YB)

# 判定用の閾値
thresholds=(1 1024 1048576 1073741824 1099571627776 1125899906884629 1152921504606846976 11805916207174113

CloudFormationとPyplateを使ってSecurityGroupのIngressに指定したIPアドレスを登録しよう!

## 概要
CloudFormationマクロの一つであるPyplateを使うことでCloudFormationテンプレート(yaml)内にPythonのコードを実行することができます
今回はPyplateを使ってSecurityGroupのIngressに指定したIPアドレスを登録する方法を例に解説します

## 前提
– VPCを作成済み
– 今回はPythonを使用します

## Lambdaを格納するS3バケットの作成
S3内のzipファイルからLambdaを実行するためのS3バケットを作成します
S3内のファイル群は公開したくないのでPublic Accessを全てブロックします

“`lambda-archive-s3.yml
AWSTemplateFormatVersion: 2010-09-09
Description: “S3 Bucket Stack For Account Setup”

# ————————————-
# Metadata
# ———————————–

Bedrock のガードレールを日本語で確認する

Bedrock のガードレール機能なるものの振る舞いを日本語で確認していきます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3573242/9f61fd95-39b5-9ea5-ca6e-e04ff552e5aa.png)

説明や設定は以下の記事が詳しいです!

https://qiita.com/hayao_k/items/45fef3047bf050b7ff34

# お試しプログラム

“`Python:guardrail.py
import boto3
import json
import streamlit as st

st.title(“ガードレールのテスト”)
guardrailIdentifier = st.text_input(“ガードレールのIDを入力してください”)
use_model = st.selectbox(“使用するモデルを選択してください”,(“Sonnet”,”Haiku”))
system_prompt = st.text_input(“