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

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

【Terraform】Data Sources と Resource の違いとは?

## はじめに
Terraform の Data Sources と Resource の違いについて考えることがあったので、記事として残しておきます。

## Data Sources と Resources

### Data Sources とは?
– Data Sources を定義することで、Terraform の外部で定義された情報を参照することが可能
– 読み取り専用のリソース

#### 記述例

“`terraform
data “aws_ami” “example” {
most_recent = true

owners = [“self”]
tags = {
Name = “db-server”
Tested = “true”
}
}
“`

### Resource とは?
– Resource を定義することで、Terraformで管理するリソースを定義することが可能
– 例: インスタンスやネットワーク設定等

#### 記述例

“`terraform
resource “aws_s3_bucket” “

元記事を表示

【AWS】M1 MacOSでDockerイメージを作成し、ECS Fargateでタスク実行すると「standard_init_linux.go:228: exec user process caused: exec format error」のエラーメッセージが出た

# 解決策
Dockerイメージをビルドする際に、`–platform`オプションでどのプラットフォーム (OSおよびCPUアーキテクチャの組み合わせ) に対応したイメージを作成するかを指定する。

“`
docker build –platform=linux/amd64 -t [タグ名] .
“`

ビルド後にECRへDockerイメージをプッシュし、ECSのタスクを実行すると無事に処理が完了した。

このオプションにより、「マルチCPUアーキテクチャ」に対応したイメージのビルドができる。
他には、`–platform amd64`の指定でも解決するようである。

# エラーの原因
Dockerイメージを作成したM1 MacOSと、ECSでコンテナが動くFargateのCPUアーキテクチャが違うためにエラーとなった。
つまり、今回のエラーは、イメージをビルドしたマシンと、コンテナを実行するマシンのCPUアーキテクチャが異なるために発生する。

ECRのリポジトリにAWSマネジメントコンソールからアクセスすると「プッシュコマンドの表示」というボタンがあり、ECRリポジトリへ

元記事を表示

Amazon EventBridgeのクイックスタートでStripeのWebhookイベントを簡単に処理できるようにする6Step

複数の決済手法をサポートすると、「どのタイミングで顧客が支払いを完了したか」を把握することが難しくなります。

その場で決済が完了するケースの多いクレジットカードやApple / Google Payに対し、銀行振込やコンビニ決済などでは入金が完了するまで数日かかるケースも存在します。

決済以外にも、サブスクリプションの契約更新やカード情報の有効期限切れ、トライアルの終了など様々なイベントがオンライン決済では発生します。

## 入金タイミングやサブスクリプションに関するイベントを、Webhookイベントとして一本化する

Stripeを利用する場合、このような決済に関するイベントを、Webhookイベントとして処理することをお勧めしています。

「決済方法ごとにステータスを確認するシステムを用意する」のではなく、「決済が完了したことを、Webhookイベントで受信したら処理を行う」形にすることで、様々な場面・決済方法をサポートできます。

## Amazon EventBridgeを利用した、Webhookイベント受信システムの簡単セットアップ

Webhookイベントの受信方法

元記事を表示

AWS SSO CodeCommit+SourceTreeを利用する方法

# はじめに
AWS SSOで管理している AWSアカウントのCodecommitからクローンしたり
クローンしてきたリポジトリをSourceTreeから操作できるようにする為の
備忘録的な記事です。

# 環境
– MacOS
– git
– aws-cli

# 利用サービス
– AWS
– Codecommit

– その他
– SourceTree

# 前提
– 対象AWSアカウントのCodecommitへ リポジトリが作成されている事
– 対象AWSアカウントの認証情報が`aws configure`で設定されている事

# 手順
## 1. Git Configの設定書き換え

下記コマンドを実行し、Git認証情報ヘルパーがAWS認証情報プロファイルを使用するよう指定

“`
$ git config –global credential.helper ‘!aws codecommit credential-helper $@’
$ git config –global credential.UseHttpPath true
“`

元記事を表示

災害復旧の考え方、DR(ディザスタ・リカバリ)戦略について

AWS の資格試験でよく出てくる DR(ディザスタ・リカバリ)戦略についてまとめ、どういう要件の時にどの戦略を取るべきかを把握できるようにします。
主に AWS の公式ブログに書かれている内容を元に自分なりにまとめていった資料となります。
内容は濃すぎずなんとなくわかる程度に書いたものなのでもっと詳しく知りたい方は参考情報のリンクから AWS の公式ブログを確認してください。

# そもそも DR 戦略とは?

DR とは **ディザスタ・リカバリ** の略で **災害復旧の戦略** についてのことを指します。
災害復旧方法はどういう戦略をとるかは **企業の状況やサービスの特性** によって決まるのでいくつかのパターンを把握しておきどの戦略で行くべきかを判断できるようになっておくことが大切でしょう。

# DR 戦略を決めるうえで必要な考え方

DR 戦略を決めるうえで知らなくてはいけない考え方といくつかの用語があるのでしっかりと押さえておきます。

![business-continuity.png](https://docs.aws.amazon.com/ja_jp/

元記事を表示

.NET 6とVS CodeでAWS Lambdaする

## 前提
– AWS CLI設定済み

## 環境構築

### VS Code
– C# for Visual Studio Code
C#開発環境

### dotnet系
– .NET6 SDK
公式からインストーラー落としてきて入れる。
https://dotnet.microsoft.com/ja-jp/download/visual-studio-sdks

– lambda開発用のテンプレート
“`powershell
dotnet new -i Amazon.Lambda.Templates
“`

– デバッグツール
“`powershell
dotnet tool install -g Amazon.Lambda.TestTool-6.0
“`

– デプロイツール
“`powershell
dotnet tool install -g Amazon.Lambda.Tools
“`

## やってみる

### プロジェクト作成
“`powershell
dotnet new lambda.EmptyFunction –name MyFunctio

元記事を表示

【AWS】ACMでSSL証明書を発行する方法と注意点(コンソールの画像付きで解説)

## 背景
– AWSでSSL証明書を取得するときには[ACM](https://aws.amazon.com/jp/certificate-manager/)を利用する。
– ACMでSSL証明書を取得する時に、ワイルドカード表記のドメインでの証明書を取得し忘れてしまい、[Route53](https://aws.amazon.com/jp/route53/)で作成したレコードが使えないSSL証明書を発行してしまったので、二度としないようにまとめておく。

## ACM(AWS Certificate Manager)とは?
– AWSでSSL/TLS証明書を発行できるAWSのサービス
– ACMで取得したSSL証明書はロードバランサー(ALBやELB)やCloudFrontで使用することがよくある。

## 目標
– ACMでSSL証明書を発行するときに、ワイルドカード表記のドメイン取得も忘れないようにする。
– 例として「example.com」というドメインのSSL証明書発行までをコンソール画像で解説する。

■ワイルドカード指定をした項目を入れることを忘れるな!
|examp

元記事を表示

k8s で ECR の認証情報 Secret を定期的に取得する

ECR から Docker のイメージをプルするための認証情報は `aws ecr get-login-password` で作成できます。k8s ではこの認証情報を Secret として保存することで、イメージをECR からプルしてくれます。しかし、この方法で取得した認証情報は12時間しか有効ではないため、定期的に認証を取得する必要があります。
k8s が動いているホストの cron で実行してもいいのですが、色々な事情によって k8s の cronjob を使ってやることにしました。
今回はその方法を記事にしようと思います。
# 前提
– k8s がすでに用意されている
– docker イメージをパブリックに公開できる環境がある。または、パブリックにある docker イメージを自己判断で使用できる環境である。
– ECR にプライベートなイメージがすでに用意されている

# 流れ
1. aws のログイン情報を Secret として登録
2. aws-cli と kubectl を使用できる Docker イメージを作成する
3. ServiceAccount と Clus

元記事を表示

DBの種類について

# DBの種類について
## 初めに
システムの構築と並行して普段何となくの理解ですましいてたインフラ分野の知識をしっかり理解もしたく、この記事を書きます。1回目はDBの種類についてです。

AWSのRDSサービスを業務で触る機会があり、Oracle・PostgreSQLなどを触ったりしてきましたが、特に決められた種類をそのまま構築等していただけだったのでそれぞれの特徴・使い分けなどをちゃんと理解していませんでした。そこでDBエンジンの種類が色々あるのは知っているレベルの私が調べた結果をまとめてみます。

## データベースの種類
上記でデータベースの種類でOracle・PostgreSQLなどど書きましたが、それより大枠の種類もあります。(Oracle・PostgreSQLはリレーショナル型)

4種類に分類でき、以下の種類になります。
・階層型
・ネットワーク型
。リレーショナル型
。NoSQL型
|種類 |概要 |AWSサービス |
|—|—|—|
|階層型 |ノードと呼ばれる特定情報の集まりでデータを蓄積。家系図のような構造。 |- |
|ネットワーク型|階

元記事を表示

AWSでACLを作成してみた

お疲れ様ですー。すっかり涼しくなってきて秋を感じます。食欲の秋!ということでばくばく食べております。・・というわけで今回はAWSでACLを作ってみました。

AWSにはネットワークACLとセキュリティグループというファイヤーウォール的なものがあります。まずセキュリティグループとネットワークACLについて違いをみてましょう。

## ACLとセキュリティグループの違い
まずはセキュリティグループ。
セキュリティグループの特徴としてVPCに紐づいているものなので他のVPCだと利用することはできません。

なのでインスタンスを立ち上げる時もどのVPCに設置するかで使用できるセキュリティグループが変わります。

ステートフルなのでインバウンドで許可の設定をすればアウトバンドも許可されます。ちなみにコンソール画面では拒否の設定はありません。拒否したければ削除します。

ACLはインバウンド、アウトバンドの通信を許可・拒否のルールを複数作成することができます。それらのルールに番号を割り振り順序通りに適用されます。

ACLはステートレスなのでインバウンドで許可してもアウトバンドは許可になりません。

元記事を表示

ソリューションアーキテクト対策_リザーブドインスタンス篇

## はじめに
試験勉強した際のメモを自分用に記事化。
内容は公式やBlack Beltの写経ですので目新しいことはありません:pray:

## 公式のご紹介
とはいえこの記事に迷い込んだ方もいると思いますのでご紹介です。

https://aws.amazon.com/jp/ec2/pricing/reserved-instances/

## スタンダードRIとコンバーティブルRIの支払い属性
#### クラス
スタンダードとコンバーティブルのことをクラスという。
コンバーティブルRIは別のコンバーティブルRIとの交換が可能(途中で属性の変更が可能)。
ただし交換元のRIの価格と同等であることが条件。

#### 期間
スタンダードRIの期間は1年と3年。割引率は1年が40%で3年が60%。
コンバーティブルRIの期間も同じ。1年と3年で、割引率は1年が31%で3年が54%。

#### 支払いオプション
「全額前払い」、「一部前払い」、「前払いなし」の3つの種類の支払いオプションから選択できる。
支払いオプションとして「一部前払い」または「前払いなし」を選択した場合、残額は期間

元記事を表示

SPRESENSE SDKに独自の拡張機能を追加する【External Library】

SPRESENSEを使ってIoTシステムを開発していく中で、アプリケーション共通の機能をライブラリとして実装したくなることがあります。独自の拡張機能を追加できるよう、Visual Studio CodeベースのSPRESENSE開発環境である「SPRESENSE SDK」はExternal Libraryという仕組みを備えています。

![スクリーンショット 2022-09-13 18.03.16.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2595184/ec9aef9d-91c4-9ccc-1eaa-1f9bac115888.png)

### 既存のExternal Library

2022年9月現在、External Libraryとして既に以下の機能が提供されています。これらは、SDKコンフィグにてON/OFFを切り替えることにより、アプリケーションとリンクすることができます( https://github.com/sonydevworld/spresense/tree/master/e

元記事を表示

CI/CDでS3 Hostingへ自動デプロイする

# 背景
* [CDK Pipelinesのmodern APIを使ってCDKアプリケーションをデプロイする](https://aws.amazon.com/jp/blogs/news/deploying-a-cdk-application-using-the-cdk-pipelines-modern-api/)
* AWS CDK v2がリリースされて、簡単にPipelineを実装できた
* V2とV1の変更は以下の通り
* https://github.com/aws/aws-cdk/blob/v1-main/packages/@aws-cdk/pipelines/ORIGINAL_API.md

# ソースコードと説明

“`
export class PipeLineStack extends cdk.Stack {
constructor(scope: Construct, id: string, props?: cdk.StackProps) {
super(scope, id, props);

const repo = Repositor

元記事を表示

【Rails チュートリアル】AWS Cloud9でRails Serverが起動できないときの対処法【個人的なメモ】

# やりたいこと

・AWS Cloud9で「Rails Server」を起動したい

# エラー内容

ターミナルでRails Serverを実行したが下記のエラーが出てサーバーが起動しなかった。

“`ruby
Cannot render console from 000.000.00.000! Allowed networks: 127.0.0.0/127.255.255.255, ::1
“`
※「000.000.00.000」はIPアドレス

# 調査

・「Rills Cannot render console from」で検索した

・config/environments/development.rb に下記を追加した

“`ruby
Rails.application.configure do

config.web_console.permissions = ‘000.000.00.000’

end
“`
※「000.000.00.000」はIPアドレスなのでターミナルのエラー文で出たアドレスをコピーする

結果として「Cannot render con

元記事を表示

Asciidocから変換されるHTMLをS3 Hostingに自動デプロイする

# 背景
* プロジェクトリリース前に、色々なユーザガイドなどを公開しないといけない
* wordを書いてPDFに変更することが面倒
* PDFの読むことはダウンロードの前提になってしまう

# 概要
* 標準ドキュメントAsciidocを作って、PDFやHTMLへ簡単に変換できる
* AWS S3 Hosting機能を利用して速めにドキュメントを公開できる

# 詳細
## Asciidocとは
* [AsciiDoc](https://ja.wikipedia.org/wiki/AsciiDoc)
* [Asciidoctor 文法クイックリファレンス\(日本語訳\)](https://takumon.github.io/asciidoc-syntax-quick-reference-japanese-translation/)

## AsciidocからPDFやHTMLへ変換する方法
* asciidoc gem packageをインストールして簡単に変換できる

“`
gem install asciidoctor
gem install asciidoctor-pdf

元記事を表示

WordPress Certified by Bitnami and Automattic でのSSHユーザーの注意点

WordPressをEC2で構築する際にMarketplaceにて
WordPress Certified by Bitnami and Automatticを使用した。

通常のEC2を起動し、sshする際はec2-userにてデフォルトでsshすることになるが、WordPress Certified by Bitnami and Automatticのマシーンイメージを使用した際はデフォルトでbitnamiユーザにてsshすることになる。

**コマンド**
“`
ssh -i XXXXXXX.pem(鍵指定) bitnami@XXX.XXX.XXX.XXX
“`

いつも通りec2-userにてsshしようと試行し少し悩んだ。

元記事を表示

AWS cloud9に新たなプロジェクトを作成する

# はじめに
この記事は、初めてwebアプリを開発するために開発環境を整えたい方に向けた記事になっております。実際に、投稿者の私もwebアプリを開発するのは初めてでしたので、そのような方には参考になるかと思います。

# cloud9に新しいプロジェクトを作成する
AWSからcloud9の画面に移ると右上の方に`cleate environment`というボタンをクリックすると以下のような画面が出てきます。
![スクリーンショット 2022-09-13 11.52.50.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2821384/c1e5a980-730f-117a-5bb5-09948473935b.png)
この画面ではプロジェクトの名前と説明を入力する欄になっています。上の名前の部分だけ埋めれば大丈夫です。

続いて、以下のような画面が出てきます。今回は、特に何も変更せずにこのままの設定でプロジェクトを作成してみました。(Environment typeで一番上の欄を選んでいるとAWSの方に料金

元記事を表示

AWS ちょっと費用計算が楽になる係数

* $/時 => ¥/月
93,600 ≒ 9万 (為替130)
100,800 ≒ 10万 (為替140)

例: t3.large 0.1088$/h => 約1.1万円/月 (為替140)
為替140だと計算しやすくて良いね(吐血)

* $/日 => ¥/月
3,120 ≒ 3.1千 (為替130)
3,360 ≒ 3.4千 (為替140)

元記事を表示

EKSクラスタの作成者でないメンバーがkubectlでアクセスする設定

# はじめに
KubernetesをAmazon EKSで動かすことが増えてきました。自分で調査や開発するときはeksctlでクラスタを生成してkubectlで操作していますが、先日その私が生成したクラスタを他の開発メンバーに操作してもらおうとしたとき、どうするんだっけとあたふたしたので、対応方法を備忘録的に残しておきます。

基本は[AWS ナレッジセンターの情報](https://aws.amazon.com/jp/premiumsupport/knowledge-center/eks-cluster-connection/)を基に進めました。

# 前提条件
– KubectlとAWS CLIがインストールされている。
– AWSのIAMユーザにEKSの権限が付与されており、`aws configure`でプロファイル設定がされている。

# 設定
以下の操作は、eksctlでクラスタを生成した自分(管理者)ではなく、

元記事を表示

請求額を減らすために、AWSの不要なリソースを削除してみる

# はじめに
AWSのハンズオンをやった後、いつもリソースを消しているのですが、消し忘れがあり、ずっと毎月600円弱の請求が来ています。そこで、今回はこの請求をなくすべく、不要なリソースを削除していこうと思います。

![ブログ_20220911_01.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1615121/382bf598-50fc-b2f1-5c63-63d1f54e450e.jpeg)

展開してみるとこんな感じ

![ブログ_20220911_02.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1615121/9e49c5b9-ab82-2f4c-69e1-b90a1dc3d59b.jpeg)

# EBSを削除

まずは、上から順にEBSからです。東京リージョンの汎用SSD(gp2)のEBSは、毎月0.12USD/GBですね。料金表は[公式](https://aws.amazon.com/jp/ebs/p

元記事を表示

OTHERカテゴリの最新記事