1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

[Heroku] fir platform で app を立ち上げる

Posted at

みなさま、よくご存知の! いつもの! 毎年恒例ゆかちゃんの誕生日です!!!

この記事は Heroku Advent Calendar 2025 23日目、しょっさんの送るゆかちゃんの誕生日企画です。


Heroku Fir を試してみよう

2025年にようやくサービスインしたFirプラットフォーム。みなさまお使いいただけていますでしょうか?
CEDERとの違いをあえてここでは言及はしませんが、Firになると「IPv6でアクセスできる」のです。

個人的にとても興味深い内容なので、Firへアプリをデプロイしてみました。こんな感じになるんですよ。

Private Space を作成しよう

何はともあれ、Private Space が必須です。Enterprise契約かつPrivate Spaceです。個人にはどうにもならないレベルで申し訳ありませんが、FirにはPrivate Spaceが必須なのです。

AWSの最新機能を利用することから、Classic EC2が利用できないためにVPCが必須なんだと思います。きっと。

今は、Private Spaceを作成するときに、このように "Fir" を選択できるようになっています。"Ceder"か"Fir"かしかありません。"Fir"へ舵を切ったら"Fir"を使うしかありません。今、ご利用可能な機能と照らし合わせて、"Fir"へ行くべきかどうか、ご検討ください。Forward-looking statement でいつも言われてる内容です。ご考慮ください。

CleanShot 2025-12-23 at 11.02.16@2x.png


Private Space 内に App を作成しよう

ここからは、Cederと変わりはありません。いつも通りにアプリをdeployしてみましょう。
まずはAppの作成からです。

CleanShot 2025-12-23 at 11.02.49@2x.png

なにも変わりはしませんね。いつも通りです。

今回はさっと、とっとと立ち上げられるようにphpで動作確認です。

index.php
<?php
phpinfo();

しかし時代の寄せる波に流されるかのように、過去、このindex.phpだけあればデプロイできたHerokuはもうありません。composer.jsonおよびcomposer.lockも必要です。嗚呼。

composer.json
{
  "require": {}
}

めんどくさいなと思ったあなた。githubを準備しました。forkしたりcloneしたりして活用してください。何もしない無害な、というかHeroku上でのphp設定がわかるプログラムです。これはこれで便利なんですよ。

github:testing-fir

app をデプロイしよう

さて今日も元気にgit push heroku mainです。

git push heroku main
Enumerating objects: 25, done.
Counting objects: 100% (25/25), done.
Delta compression using up to 20 threads
Compressing objects: 100% (21/21), done.
Writing objects: 100% (25/25), 10.78 KiB | 2.69 MiB/s, done.
Total 25 (delta 0), reused 0 (delta 0), pack-reused 0 (from 0)
remote: Updated 14 paths from 9da8e82
remote: Compressing source files... done.
remote: Building source:
remote: Heroku Labs: Build Time Config Vars are *not enabled*.
remote: By default, your config vars are only available at runtime. See https://devcenter.heroku.com/build-time-config-vars for details on Build Time Config Vars.
remote: Waiting on build...
remote: Extracting source
remote: Image with name "testing-fir/builds" not found
remote: 1 of 3 buildpacks participating
remote: heroku/php 1.3.1
remote:
remote: ## Heroku PHP Buildpack
remote:
remote: - Bootstrapping
remote: - Preparing platform packages installation
remote: NOTICE: No runtime requirement found in lock file; using version constraint '*' for package 'php'.
remote: - Installing platform packages
remote:   - php (8.5.1)
remote:   - composer (2.9.2)
remote: - Installing web servers
remote:   - nginx (1.28.0)
remote:   - apache (2.4.66)
remote:   - boot-scripts (1.276.0)
remote: - Installing dependencies
remote:   Installing dependencies from lock file
remote:   Verifying lock file contents can be installed on current platform.
remote:   Nothing to install, update or remove
remote:   Generating optimized autoload files
remote: - Preparing Composer runtime environment
remote: - Done (finished in 10.3s)
remote: Adding layer 'heroku/php:composer_env'
remote: Adding layer 'heroku/php:platform'
remote: Adding layer 'heroku/php:webservers'
remote: Adding layer 'buildpacksio/lifecycle:launch.sbom'
remote: Added 1/1 app layer(s)
remote: Adding layer 'buildpacksio/lifecycle:launcher'
remote: Adding layer 'buildpacksio/lifecycle:config'
remote: Adding layer 'buildpacksio/lifecycle:process-types'
remote: Adding label 'io.buildpacks.lifecycle.metadata'
remote: Adding label 'io.buildpacks.build.metadata'
remote: Adding label 'io.buildpacks.project.metadata'
remote: Setting default process type 'web'
remote: Saving testing-fir/builds...
remote: *** Images (sha256:bdd8a9fc48d89531907221e25a111907879f74bd10b86e8cade12df0d9321339):
remote:       testing-fir/builds:461edd23-db88-4d8e-b8de-7c086c117fb1
remote: Adding cache layer 'heroku/php:composer_cache'
remote: Adding cache layer 'heroku/php:platform_cache'
remote: Uploading cache
remote: Launching...
remote: https://testing-fir-87264591afea.peony-tokyo.herokuapp.com/ deployed to Heroku
remote: Verifying deploy... done.
To https://git.heroku.com/testing-fir.git

phpは手軽さが売りだったはずなのに、デプロイ後の起動になかなか時間がかかります。

2025-12-23T02:17:00.996231+00:00 heroku-api[logs]: Log session created by user tabe@salesforce.com
2025-12-23T02:17:07.752346+00:00 heroku-router[web]: sock=client at=warning code=H27 desc="Client Request Interrupted" method=GET path="/" host=testing-fir-87264591afea.peony-tokyo.herokuapp.com request_id=c7b59d0f-9f94-5d1e-5cba-244c20c368c6 fwd="" dyno= connect=0ms service=0ms status=499 bytes=567 protocol=http tls_version=tls1.3
2025-12-23T02:17:28.289404+00:00 heroku-router[web]: sock=client at=warning code=H27 desc="Client Request Interrupted" method=GET path="/" host=testing-fir-87264591afea.peony-tokyo.herokuapp.com request_id=29df1288-7733-a739-800e-7e26d1e77fa2 fwd="" dyno= connect=0ms service=0ms status=499 bytes=567 protocol=http
2025-12-23T02:17:39.822857+00:00 app[web-59f5bb898b-zwhdx]: Assuming RAM to be 512M Bytes
2025-12-23T02:17:39.899239+00:00 app[web-59f5bb898b-zwhdx]: Available RAM is 512M Bytes
2025-12-23T02:17:39.899269+00:00 app[web-59f5bb898b-zwhdx]: PHP memory_limit is 128M Bytes
2025-12-23T02:17:39.909270+00:00 app[web-59f5bb898b-zwhdx]: Starting php-fpm with 4 workers...
2025-12-23T02:17:40.009934+00:00 app[web-59f5bb898b-zwhdx]: Starting httpd...
2025-12-23T02:17:46.742107+00:00 heroku-runtime[web-59f5bb898b-zwhdx]: Dyno web-59f5bb898b-zwhdx for app 9af716c3-dd82-4785-bfda-29b5060cc36b - status: up
2025-12-23T02:17:47.541105+00:00 heroku-router[web]: at=info method=GET path="/" host=testing-fir-87264591afea.peony-tokyo.herokuapp.com request_id=e661e35b-30e9-6c52-f843-e8092d77eb76 fwd="240b:10:9180:6400:ecbc:6c40:fda8:ccea" dyno=web-59f5bb898b-zwhdx connect=36019ms service=14ms status=200 bytes=92063 protocol=http tls_version=tls1.3
2025-12-23T02:17:48.569015+00:00 heroku-router[web]: at=info method=GET path="/favicon.ico" host=testing-fir-87264591afea.peony-tokyo.herokuapp.com request_id=1ff306df-427e-b8a0-2af4-533019221851 fwd="240b:10:9180:6400:ecbc:6c40:fda8:ccea" dyno=web-59f5bb898b-zwhdx connect=0ms service=2ms status=404 bytes=236 protocol=http tls_version=tls1.3
2025-12-23T02:17:47.915520+00:00 app[web-59f5bb898b-zwhdx]: 2406:da14:16f9:3004:91a9::3 - - [23/Dec/2025:02:17:47 +0000] "GET / HTTP/1.1" 200 92063 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36
2025-12-23T02:17:48.293767+00:00 heroku-router[web]: sock=client at=warning code=H27 desc="Client Request Interrupted" method=GET path="/" host=testing-fir-87264591afea.peony-tokyo.herokuapp.com request_id=120ef767-6a65-de7e-4fc1-abe684575114 fwd="" dyno= connect=0ms service=0ms status=499 bytes=567 protocol=http
2025-12-23T02:17:48.915690+00:00 app[web-59f5bb898b-zwhdx]: 2406:da14:16f9:3004:91a9::3 - - [23/Dec/2025:02:17:48 +0000] "GET /favicon.ico HTTP/1.1" 404 236 "https://testing-fir-87264591afea.peony-tokyo.herokuapp.com/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36
2025-12-23T02:21:44.541033+00:00 heroku-router[web]: at=info method=GET path="/" host=testing-fir-87264591afea.peony-tokyo.herokuapp.com request_id=5b603275-5b49-e035-2450-8a8eaf47f832 fwd="44.204.160.86" dyno=web-59f5bb898b-zwhdx connect=0ms service=151ms status=200 bytes=91220 protocol=http tls_version=tls1.3
2025-12-23T02:21:44.980798+00:00 heroku-router[web]: at=info method=GET path="/favicon.ico" host=testing-fir-87264591afea.peony-tokyo.herokuapp.com request_id=455b758b-8949-60ac-d756-27739a3e387a fwd="44.204.160.86" dyno=web-59f5bb898b-zwhdx connect=0ms service=0ms status=404 bytes=236 protocol=http tls_version=tls1.3
2025-12-23T02:21:44.940055+00:00 app[web-59f5bb898b-zwhdx]: 2406:da14:16f9:3003:4558::1 - - [23/Dec/2025:02:21:44 +0000] "GET / HTTP/1.1" 200 91220 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Safari/537.36
2025-12-23T02:21:45.940222+00:00 app[web-59f5bb898b-zwhdx]: 2406:da14:16f9:3003:4558::1 - - [23/Dec/2025:02:21:44 +0000] "GET /favicon.ico HTTP/1.1" 404 236 "https://testing-fir-87264591afea.peony-tokyo.herokuapp.com/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Safari/537.36
2025-12-23T02:21:51.786164+00:00 heroku-router[web]: at=info method=GET path="/favicon.ico" host=testing-fir-87264591afea.peony-tokyo.herokuapp.com request_id=ea4ba251-0997-53ad-696f-67a1ee179732 fwd="44.204.160.86" dyno=web-59f5bb898b-zwhdx connect=0ms service=0ms status=404 bytes=236 protocol=http tls_version=tls1.3
2025-12-23T02:21:51.940883+00:00 app[web-59f5bb898b-zwhdx]: 2406:da14:16f9:3003:4558::1 - - [23/Dec/2025:02:21:51 +0000] "GET /favicon.ico HTTP/1.1" 404 236 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Safari/537.36
2025-12-23T02:24:19.243636+00:00 heroku-router[web]: at=info method=GET path="/" host=testing-fir-87264591afea.peony-tokyo.herokuapp.com request_id=3dd28b55-067d-30a4-6cfc-11b0eafe3af1 fwd="13.219.121.241" dyno=web-59f5bb898b-zwhdx connect=0ms service=147ms status=200 bytes=89444 protocol=http tls_version=tls1.3
2025-12-23T02:24:19.956272+00:00 app[web-59f5bb898b-zwhdx]: 2406:da14:16f9:3003:4558::5 - - [23/Dec/2025:02:24:19 +0000] "GET / HTTP/1.1" 200 89444 "-" "-

多分1分くらい起動にかかってました。

そして無事にこれ。見てください。きちんと IPv6 でアクセスできています。何もしていないのに、DefaultでIPv6ですよ奥さん。これは良い買い物をしましたね。

CleanShot 2025-12-23 at 11.18.54@2x.png

"Fir"プラットフォームになっても、Herokuの使い勝手は原則変わりません。新しい機能を、是非"Fir"で体験してください。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?