AWS関連のことを調べてみた2022年11月29日

AWS関連のことを調べてみた2022年11月29日
目次

GitHubActionsのself-hosted機能を使ってAWS EC2でCI/CDしてみる

# はじめに
CI/CDしてますか?
GitHubActionsにはself-hosted機能があり、これを使うと任意のサーバーでGitHubActionsを動作させることが出来ます。
普通に使う分にはこんなことをする必要は無いんですが、開発が活発になってくるとGitHubActionsの無料利用枠の上限を超えてしまう可能性があります。
調べた感じ、無料利用枠を超えた場合の対処策は大きく2つあります。

– 自前でサーバーを用意して、そこでGutHubActionsを動作させる
– おとなしく超過分の料金をGitHubに支払う

そこで今回は前者の対応をしてみたので、その備忘録になります。具体的にはGitHubActionsのself-hosted機能を使ってAWS EC2でCI/CDしてみたいと思います。
自前で用意するサーバーはオンプレミスである必要はなく、クラウド環境でも良いのでEC2を選択しました。

# EC2の起動
まずは自前サーバーとしてEC2を用意します。
なお、画面のキャプチャでは個人情報やよくわからない乱数が表記された部分等を一部マスクしています。

まずはEC2の

元記事を表示

AWS FIS がネットワーク接続中断をサポート

# 概要

AWS FIS がネットワーク接続中断をサポートしたとのことで、いくつか試してみました。

https://aws.amazon.com/jp/about-aws/whats-new/2022/10/aws-fault-injection-simulator-network-connectivity-disruption/

スコープは以下が対応しているようです。

– **all**– すべてのトラフィックを拒否します。
– **availability-zone**– 他のアベイラビリティーゾーンのサブネットとの間の VPC 内トラフィックを拒否します。
– **dynamodb**– DynamoDB との間のトラフィックを拒否します。
– **prefix-list**– 指定されたプレフィックス リストとの間のトラフィックを拒否します。
– **s3**– Amazon S3 との間のトラフィックを拒否します。
– **vpc**– VPC に出入りするトラフィックを拒否します。

サブネットに対してアクションを実行できるようです。

– **aws:ec2:su

元記事を表示

【初心者】SageMakerを調べてみた

# 背景
私は、現在データエンジニアリングを生業としています。普段は、データ基盤の構築や、パフォーマンスチューニングなどビックデータに関する業務に従事しています。
ビックデータの収集や、蓄積、分析などの環境構築の経験はそこそこありますが、機械学習による予測や分類などのスキルは持ち合わせていませんでした。
今まで機械学習を避け続けてきましたが、一念発起し学ぼうと思います。

今回は、SageMakerについて調査と環境構築を通して理解を深めようと思います。

# まとめ
– SageMakerは、フルマネージドな機械学習サービスで、モデルの構築・トレーニング・デプロイまでをカバーします。
– またJupyter Notebookによりデータ分析にも利用できる
– アルゴリズムは、SageMaker独自のものに加えて一般的なものも提供します。
– 機能は以下の通りです。(ドキュメントをコピペしています。)

| 機能| 説明 | 備考|
|:–|:–|:–|
|SageMaker Studio|モデルの構築、トレーニング、デプロイ、分析をすべて同じアプリケーションで実行できる、統合さ

元記事を表示

Aurora の Blue/Green デプロイ(ベータ版)で少し遊んでみた

こちら↓について、Aurora で軽く遊んでみたらいくつか途中でハマったのでメモを残しておきます。

– **[【衝撃】AWSのRDSがデータを失わないBlue/Greenデプロイに対応しました](https://dev.classmethod.jp/articles/rds-bg-deploy/)(DevelopersIO)**

https://dev.classmethod.jp/articles/rds-bg-deploy/

## 1. Aurora MySQL v1 のクラスタを用意

「あれ? 2022/09/27 で新規クラスタは作れなくなったんじゃ…?」と思うかもしれませんが、これを書いている 2022/11/29 時点ではまだ作れます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/123899/47049173-85e4-a041-be50-a310a8924ec8.png)

なお、データは **[Sakila Sample Database](https://

元記事を表示

Amazon CloudWatch Internet Monitor を使ってネットワークパフォーマンスを監視する

# 概要

* re:Invent 2022の直前に発表された **Amazon CloudWatch Internet Monitor** なる機能について実際に試しつつ、どんな機能かをまとめてみました。

https://aws.amazon.com/jp/about-aws/whats-new/2022/11/amazon-cloudwatch-internet-monitor-preview/

# Amazon CloudWatch Internet Monitor とは

* **Amazon CloudWatch** の新規プレビュー機能として発表されたのが、**Amazon CloudWatch Internet Monitor** です。
* ざっくり要約すると、**Amazon Virtual Private Cloud (VPC)**、**Amazon CloudFront ディストリビューション**、**Amazon WorkSpaces ディレクトリ** を通してアプリケーションのパフォーマンスを監視する機能になります。
* パフォーマンス?と言っても何を見れ

元記事を表示

【AWS】VSCode Remote-SSH+EC2な開発環境を安く安全に作る〜2. スポットインスタンス用起動テンプレート作成〜

今回から実際の手順を解説していきます。今回実施するのは以下の内容です。
1. データ保存用のEBS作成
1. スポットインスタンス起動時に呼び出すスクリプト作成
1. スポットインスタンスにアタッチするIAMロール(インスタンスプロファイル)作成
1. 起動テンプレート作成

# 前提条件
* スポットインスタンスを起動するVPCおよびプライベートサブネット、NATGateway(NATインスタンス)は構築済み
* スポットインスタンスに利用するAMIは構築済み
* AMIにはSSMエージェントをインストール済み

# データ保存用のEBS作成
以下から開発用のスポットインスタンスでデータ保存先として利用するEBSを作成していきます。ボリュームタイプやサイズ等は自由に選択して大丈夫ですが、アベイラビリティゾーンは後に作るスポットインスタンスと揃えないと利用できないので注意してください。
https://ap-northeast-1.console.aws.amazon.com/ec2/home?region=ap-northeast-1#CreateVolume:

![スクリーン

元記事を表示

自己学習記録:CodeCommit を SourceTree で使えるように

# 背景
業務で AWS や JavaScript などが必要になった、おじいちゃんの学習記録。

Azure DevOps 使いたいなとか思ったら、AWS にも当たり前のように Git があったので、使えるように。

# 設定方法
https://docs.aws.amazon.com/ja_jp/codecommit/latest/userguide/setting-up.html

なんか、色々ある・・

SSH は苦手なので、簡単なものがいいなぁとみてみたところ・・

https://docs.aws.amazon.com/ja_jp/codecommit/latest/userguide/setting-up-https-unixes.html

認証情報ヘルパーを使うと、簡単そうな感覚だったので、これにしてみる

# 作業

– AWS CLI インストール
– 自宅ではやってなかったので改めて

https://docs.aws.amazon.com/ja_jp/cli/latest/userguide/getting-started-install.html#g

元記事を表示

Finch を簡単なコードでまとめてみた(自作)

## Finch を自作してみた

最近 AWS が OSS と公開した Finch ですが、その Finch のソースコードを追ってみたら、`nerdctl` と `limactl` をコマンドで叩いているだけの簡単な CLIアプリ に見えました。
なので、そのコードを Javascript で再現してみました。

Finch の大まかな内容は、

https://qiita.com/yoshii0110/items/692018729b5b2f41b9ac

Finch のソースコードの説明は、

https://qiita.com/YmBIgo/items/96218278f40ec0f3d83b

にあります。

## 使い方

まずは、

https://github.com/YmBIgo/mini-finch/blob/master/requirement.bash

の内容を、

“`bash
source requirement.bash
“`

でインストールします(現状は lima だけですが、今後も増えるかもしれないので…)。

Finch は CLI と

元記事を表示

npm run start実行した際、scriptsのprestartを先に実行させる

## 背景
ローカルで色々と遊びたい。
ただ、AWS上の本番環境への影響は避けたい。
また、コマンドの入力も極力減らしたい。
そういう時に使えるTIPS。

復習もかねて、アウトプットしてみる。

## 前提
* Node.js(v16.14.2)
* VSCode
* AWSアカウント

## 結論から先に

package.jsonのscriptsを以下のように設定し、
コマンドで`npm run start`を実行すると、
実は`start`が実行される前に、`prestart`が実行される。

“`package.json
“scripts”: {
“prestart”: “setx AWS_PROFILE kenny_test”,
“start”: “env-cmd -f .env npm run start-without-env”,
“start-without-env”: “nodemon ./index.js”,
}
“`
流れとしては、以下のようになる。

1.`npm run start`をコマンドで実行
2.scriptsの、`

元記事を表示

Amazon ECSの新機能「サービスコネクト」って何? Cloud MapやApp Meshとどう違うの?

まだ[re:Invent 2022](https://reinvent.awsevents.com/)開催直前ですが、フライング気味にいくつものAWSアップデートが早くも発信され始めています。
今回はその中でも **「マイクロサービス間の通信を簡単にしてくれる新機能、ECSサービスコネクト」** を日本語で少しだけ紹介してみます。

https://aws.amazon.com/jp/blogs/aws/new-amazon-ecs-service-connect-enabling-easy-communication-between-microservices/

# 前提知識のおさらい

### ECSって何でしたっけ?
AWS上で提供されているコンテナオーケストレーションサービスです。
コンテナの商用運用に不可欠な統合管理の仕組みを提供してくれます。

https://aws.amazon.com/jp/ecs/

世の中的には代表的なOSSとして[Kubernetes](https://kubernetes.io/docs/concepts/overview/)などがあり、これ

元記事を表示

Amazon RDS for Oracle と Amazon Elastic File System (EFS) 統合を試してみた

# はじめに
2022/11/14に[「Amazon RDS for Oracle が Amazon Elastic File System (EFS) 統合のサポート」](https://aws.amazon.com/jp/about-aws/whats-new/2022/11/amazon-rds-oracle-amazon-elastic-file-system-integration/)が発表された。

RDS for Oracleにおいて、今までexpdp/impdpは基本的にはS3統合を利用した形でしか行えなかったが、このアップデートを受けて直接ファイルシステムに出力ができるようになり、ダンプファイルの他サーバとの受け渡しが容易に行えるようになった。

# RDSとEFSとの統合
RDSをEFSと統合するためには、いくつか制限がある。
制限等についての詳細は[ユーザガイド](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/oracle-efs-integration.html)に記載があるが、以下となる。
1.

元記事を表示

Finch の内部実装を見てみた。

## 今 話題になっている Finch

https://qiita.com/yoshii0110/items/692018729b5b2f41b9ac

などを見ていただければ分かりますが、Finch は `ローカルマシン上に仮想環境とコンテナランタイム、ビルドツールなど一式を楽〜に導入` できるツールになっています。
そのコードが

https://github.com/runfinch/finch

にあります。
コードは Go で書かれていて、Cobra(Go の CLIツール)を使って CLIのコマンドラインを作っています。
簡単に言えば バージョン 0.1.0 の名前から分かるように、Cobra で nerdctl や lima を呼び出しているだけの簡潔な内容に見えます。

それでは、その内容を見てみましょう。

## Cobra のエントリーポイント

Cobra の説明は、

https://zenn.dev/tama8021/articles/22_0627_go_cobra_cli

を参照してみて下さい。

Cobra のエントリーポイントは、`finch/c

元記事を表示

CodeBuildでdocker buildして別アカウントのECRにdocker pushするまで

意外とハマりどころが多いと思ったので書いておく。

まず、アカウントAとBがあるとして、AのCodeBuildでdocker buildを実行してBのECRにdocker pushしたい状況を考える。

最初に、AのCodeBuildにBのECRを操作する権限を与える。AとBにそれぞれこういうRoleを作成する。B側のRoleには`AmazonEC2ContainerRegistryPowerUser` をつけておく。

“`json:アカウントA_CodeBuildに付与するロールのポリシードキュメント
{
“Version”: “2012-10-17”,
“Statement”: [
{
“Effect”: “Allow”,
“Action”: “sts:AssumeRole”,
“Resource”: “arn:aws:iam:::role/ECRRoleForCodeBuild”
}
]
}
“`

“`json:アカウント

元記事を表示

[AWS]sts assume roleの一時クレデンシャル発行&設定をワンライナーでやってみた

# はじめに
AWSでSwitch Roleやサービス間のクロスアカウントアクセスを実現するために、IAMロールを使用したアクセスの委任が必要で、そのための一時クレデンシャルの発行をaws cliで行うケースもよく出てくると思います。
aws cliを使った一時クレデンシャルの発行と設定にはいくつかの方法があるかと思いますが、コマンド一行で、つまりワンライナーで実現できないかについて調べてみました。

# やりたいこと
例えば、以下のようにアカウントAのEC2インスタンスから、アカウントBのAWSリソース(S3やDynamoDBなど)にアクセスしたいとします。
![Screenshot 2022-11-28 at 17.55.20.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2954734/7f134344-d4cf-02dc-bd82-a9d20f201a56.png)
IAMポリシー等の説明は割愛しますが、この場合、以下の流れになると思います。
1. 権限を引き受けるEC2インスタンスプロファイル

元記事を表示

CloudFormationでパブリック、プライベートどちらにも対応したEC2を構築する方法

# CloudFromationとは
CloudFormationはプログラミング言語やYAML,JSONを使用してAWSリソースを構築出来、AWS環境をテンプレート化しておくことで、同じ環境を作成する際に時間を削減することができます。

今回はYAMLで作成していきますので、JSONに変換したい方は次の記事をご参照下さい。
YAMLからJSONに変換する方法

## 完成したテンプレート
“`:テンプレート
AWSTemplateFormatVersion: “2010-09-09”

Metadata:
AWS::CloudFormation::Interface:
ParameterGroups:

Label:
default: EC2
Parameters:

元記事を表示

AWS CloudFrontについてmemo

## はじめに
アプリケーションのパフォーマンス改善の一つとして
cloudFrontを導入しようとしている。

そのために個人的に調べたことをメモするための記事です

## 参考

https://docs.aws.amazon.com/ja_jp/AmazonCloudFront/latest/DeveloperGuide/Introduction.html

## AWS CloudFrontとはなんぞや
静的、動的コンテンツを迅速かつ安全に配信できるコンテンツデリバリネットワーク(CDN)サービス

### CDN とはなんぞや
コンテンツをスピーディーに配信できるようにしたネットワーク。
コンテンツの大容量化が進んでネットワーク負荷が高くなりwebページ表示に時間がかかる、コンテンツダウンロードに時間がかかるという問題を解決する。

##### 仕組みとしては?
世界中にあるエージサーバーから各ユーザーの地理的に近い場所(エッジ)にあるサーバーから配信される。
各サーバーには静的コンテンツがキャッシュされている。

### DNSの設定
通常DNSでAレコードで行き先を設定す

元記事を表示

FSx for WinでHDDを利用する時はIOPSに注意

# はじめに
[FSx for Windows File Server](https://aws.amazon.com/jp/fsx/windows/)は簡単にCIFSファイルサーバを立てられる便利なファイルサーバマネージドサービスです。HDDを利用すると価格もリーズナブルで、実はHDD/SingleAZの場合Standard S3よりも安く利用できます。一方、HDDはIOPSの制限値が厳しめなので注意が必要です。今回は、機能とIOPSにフォーカスして説明していきたいと思います。

# HDD利用時の価格とIOPS
**ポイント**
スループット予約によりインスタンスとしての最大性能が決まるが、HDDを使う場合は、その前に限界が来る

**説明**
FSx for Winodws File Serverの課金は、スループット予約料、容量利用料とデータ転送料で構成されています。データ転送は他のAWSサービス同様、同一AZ内の通信は課金されません。バリエーションとして、シングルAZ or マルチAZ、SSD or HDDの4パターンに対し、必要なスループットを予約する形となります。(スルー

元記事を表示

えぇ? Aurora&RDSがBlue/Greenデプロイをフルマネージドで提供してくれるように!?

まだ[re:Invent 2022](https://reinvent.awsevents.com/)開催直前ですが、フライング気味にいくつものAWSアップデートが早くも発信され始めています。
今回はその中でも **「Aurora&RDSにおけるフルマネージドなBlue/Greenデプロイ」** を日本語で先行紹介してみます。

https://aws.amazon.com/jp/blogs/aws/new-fully-managed-blue-green-deployments-in-amazon-aurora-and-amazon-rds/

# アナウンス概要

### 背景

– データベースを更新する際、リスクとダウンタイムを極小化するためにBlue/Greenデプロイが有効な戦略となる。ただしBlue/Green双方のDBを常時同期しておかないと、安全なB/Gデプロイが出来ない
– AuroraやRDSではこれまでもクローン機能やリードレプリカ昇格機能を組み合わせてセルフサービスでB/Gデプロイを実現することができたが、手順が複雑でコストも掛かるため対応が後回しにされがちだ

元記事を表示

DynamoDBで柔軟な検索をする

# この記事の目的

Amazon DynamoDB(以下DynamoDBと記載)の可用性や書き込みのスループットの高さには大変魅力を感じています。

しかしながら、RDBとは全く異なる発想での設計が必要な点や、検索処理の自由度の低さに対しての有効な手立てを持ち合わせていない(スキルの問題)などがあり、なかなか実案件で採用するに至っていません。

そんな折に、とあるセミナーでDynamoDBの設計ノウハウを学ぶことが出来ましたので、その内容を自分なりに整理するためにこの記事を書きました。
(なお、セミナー主催者には本内容を記事で公開してよい旨の了解をいただいています。)

# 試したこと

試したことは大きく2つあります。

1. 転置インデックスを用いて、ある程度複雑なデータモデルを1テーブルで処理する

2. パーティションキーの属性で前方一致検索をする方法を模索する

# 表記ルール
DynamoDBの用語については、文末の公式サイトに合わせています。
一部、略記をしている箇所を補足します。
* パーティションキー [PK] と略記
* ソートキー [SK] と略記 
* グ

元記事を表示

AWS Certified Cloud Practitionerに合格するまでにやったこと

はじめに

2022年11月26日に合格しました

![スクリーンショット 2022-11-28 10.17.01.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2749681/692cde7e-5d2f-727b-c821-4b799cb18e89.png)

勉強期間と資格受ける前のスキル

勉強期間は、10月17日ぐらいからスター
大体1日2時間ぐらいでした。
AWSは実務では、なかなか触ってないですが、インフラの勉強したかったのでAWSから始めてみた感じです。

勉強方法

①Udemyで模擬試験を3周ほどやりました。
そこで模擬試験結果時に不正解だった問題の解説を見て理解するを繰り返しました。

【2022年版】この問題だけで合格可能!AWS 認定クラウドプラクティショナー 模擬試験問題集(8回分520問)

②下記のサイトで

元記事を表示

OTHERカテゴリの最新記事